关系模式由五部分组成,是一个五元组:
R(U,D,DOM,F)
R是符号化的元组语义
U为一组属性
D为属性组U中的属性所来自的域
DOM为属性到域的映射
F为属性组U上的一组数据依赖
第一范式(1NF)
二维表每个分量必须是不可分开的数据项的关系模式
数据依赖
关系中属性与属性之间的约束关系,是语义的体现
主要类型:
函数依赖,多值依赖
函数依赖
设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r 中不可能存在:两个元组在X上的属性值相等,而在Y上的属性值不等, 则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
若X→Y,并且Y→X, 则记为X←→Y。
若Y不函数依赖于X, 则记为X→Y。
X → Y X \rightarrow Y X→Y ,但 Y ⊈ X Y \nsubseteq X Y⊈X则称 X → Y X \rightarrow Y X→Y是非平凡的函数依赖。
X → Y X \rightarrow Y X→Y ,但 Y ⊆ X Y \subseteq X Y⊆X 则称 X → Y X \rightarrow Y X→Y是平凡的函数依赖。
若 X → Y X \rightarrow Y X→Y,则X称为这个函数依赖的决定因素
若 X → Y X \rightarrow Y X→Y, Y → X Y \rightarrow X Y→X,则记作 X ← → Y X \leftarrow\rightarrow Y X←→Y。
若Y不函数依赖于X,则记作 X ↛ Y X \not\rightarrow Y X→Y。
在R(U)中,如果 X → Y X \rightarrow Y X→Y ,并且对于X的任何一个真子集X’, 都有 X ↛ Y X \not\rightarrow Y X→Y, 则称Y对X完全函数依赖,记作 X → Y X \rightarrow Y X→Y 。若 X → Y X \rightarrow Y X→Y ,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作 X → Y X \rightarrow Y X→Y
在R(U)中,如果 X → Y X \rightarrow Y X→Y( Y ⊈ X Y \nsubseteq X Y⊈X), Y ↛ X Y \not\rightarrow X Y→X, Y → Z Y \rightarrow Z Y→Z, Z ⊈ Y Z \nsubseteq Y Z⊈Y, 则称Z对X传递函数依赖。记为: X → Z X \rightarrow Z X→Z。
注: 如果 Y → X Y \rightarrow X Y→X, 即 X ← → Y X \leftarrow\rightarrow Y X←→Y,则Z直接依赖于X,而不是传递函数依赖。
码
设K为R中的属性或属性组合。若K → U,则K称为R的一个候选码。如果U部分函数依赖于K,即K → U,则K称为超码 。
候选码是最小的超码,即K的任意真子集都不是候选码。
主码:若关系模式R有多个候选码,则选定其中的一个做为主码。
主属性:包含在任何一个候选码中的属性。
非主属性:不包含在任何码中的属性。
全码:整个属性组是码
关系模式R中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码也称外码。
范式
范式是符合某一种级别的关系模式的集合。
它有:
第一范式(1NF)
第二范式(2NF)
第三范式(3NF)
BC范式(BCNF)
第四范式(4NF)
第五范式(5NF)
一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
满足最低要求的范式是第一范式(1NF)
2NF
若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF
3NF
设关系模式R∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z( Z ⊇ Y Z \supseteq Y Z⊇Y), 使得 X → Y X \rightarrow Y X→Y , Y → Z Y \rightarrow Z Y→Z 成立, Y ↛ X Y \not\rightarrow X Y→X 不成立,则称R ∈ 3NF。
BCNF
设关系模式R∈1NF,若 X → Y X \rightarrow Y X→Y且 Y ⊆ X Y \subseteq X Y⊆X时X必含有码,则R∈BCNF。换言之,在关系模式R中,如果每一个决定属性集都包含候选码,则R∈BCNF。
通常认为BCNF是修正的第三范式
多值依赖
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖 X → → Y X \rightarrow\rightarrow Y X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
平凡多值依赖和非平凡的多值依赖
若 X → → Y X \rightarrow\rightarrow Y X→→Y,而Z=Ф,则称 X → → Y X \rightarrow\rightarrow Y X→→Y为平凡的多值依赖。否则称 X → → Y X \rightarrow\rightarrow Y X→→Y为非平凡的多值依赖。
4NF
关系模式R∈1NF,如果对于R的每个非平凡多值依赖 X → → Y X \rightarrow\rightarrow Y X→→Y( Y ⊈ X Y \nsubseteq X Y⊈X),X都含有码,则R∈4NF。
如果一个关系模式是4NF, 则必为BCNF。
以上就是第六章的知识点总结了,下面是练习题。
附加题:
一.
Y(X1,X2,X3,X4)
( X 1 , X 2 ) → X 3 (X1,X2) \rightarrow X3 (X1,X2)→X3
X 2 → X 4 X2 \rightarrow X4 X2→X4
1.侯选码?
2.属于第几范式?
二.
R(A,B,C,D)
F={ A B → D AB \rightarrow D AB→D, A C → B D AC \rightarrow BD AC→BD, B → C B \rightarrow C B→C}
1.侯选码?
2.最高属于第几范式?
三.
R(X,Y,Z,W)
F={Y←→W,XY→Z}
1.侯选码?
2.最高属于第几范式?
四.
R(A,B,C,D,E) F={A→B,CE→A,E→D}
1.求候选码。
2.最高属于第几范式,为什么?
3.分解到3NF。
五.
R(商店编号,商品编号,数量,部门编号,负责人)
每个商店的每种商品只在一个部门销售,
每个商店的每个部门只有一个负责人,
每个商店的每种商品只有一个库存数量。
1.求候选码。
2.R已达第几范式?为什么?
3.若不属于3NF,分解成3NF。
六.
R(A,B,C,D,E,F) F={A→C,AB→D,C→E,D→BF}
1.写出关键字。
2.分解到2NF。
3分解到3NF。
4.分解到4NF。