@H_403_5@
二、
“不好的”(Bad)关系模式:问题 & 原因
考察关系模式:R(SNO,CNO,G,TEACHER,DEPT),其一个实例是:
@H_403_5@
@H_403_5@
问题 :
@H_403_5@
冗余(Redundancy):
重 复多次:“C01”课的教师是“张乐” ;“张乐”是“计算机”系的教师.
@H_403_5@
异常(Anomalies):
@H_403_5@
更新异常(Update Anomalies) :
“张乐”调到“土木”系,而只改了其中一个元组的值,出现数据不一致。
“M03”课的教师换成“杨萍”, 而只改了其中一个元组的值,出现数据不一致。
@H_403_5@
删除异常(Delete Anomalies) :
“C01”课不开了,需删除前三个元组,“张乐”是“计算机”系的教师的信息也随着被删除。
@H_403_5@
“M03”课的教师换成“杨萍”, 而只改了其中一个元组的值,出现数据不一致。
@H_403_5@
原因:
关系模式中数据的“语义”不单纯。
在此,“语义”专指问题空间中固有的、相对稳定的数据依赖 (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,G)
2. R2(CNO,T)
3. R3(T,DEPT) @H_403_5@
在此,“语义”专指问题空间中固有的、相对稳定的数据依赖 (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,G)
2. R2(CNO,T)
3. R3(T,DEPT) @H_403_5@
@H_403_5@
三、
如何设计“好的”关系模式:规范化,模式分解 & 范式
@H_403_5@
规范化(Normalization) :
将一个关系模式按“语义单纯化”的原则进行合理的分解----称模式分解(Decomposition) ,以最终达到
@H_403_5@
模式分解的条件 / 准则 :
― 起码 :分解是无损的(Lossless) :分解前后要等价,即对任何相同的查询总是产生相同的结果。(可通过“连接”分解后的诸关系重构原关系)。
― 理想 :分解是保持依赖的(Preserving Dependencies) : 这需进一步论述。
@H_403_5@
范式(Normal Form) :
规范化(即模式分解)程度的一种测度。
一个关系模式R达到x范式的程度称:R is in xNF,记为:R∈xNF;否则,称:R violates xNF condition,记为:R xNF。
― 理想 :分解是保持依赖的(Preserving Dependencies) : 这需进一步论述。
一个关系模式R达到x范式的程度称:R is in xNF,记为:R∈xNF;否则,称:R violates xNF condition,记为:R xNF。
@H_403_5@
10.2 函数依赖与范式
@H_403_5@
若R的任一非平凡函数依赖X A满足下列两个条件之一:
(1) X是超键, (2)A是主属性,
则称R属于3NF,记为R∈3NF。[注] @H_403_5@
若R的任一非平凡函数依赖X A满足下列条件:
决定子X必是超键,
则称R属于BCNF,记为R∈BCNF。[注] @H_403_5@
@H_403_5@
10.3 多值依赖与范式
待续
@H_403_5@
@H_403_5@
10.4 关系模式分解(仅在函数依赖范畴内讨论)
@H_403_5@
保持依赖分解 ------理想 :决定分解的好坏。 @H_403_5@ @H_403_5@
总有将一个关系模式分解成BCNF (甚至4NF )的无损 的分解。 @H_403_5@ @H_403_5@
Source: J.D.Ullman,A First Course in Database Systems. Prentice Hall,1997. Page 164. |
Source: 萨师煊,数据库系统概论(第二版)。高教,1991。Page 178。
Source: 王能斌,数据库系统。电子工业,1995。Page 396。