数据库——如何求出候选码

例题:R,U=(A,B,C,D,E,F,G),Q={AB→C,CD→E,E→A,A→G},求候选码。

第一步:
只出现在→左边的一定是候选码
只出现在→右边的一定不是候选码
→左右都不出现的一定是候选码
→左右都出现的不一定是候选码

只在右:G
只在左:B,D
左右都在:A,C,E
左右都不在:F

所以一定是候选码的有:BDF

第二步:
查看与每个其他属性结合成的子集能否推出其他所有属性,找出元素数量最少的即为候选码。

BDF→BDF
ABDF→ABCDEFG
BCDF→ABCDEFG
BDEF→ABCDEFG

由于本题仅添加一个属性即可推出所有属性,而且候选码为最少属性数量的集合,因此候选码可以为ABDFBCDFBDEF
如果添加一项不能推出所有属性,可以添加两项继续排查,直至找出能推出所有属性的最少属性集合。

你可能感兴趣的:(数据库,数据库)