您的位置:首页 > 其它

【转】数据依赖与关系模式规范化

2010-01-13 02:00 253 查看
http://online.hhu.edu.cn/jpkc/POD/N3/%BD%B2%CA%DA%CC%E1%B8%D9/LO-C10-%CA%FD%BE%DD%D2%C0%C0%B5%D3%EB%B9%D8%CF%B5%C4%A3%CA%BD%B9%E6%B7%B6%BB%AF.htm

10.1
关系设计方法学概述

一、何谓数据库的安全





DB主要用于支持数据密集型应用(Data Intensive Applications)





数据密集型应用的核心问题是: DB设计

DB设计

----结构方面:



目标
:设计一个“好的”(Good)关系模式。But, What is a
good
relational schema?
二、“不好的”(Bad)关系模式:问题 & 原因
考察关系模式:R(SNO, CNO, G, TEACHER, DEPT),其一个实例是:





问题


冗余(Redundancy):

复多次:“C01”课的教师是“张乐” ;“张乐”是“计算机”系的教师.


异常(Anomalies):


更新异常(Update Anomalies)
:
“张乐”调到“土木”系,而只改了其中一个元组的值,出现数据不一致。

“M03”课的教师换成“杨萍”, 而只改了其中一个元组的值,出现数据不一致。


删除异常(Delete Anomalies)
:
“C01”课不开了,需删除前三个元组,“张乐”是“计算机”系的教师的信息也随着被删除。


原因:
关系模式中数据的“语义”不单纯。

在此,“语义”专指问题空间中固有的、相对稳定的数据依赖
(DD)关系。

e.g. 函数依赖
(Functional Dependency,FD):一个/组属性X的值是否决定另一个/组属性Y的值。


 多值函数依赖
(Multivalued Dependency,MVD);

 连接依赖
(Join Dependency,JD)。

对以上模式R,有以下三个函数依赖:

1. SNO,CNO→G

2. CNO→T

3. T→DEPT

相应的表示了三个事实,为何不用三个模式呢?

1. R1(SNO,CNO,G)

2. R2(CNO,T)

3. R3(T,DEPT)

三、如何设计“好的”关系模式:规范化, 模式分解 & 范式


规范化(Normalization)
:
将一个关系模式按“语义单纯化”的原则进行合理的分解----称模式分解(Decomposition)
,以最终达到








模式分解的条件 /
准则

起码
分解是无损的(Lossless)
:分解前后要等价,即对任何相同的查询总是产生相同的结果。(可通过“连接”分解后的诸关系重构原关系)。

理想
分解是保持依赖的(Preserving Dependencies)

这需进一步论述。


范式(Normal Form)
:
规范化(即模式分解)程度的一种测度。



一个关系模式R达到x范式的程度称:R is in xNF, 记为:R∈xNF;否则,称:R violates xNF condition, 记为:R


xNF。
四、权衡:规范化 & 性能


规范化程度并非越高越好








程度
一般到BCNF/3NF已足够。





策略


(TOP
)
10.2 函数依赖与范式
一、函数依赖
[定义]
函数依赖 / 决定子(Determinant)







分裂/合并规则(The Splitting/Combining Rule)

:


[定义]
平凡依赖 / 非平凡依赖 /
完全非平凡依赖





平凡依赖规则(The
Trivial-dependency Rule)

:


[定义]
传递依赖





传递规则(The Transitive Rule)

:


[定义]
完全依赖 / 部分依赖


二、范式
[定义]
1NF
设有一个关系模式R,若R的任一关系实例r中的属性值均是原子数据,则称R属于1NF,记为R∈1NF。[注]


1NF条件是传统关系数据库系统的基本要求,目前大多数RDBMS均要求如此。


突破这一条件称非第一范式(non-first normal form, NF2)条件。


E/R中的非原子属性在转化为关系时要这样处理:对集合属性:纵向展开; 对元组属性:横向展开。
[定义]
2NF

设有一个关系模式R∈1NF,若R的每个非主属性均完全函数依赖于键,则称R属于2NF,记为R∈2NF。[注]








[定义]
3NF
设有一个关系模式R∈1NF,

若R的任一非平凡函数依赖X


A满足下列两个条件之一:

(1) X是超键, (2)A是主属性,

则称R属于3NF,记为R∈3NF。 [注]








[定义]
BCNF
设有一个关系模式R∈1NF,

若R的任一非平凡函数依赖X


A满足下列条件:

决定子X必是超键,

则称R属于BCNF,记为R∈BCNF。[注]






BCNF消除了(非主/主)属性对键的部分依赖和传递依赖。


关系模式达到BCNF后,在函数依赖范畴内已彻底规范化了,并消除了冗余和异常。



任何全键关系模式必属于BCNF。







任何两属性关系模式必属于BCNF。







关系模式无损分解成BCNF的策略(启发式算法)




[例]
M(title, year, length, color, star, star-gender, star-add, studio,
studio-add, studio-class)


(TOP
)
10.3 多值依赖与范式

待续
(TOP
)
10.4
关系模式分解(仅在函数依赖范畴内讨论)

[定义]
逻辑蕴涵


[定义]
F的闭包(Closure)F+





Armstrom公理(Armstrong’s axioms): 三条基本推理规则




F+
可由Armstrong公理从F导出。

[定义]
关系模式R的一个分解 / 关系r在Ui
上的投影 / 函数依赖集F在Ui
上的投影



[定义]
无损分解(lossless decomposition)


[定义]
保持依赖分解(preserve-dependency decomposition)




分解的条件 / 准则:
无损分解
------起码
:决定能否分解;


保持依赖分解

------理想
:决定分解的好坏。


结论:
总有将一个关系模式分解成3NF
无损、且保持依赖
的分解。

总有将一个关系模式分解成BCNF
(甚至4NF
)的无损
的分解。
[附]
Properties of Normal Forms and Their Decompositions:


Source: J.D.Ullman, A First Course in Database Systems. Prentice Hall, 1997. Page 164.
[定理]


Source: 萨师煊,数据库系统概论(第二版)。高教,1991。Page 178。
[定理]


Source: 王能斌,数据库系统。电子工业,1995。Page 396。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐