以关系模式R<A,B,C,D,E>为例,存在函数依赖A→B,BC→D,DE→A,求候选码。
1.列出仅在左边存在的属性为L,仅在右边存在的属性为R,两边同时存在的为B。
L:C,E R:没有 B:A,B,D
L属性一定存在于候选码中,R属性一定不存在于候选码中。
2.仅有L属性是否可以推出完整的U,若可以则为候选码,否则执行第三步。
CE→null,所以CE不是候选码。
3.用B属性和L属性结合而成的属性组是否可以推出完整的U,若可以则为候选码。
ACE→ACEB(A→B)→ACEBD(BC→D)=U
BCE→BCED(BC→D)→BCEDA(DE→A)=U
DCE→DCEA(DE→A)→DCEAB(A→B)=U
由于ACE,BCE,DCE都可以推出完整的U,所以,ACE,BCE,DCE就是R的候选码。