已知关系模式和函数依赖求候选码的步骤:
只在右边出现的属性,不属于候选码;
只在左边出现的属性,一定存在于某候选码当中;
左右都不出现的属性一定存在于任何候选码当中;
左右都出现的属性逐个与2,3的属性组合,求属性闭包,若闭包等于U,则为候选码。
例如:
关系模式R(A,B,C)
存在函数依赖F={AB->C, C->B}
求R的候选码。
只在左边出现 L : A
只在右边出现 R : 无
左右都不出现 N : 无
左右都出现的 LR : B, C
求闭包
首先看AB,AB本身自包AB,而AB->C,所以AB的闭包是ABC=U。
再看AC,AC本身自包AC,而C->B,所以AC的闭包是ABC=U。
故而R的候选码是AB,AC。