如何通过拥有一组功能依赖项来查找候选键?

时间:2013-11-17 22:07:56

标签: database database-normalization functional-dependencies candidate-key

考虑关系R =(A,B,C,D,E,F)和一组函数依赖:

AB --> C

BC --> A

BC --> D

D -->  E

CF --> B

所有候选键是什么?

如果有人能给我答案并解释如何。

2 个答案:

答案 0 :(得分:0)

让我解释一下如何以简单的方式找到候选键:

形成三列,左,右和中间

  

在左栏中,添加仅出现在FD

左侧的属性      

在右栏中,添加仅出现在FD右侧的属性

     

在中间栏中,添加出现在FD右侧和左侧的属性

说明:

  

左列的属性表示,每个可能的候选键必须包含这些属性

  

右列的属性表示候选键不应包含它

  

中间的属性可能包含也可能不包含在超级键中

在给定的例子中,F放在左栏,A,B,C,D放在右栏,E放在右栏

然后,应用Closure属性,

  

AF + - > AF 反身性规则

     

BF + - > BF 反身性规则

     

CF + - > ABCDEF

因为

  

CF-> CF 反身性规则

     

CF-> B 给予

     

CB-> A 给定

     

CB-> D 给予

     

CB-> 及物性规则 CB-> D和D-> A

因此,CF-> ABCDEF和 CF 候选键

希望,这有帮助!

答案 1 :(得分:-1)

我希望this能帮助您找到此答案的候选键。

根据我的分析,这些功能依赖的候选键是:

AB,BC,ABC,ABD,BCD,ABCD