在本章中,将关系模式看作一个三元组:R(U,F)。
- 关系名R是符号化的元组语义。
- U为一组属性。
- F为属性组U上的一组数据依赖。
关系满足一个最基本的条件:每一个分量必须是不可分的数据项。
1. 函数依赖
当确定一个值后,就能唯一地确定其它值。函数依赖 类似于数学中的函数 y = f (x),自变量 x 确定之后,相应的函数值 y 也就唯一确定。
例: F={Sno →Sdept, Sdept →Mname, (Sno,Cno) →Grade}
若对于 R(U)的任意一个可能的关系 r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称 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是平凡的函数依赖。
- 在 R(U)中,如果 X → Y X \rightarrow Y X→Y并且对于 X的任何一个真子集X’,都有 X ′ ↛ Y X' \nrightarrow 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 \nsubseteq X Y⊈X), Y ↛ X Y \nrightarrow X Y↛X, Y → Z Y \rightarrow Z Y→Z, Z ⊈ Y Z \nsubseteq Y Z⊈Y 则称 Z对 X 传递函数依赖,记作 X → 传 递 Z X \overset {传递} \rightarrow Z X→传递Z 。
2. 码
设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 称为 超码。
若有多个候选码,则选定其中的一个做为主码。
包含在任意一个候选码上的属性称为主属性。
不包含在任何候选码中的属性称为非主属性。
整个属性组都是码,称为全码。
3. 范式与规范化
1NF: 关系符合一个最基本的条件,每一个分量必须是不可分的数据项。
一个低一级范式的关系模式通过模式分解可以转化为若干个高一级范式的关系模式的集合,这种过程就加规范化。
各种范式之间的关系有:
5 N F ⊆ 4 N F ⊆ 3 N F ⊆ 2 N F ⊆ 1 N F 5NF \subseteq 4NF \subseteq 3NF \subseteq 2NF \subseteq 1NF 5NF⊆4NF⊆3NF⊆2NF⊆1NF
2NF: 若
R
⊆
1
N
F
R \subseteq 1NF
R⊆1NF,且每一个非主属性完全函数依赖于任何一个候选码,则
R
⊆
2
N
F
R \subseteq 2NF
R⊆2NF。
当非主属性对码不是完全函数依赖,解决的办法是用投影分解把关系模型拆分为多个关系模式。
3NF: 设关系模式 R < U , F > ⊆ 1 N F R<U,F> \subseteq 1NF R<U,F>⊆1NF,若 R中不存在这样的码 X,属性组 Y及非主属性 Z( Z ⊉ Y Z \nsupseteq Y Z⊉Y)使得 X → Y , Y → Z 成 立 , Y ↛ Z X \rightarrow Y,Y \rightarrow Z 成立,Y \nrightarrow Z X→Y,Y→Z成立,Y↛Z,则称R<U,F>属于3NF。
BCNF: 设关系模式R<U,F>∈1NF,若X →Y且Y ⊆ X时X必含有码,则R<U,F>∈BCNF。
- 在关系模式R<U,F>中,若每一个决定因素都包含码,则R<U,F>∈BCNF。
4NF: 关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。
4. 多值依赖
设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖 X→→Y 成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
若X→→Y,而Z=Ф,则称X→→Y为平凡的多值依赖,否则称X→→Y为非平凡的多值依赖。
1NF
| ↓ 消除非主属性对码的部分函数依赖
消除决定因素 | 2NF
非码的非平凡 | ↓ 消除非主属性对码的传递函数依赖
函数依赖 | 3NF
↓ ↓ 消除主属性对码的部分和传递函数依赖
----- BCNF
↓ 消除非平凡且非函数依赖的多值依赖
4NF
5. 闭包求候选码
闭包(记作X+ ) 就是由一个属性直接或间接推导出的所有属性的集合。
根据给定的关系和函数依赖集将属性分为4类:
- L类 仅出现在函数依赖左边的属性
- R类 仅出现在函数依赖右边的属性
- N类 在函数依赖左右两边均未出现的属性
- LR类 在函数依赖左右两边均出现的属性
定理1
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,则X必为R的任一候选码的成员。
推论1
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类属性,且X+包含了R的全部属性,则X必为R的唯一候选码
定理2
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是R类属性,则X不在任何候选码中。
定理3
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是N类属性,则X必包含在R的任一候选码中。
推论2
对于给定的关系模式R及其函数依赖集F,若X(X∈R)是L类和N类组成的属性集,且X+包含了R的全部属性;则X是R的唯一候选码。
…………………………………………………………………………….
以上就是文章全部内容,感谢阅读。