1. 函数依赖的定义
定义1:
设有关系模式R(U),X和Y是属性集U的子集,函数依赖(Functional Dependency, FD )是形为X→Y的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有t[X] = s[X]蕴含t[Y] = s[Y], 那么FD X→Y在关系模式R(U)中成立。
t[X]表示元组t在属性集X上的值。
X→Y读作X函数决定Y,或Y函数依赖X
定义2:
设F是在关系模式R(U)上成立的函数依赖集,X和Y是属性集U的子集。如果从F推导出X→Y也在R(U)上成立,那么称F逻辑蕴含X→Y,记为F |= X→Y。
定义3:
设F是函数依赖集,被F逻辑蕴含的函数依赖全体构成的集合,称为函数依赖集F的闭包(Closure),记为F+。即F+ = {X→Y | F |= X→Y}
定义4:
对于FD X→Y,如果Y⊆X,那么称X→Y是一个平凡的FD,否则称为非平凡的FD。
定义5:
设关系模式R的属性集是U,X是U的一个子集。如果X→U在R上成立,那么称X是R的一个超键。如果X→U在R上成立,但对于X的任一真子集X1都有X1→U不成立,那么称X是R上的一个候选键。
定义6:
设F是属性集U上的FD集,X是U的子集,那么(相对于F)属性集X的闭包用X+表示,它是从F集使用FD推理规则推出的所有满足X→A的属性A的集合:
X+ = {属性A | X→A在F+中}
定义7:
设F是属性集U上的FD集。如果Fmin是F的一个最小依赖集,那么Fmin应满足下列四个条件:
1).Fmin+ = F+
2).每个FD的右边都是单属性
3).Fmin中没有冗余的FD
4).每个FD的左边没有冗余的属性
每个函数依赖集至少存在一个最小依赖集,但不一定唯一。
3种函数依赖定义:
2.Armstrong公理:
A1(自反性): 若Y⊆X⊆U,则X→Y在R上成立
A2(增广性): 若X→Y在R上成立,且Z⊆U,则XZ→YZ在R上成立
A3(传递性): 若X→Y和Y→Z在R上成立,则X→Z在R上成立。
以下推理规则可由上面三条规则导出。
A4(合并性): {X→Y,X→Z} |= X→YZ
A5(分解性): { X→Y,Z⊆Y} |= X→Z
A6(伪传递性): {X→Y,WY→Z} |= WX→Z
A7(复合性): {X→Y,W→Z} |= XW→YZ
A8(通用一致性定理): {X→Y,W→Z} |= X∪(W - Y)→YZ
证明过程如此>>>>>>https://blog.csdn.net/weixin_52047251/article/details/124477553
3.定理
定理1:
FD推理规则A1,A2,A3是正确的。也就是,如果X→Y是从F用推理规则导出,那么X→Y在F+中。
定理2:
如果A1A2A3…An是关系模式R的属性集,那么X→A1A2A3…An成立的充分必要条件是
X→Ai (i = 1, 2, …, n)成立。
定理3:
X→Y能用FD推理规则推出的充分必要条件是Y⊆X+。