一、闭包及候选键求解方法
1.函数依赖集的闭包
在关系模式R(U,F)中,U是R的全集,F是R上的一组函数依赖,设X,Y是U的子集,对于关系模式R的任意关系r,如果r满足F,则r满足X->Y,那么称F逻辑蕴含X->Y.
2.属性集闭包
判断函数依赖X->Y是否能由F导出,可转化为X+并判断Y是否是X+子集
设有关系模式R(U,F),U为R的属性集,F是R上的函数依赖集,X是U的一个子集。用函数依赖推理规则可从F推理X->A中所有A的集合,成为属性集X关于F的闭包.
例:设有关系模式R(U,F),其中属性集U={X,Y,Z,W},函数依赖集F={X->Y,Y->Z,W->Y},
计算X+,(XW)+
解:(1)计算X+
初始:X+=X
对于X+中的X,因为有X->Y,所以X+=XY
对于X+中的Y,因为有Y->Z,所以X+=XYZ
(2)计算(XW)+
初始(XW)+=XW
对于(XW)+中的X,因为有X->Y,所以(XW)+=XWY
对于(XW)+中的Y,因为有Y->Z,所以(XW)+=XYZW
对于(XW)+中的W,因为有W->Y,所以(XW)+保持不变
对于(XW)+中的Z,由于Z不出现在任何函数依赖的左部,所以(XW)+保持不变
3.候选键的求解方法
对于给定的关系模式R(A1,A2,A3...An)和函数依赖集F,现将R的属性分为如下四类:
(1)L类:仅出现函数依赖左部的属性
(2)R类:仅出现在函数依赖右部的属性
(3)N类属性:在函数依赖中没有出现的属性
(4)LR类属性:在函数依赖中左右都出现的属性