1.函数依赖的闭包
在关系模式R(U,F)中,U是R的属性全集,F是R上的一组函数依赖。设X,Y是U的子集,对于关系模式R的任一关系r,如果r满足X—》Y,那么称F逻辑蕴含X—》Y,或称函数依赖X—》Y可以由F导出。
所有被F逻辑蕴含的函数依赖的全集称为F的闭包,记作F+。
2.属性集闭包(另一种确定函数蕴含的方法)
步骤1:初始,令x+=x。
步骤2:如果F中有某个函数依赖Y—》Z满足Y包含于X+。则X+=X+∪Z。
步骤3:重复步骤2,直到X+不在增大为止。
3.候选键的求解方法
1).概念
a.L类:仅出现在函数依赖左边的属性
b.R类:仅出现在函数依赖右部的属性
c.N类:在函数依赖的左部和右不均不出现的属性
d.LR类:在函数依赖的左部和右部均出现的属性
2)结论
若X是R类属性,则X一定包含在关系模式R的任何一个候选键中;若X+包含在关系模式R的任何一个候选键中;若X+中包含了R的全部属性,则X为关系模式R的唯一候选键。
若X是R类属性,则X不包含在关系模式R任何一个候选键中。
若X是N类属性,则X一定包含在关系模式R的任何一个候选键中。
若X是LR类属性,则X可能包含在关系模式R的某个候选键中。
3)用法步骤
找L,N 求闭包(L,N)+=U 如果闭包为全集则得出候选键
如果闭包部位全集,则让U=》LR (L,N,R)=U 则接下来得出的U,左边的就是候选键