【数据库系统概论】第6章 (三)数据依赖的公理系统
推理规则

定理 函数依赖的其他五条推理规则。
(1) A4(合并性规则):{X→Y,X→Z}|= X→YZ。
(2) A5(分解性规则):{X→Y,Z Y}|= X→Z 。
(3) A6(伪传递性规则):{X→Y,WY→Z}|= WX→Z。
(4) A7(复合性规则):{X→Y,W→Z}|= XW→YZ。
(5) A8(通用一致性规则):{X→Y,W→Z}|= X∪(W-Y)→YZ。
属性集的闭包
定义 设F是属性集U上的函数依赖集,X是U的子集,则(相对于F)属性集X的闭包用X+表示,为一个从F集使用函数 依赖推理规则推出的所有满足X→A的属性A的集合:
X+={属性A | X→A在F +中}
看例题

候选键的求解算法
对给定的关系模式R(A1,…,An)和FD集F,可将其属性分
为四类:
(1)L类:仅出现在函数依赖集
F左部
的属性。
(2)R类:仅出现在函数依赖集
F右部
的属性。
(3)N类:在函数依赖集
F左右都未出现
的属性。
(4)LR类:在函数依赖集
F左右都出现
的属性。
定理
对于给定的关系模式R及其FD集F
(1)若X(X∈R)为L类属性,则
X必为R的任一候选键的成员
。
(2)若X(X∈R)为
L类属性,且X+包含R的全部属性
,则X必为R
的
惟一候选键
。
(3)若X(X∈R)为
R类属性
,则
X不在任何候选键
中。
(4)若X(X∈R)为
N类属性,则X包含在R的任一候选键中
。
(5)若X(X∈R)为N类和L类属性组成的属性集,且X+包含了R的
全部属性,则X为R的惟一候选键。
(6)若X(X∈R)是
LR类属性
,则X可能为R的任一候选码的成员,
也可能不为R的任一候选码的成员
设有关系模式R,F是R上的函数依赖集,求R的所有候选码。
输入:
关系模式R及其函数依赖集F
输出:
关系模式R的所有候选码
(1)属性分类(L、R、N和LR),X代表L类和N类属性,Y代表LR类属性。
(2)若X
+
包含了R的全部属性,转(5);否则,转(3)。
(3)在Y中取一个属性A,求(XA)
+
,若它包含了R的全部属性,则转(4);
否则,调换一属性反复进行这一过程,直到试完所有Y中的属性。
(4)如果已找出所有候选码,则转(5);
否则在Y中依次取两个属性、三个属性、…,求它们的属性集的闭包,直
到其闭包包含R的全部属性。
(5)停止,输出结果。