【数据库系统】函数依赖及其公理定理(3) 关系范式
作者:互联网
函数依赖及其公理定理(
总结
关系范式 | 条件 |
---|---|
第一范式 | 关系模式R(U)中关系的每个分量都是不可分 |
第二范式 | 每一非主属性完全函数依赖于候选键 |
第三范式 | 没有传递函数依赖 |
BCNF | 不能有依赖于非候选键的其他函数依赖 |
第四范式 | 有多值依赖,则一定依赖于候选键 |
1NF 第一范式
若关系模式R(U)中关系的每个分量都是不可分的
数据项(值、原子),则称R(U)属于第一范式,记为:
R
(
U
)
∈
1
N
F
R(U)∈1NF
R(U)∈1NF。
严格按行和列进行管理,则满足第一范式
出现符合属性和多值属性及其组合,则不符合1NF
不符合1NF的处理
将非1NF转换为1NF情况
Star( name, address(street, city) )
转换:
将复合属性处理为简单属性;Star(name, street, city )
或者将多值属性与关键字单独组成一新的关系 Star( name, address)
或者引入新的数据模型处理是Object-Oriented Data Model,例如将两个列类型构成一个对象
2NF 第二范式
若
R
(
U
)
∈
1
N
F
R(U)∈1NF
R(U)∈1NF 且U中的每一非主属性(不包含在任何候选键中的属性)完全函数依赖(最小的函数依赖集)于候选键,则称R(U)属于第二范式,记为:
R
(
U
)
∈
2
N
F
R(U)∈2NF
R(U)∈2NF。
用人言讲就是关系中候选键是决定所有非主属性的最小集合,来减少非受控的冗余,不满足第二范式就将其分解,尽可能让关系瘦身一点
第二范式消除了非主属性对候选的部分依赖,减少不一致性行为
3NF 第三范式
若 R ( U , F ) ∈ 2 N F R(U,F)∈2NF R(U,F)∈2NF 且 R R R中不存在这样的情况:候选键 X X X,属性组 Y ⊆ U Y⊆U Y⊆U和非主属性A, 且 A ∉ X , A ∉ Y , Y ∉ X , Y ! → X A∉X, A∉Y , Y∉X, Y!→X A∈/X,A∈/Y,Y∈/X,Y!→X,使得 X → Y , Y → A X→Y,Y→A X→Y,Y→A成立(其实就是个传递函数依赖)。满足以上条件则称 R ( U ) R(U) R(U)属于第三范式,记为: R ( U ) ∈ 3 N F R(U)∈3NF R(U)∈3NF。
这个定义简单的来讲就是第三范式没有传递函数依赖的
第3范式消除了非主属性对侯选键的传递依赖
ps:对传递依赖的分解:(将每一个函数依赖单独组成一个关系)
Boyce-Codd范式 BCNF
若 R ( U , F ) ∈ 1 N F R(U,F)∈1NF R(U,F)∈1NF, 若对于任何 X → Y ∈ F X→Y∈F X→Y∈F (或 X → A ∈ F X→A∈F X→A∈F), 当 Y ⊄ X Y⊄X Y⊄X(或 A ∉ X A∉X A∈/X)时, X X X必含有候选键,则称R(U)属于 B o y c e − C o d d Boyce-Codd Boyce−Codd范式,记为: R ( U ) ∈ B C N F R(U)∈BCNF R(U)∈BCNF
简单来讲,如果一个关系模式,上面的每一个函数依赖,这个依赖一定是依赖于候选键,或者依赖于包含候选键的集合,那么这个关系就满足BCNF,
换句话说,
BCNF的候选键是没有函数依赖(就是没有 ?→候选键 ∈F)存在的
同时不能有依赖于非候选键的其他函数依赖
有传递依赖的或者说不满足3NF的,一定不满足BCNF
PS:关系模式分解成BCNF
将左侧不含候选键的函数依赖单独组成一个关系, 将包含候选键的组成另一组一关系
多值依赖与第四范式
多值依赖
前面讲的都是函数依赖,如果有X相等Y一定相等,下面讲多值依赖
[定义]多值依赖
对R(U), 设
X
,
Y
⊆
U
X, Y⊆U
X,Y⊆U(X,Y是U上的属性或属性组), 若对于
R
(
U
)
R(U)
R(U)的任一关系r, 若有元组
t
∈
r
,
s
∈
r
t∈r, s∈r
t∈r,s∈r,
t
[
X
]
=
s
[
X
]
t[X] = s[X]
t[X]=s[X](X值相等), 则必有
u
∈
r
,
v
∈
r
u∈r, v∈r
u∈r,v∈r使得:
- u [ X ] = v [ X ] = t [ X ] = s [ X ] u[X]=v[X]=t[X]=s[X] u[X]=v[X]=t[X]=s[X](X值相等)
- u [ Y ] = t [ Y ] ( 属 性 Y ) 且 u [ U − X − Y ] = s [ U − X − Y ] u[Y]=t[Y](属性Y)且u[U-X-Y] = s[U-X-Y] u[Y]=t[Y](属性Y)且u[U−X−Y]=s[U−X−Y](除了X,Y剩余的属性)
- v [ Y ] = s [ Y ] ( 属 性 Y ) 且 v [ U − X − Y ] = t [ U − X − Y ] v[Y]=s[Y](属性Y)且v[U-X-Y] = t[U-X-Y] v[Y]=s[Y](属性Y)且v[U−X−Y]=t[U−X−Y](除了X,Y剩余的属性)
均成立,则称Y多值依赖于X, 或说X多值决定Y, 记作 X → → Y X→→Y X→→Y。
用人话讲就是有一个X值,则有一组Y值和它对应,因此这组Y值之间相互可以替换
多值依赖的特性
- 直观地,对于X给定值,Y有一组值与之对应(0或n个)且这组Y值不以
任何方式与U-X-Y中属性值相联系,有 X → → Y X→→Y X→→Y。 - 若交换t, s 的Y值而得到的新元组仍在r中,则 X → → Y X→→Y X→→Y。
- X, Y 可相交,u,v可以与t,s相同。
- 函数依赖是多值依赖的特例,多值依赖是一个X值和一组Y值相对应,函数依赖则是一个X值只有一个Y值与之对应
- 令 Z = U − X − Y , Z=U-X-Y, Z=U−X−Y,有 X → → Y X→→Y X→→Y, 若Z=∅, 则必有 X → → Y X→→Y X→→Y。
第四范式
设 R ( U ) ∈ 1 N F R(U)∈1NF R(U)∈1NF, D D D 是其上的一组依赖( 函数依赖 或者是 多值依赖) , 对任意 X → → Y ∈ D , X→→Y∈D, X→→Y∈D,若 Y ! = ∅ , Y ⊄ X , X Y ! = U Y!=∅,Y⊄X, XY!=U Y!=∅,Y⊄X,XY!=U(这三个条件是为了消除平凡的多值依赖), X X X为超键(说明如果有多值依赖,一定是依赖于候选键的),则称R(U)满足第四范式,记为:R(U)∈4NF。
第四范式消除了非主属性对候选键以外属性的多值依赖,如果有多值依赖,则一定依赖于候选键
若
R
∈
4
N
F
R∈4NF
R∈4NF, 则必有
R
∈
B
C
N
F
R∈BCNF
R∈BCNF。
反正,条件(只有函数依赖没有多值依赖)下成立
多值依赖的几个公理
设
R
(
U
)
,
X
,
Y
⊆
U
R(U), X, Y⊆U
R(U),X,Y⊆U, 对于
R
(
U
)
R(U)
R(U)的任一关系r, 有以下规则:
[A4]多值依赖互补律或对称性:若
X
→
→
Y
X→→Y
X→→Y, 则
X
→
→
U
−
X
−
Y
(
除
了
X
,
Y
以
外
的
属
性
)
X→→U-X-Y(除了X,Y以外的属性)
X→→U−X−Y(除了X,Y以外的属性);
[A5]多值依赖增广律: 若X
X
→
→
Y
X→→Y
X→→Y 且
V
⊆
W
,
V⊆W,
V⊆W, 则
W
X
→
→
V
Y
WX→→VY
WX→→VY;
[A6]多值依赖传递律:若
X
→
→
Y
X→→Y
X→→Y,
Y
→
→
Z
Y→→Z
Y→→Z, 则
X
→
→
(
Z
−
Y
)
X→→(Z-Y)
X→→(Z−Y)(此条比A3规则限制要强)
[A7] 若
X
→
Y
X→Y
X→Y 则
X
→
→
Y
X→→Y
X→→Y
[A8] 若
X
→
→
Y
X→→Y
X→→Y ,Z⊆Y且对于某个与Y不相交的W有W→Z, W∩Y=∅, 则有
X
→
Z
X→Z
X→Z
标签:公理,候选,依赖,范式,多值,1NF,数据库系统,属性 来源: https://blog.csdn.net/Franklins_Fan/article/details/116425593