函数依赖
闭包计算
1.(AE)+ = AE
2.因为A->D,E->C,所以 (AE)+=AEDC
3.因为CD->I ,所以(AE)+=AEDCI
候选码计算
例1:R<U,F>,U=(A,B,C,D,E,G),F={AB->C,CD->E,E->A,A->G},求候选码。
L:BD R:G LR:ACE
X=BD(L类和N类) Y=ACE(LR类)
因为BD+=BD,除了G以外(G是属于R,所以一定不是候选码),BD可以跟A,C,E进行组合
因为ABD+=ABDCEG=U ,所以ABD是候选码
因为BDC+=BDCEAG=U,所以BDC是候选码
因为BDE+=BDEAGC=U,所以BDE是候选码
所以本问题的候选码有3个分别是ABC、BCD和BDE
例2:R<U,F>,U=(A,B,C),F={AB->C,C->B},求候选码。
L:A LR:BC
X=A Y=BC
因为A只出现在左边,所以A一定是候选键。
A的闭包还是A,则对A进行组合,可以和B,C进行组合。
首先看AB,AB本身自包AB,而AB->C,所以AB的闭包是ABC=U。
再看AC,AC本身自包AC,而C->B,所以AC的闭包是ABC=U。
因为AB,AC的闭包都是ABC,也就是U,所以候选键是AB,AC。