回顾
关系模型(五元组):
R(U,D,DOM,F)
关系名R是符号化的元组定义
U为一组属性
D为属性组U中的属性所来自的域
F为属性组U上的一组数据依赖
函数依赖
函数依赖定义:
设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作
X
→
Y
X \rightarrow Y
X→Y.
下面介绍一些常用的属于和记号:
- X → Y X \rightarrow Y X→Y,但是Y⊈X,则称 X → Y X \rightarrow Y X→Y是非平凡的函数依赖。
- X → Y X \rightarrow Y X→Y,但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 → F Y X \overset F \rightarrow Y X→FY
若 X → Y X \rightarrow Y X→Y,但Y不完全依赖于X,则称Y对X部分函数依赖,记作: X → P Y X \overset P \rightarrow Y X→PY
传递函数依赖定义:
在R(U)中,如果 X → Y X \rightarrow Y X→Y(Y⊈X), Y ↛ X Y \not \rightarrow X Y→X, Y → Z Y \rightarrow Z Y→Z,Z⊈Y.则称Z对X传递函数依赖,记作: X → 传 递 Y X \overset {传递} \rightarrow Y X→传递Y
多值依赖
定义:
设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,y)值,有一组Y的值,这组值仅仅取决于x值而与z值无关。
若
X
→
→
Y
X \rightarrow \rightarrow Y
X→→Y,而Z等于空,则称
X
→
→
Y
X \rightarrow \rightarrow Y
X→→Y,为平凡的多值依赖。否则称为非平凡的多值依赖。
多值依赖有如下性质:
(1)多值依赖具有对称性。即若
X
→
→
Y
X \rightarrow \rightarrow Y
X→→Y,,则
X
→
→
Z
X \rightarrow \rightarrow Z
X→→Z,Z=U-X-Y。
(2)多值依赖具有传递性。即若
X
→
→
Y
X \rightarrow \rightarrow Y
X→→Y,,
Y
→
→
Z
Y \rightarrow \rightarrow Z
Y→→Z,则
X
→
→
Z
−
Y
X \rightarrow \rightarrow Z-Y
X→→Z−Y。
(3)函数依赖可以看做是多值依赖的特殊情况。即若
X
→
Y
X \rightarrow Y
X→Y。则
X
→
→
Y
X \rightarrow \rightarrow Y
X→→Y。这是因为当
X
→
Y
X \rightarrow Y
X→Y时,对X的每一个值x,Y都有一个确定的值y与之对应,所以
X
→
→
Y
X \rightarrow \rightarrow Y
X→→Y
(4)若
X
→
→
Y
X \rightarrow \rightarrow Y
X→→Y,
X
→
→
Z
X \rightarrow \rightarrow Z
X→→Z,则
X
→
→
Y
Z
X \rightarrow \rightarrow YZ
X→→YZ
(5)若
X
→
→
Y
X \rightarrow \rightarrow Y
X→→Y,
X
→
→
Z
X \rightarrow \rightarrow Z
X→→Z,则
X
→
→
Y
∩
Z
X \rightarrow \rightarrow Y∩Z
X→→Y∩Z
(6)若
X
→
→
Y
X \rightarrow \rightarrow Y
X→→Y,
X
→
→
Z
X \rightarrow \rightarrow Z
X→→Z,则
X
→
→
Y
−
Z
X \rightarrow \rightarrow Y-Z
X→→Y−Z,
X
→
→
Z
−
Y
X \rightarrow \rightarrow Z-Y
X→→Z−Y
码
候选码: 设K为R<U,F>中的属性或属性组合,若
K
→
F
U
K \overset F \rightarrow U
K→FU,则K为R的候选码。U完全依赖于K,非部分依赖于K。
超码: U部分依赖于K,即
K
→
P
U
K \overset P\rightarrow U
K→PU则K为超码。候选码是最小超码。
主码: 候选码多于一个,则其中一个为主码
主属性: 包含候选码中任意一个属性称为主属性
非主属性: 不包含在任何主属性中的属性为非主属性或非码属性
全码: 最简单情况,单个属性是码;极端情况,整个属性组是码,为全码
范式
各个范式之间的的关系:
5NF⊂4NF⊂BCNF⊂3NF⊂2NF⊂1NF
即R∈高级NF,则R必∈低级NF
1NF
**定义:**作为一个二维表,关系满足:每一个分量必须是不可分的数据项。则此关系模式属于1NF
存在的问题:
(1)数据冗余
(2)更新异常
(3)插入异常
(4)删除异常
2NF
定义: 若R∈1NF,且每一个非主属性完全依赖于任何一个候选码,则R∈2NF。
此时存在以下几个问题:
(1)插入异常
(2)删除异常
(3)修改异常
3NF
定义: 若R∈3NF,则每一个非主属性既不传递依赖于码,也不部分依赖于码。
BCNF
定义: 若R∈1NF,且每一个决定因素必包含码,一个满足BCNF的关系模式有:
- 所有非主属性对每一个码都是完全函数依赖
- 所有主属性对每一个不包含他的码也是完全函数依赖
- 没有任何属性完全函数依赖于非码属性的任何一组元素
4NF
定义: 关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖
X
→
→
Y
X \rightarrow \rightarrow Y
X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。
可以使用投影分解的方法消去非平凡且非函数依赖的多值依赖。
规范化小结

总结
注意:并不是规范化程度越高模式就越好,必须结合应用环境和现实世界的具体情况合理的选择数据库模式。
此致 这个窝在宿舍的五一
敬礼
本文详细阐述了关系模型中的函数依赖、多值依赖及各种范式(1NF, 2NF, 3NF, BCNF, 4NF),介绍了各范式间的递进关系,以及规范化过程中可能遇到的问题和解决策略。特别强调了合理选择数据库模式的重要性,适合数据库设计者和开发者参考。
5619

被折叠的 条评论
为什么被折叠?



