功能依赖:找到候选键

时间:2014-04-12 05:20:22

标签: candidate-key

考虑以下关系R =(ABCDEFGH),其中这组函数依赖关系成立:{BE - > GH,G - > FA,D - > C,F - > B}什么是R的候选键?

我发现答案可以是BED,DEG,FED。但是,这个问题是一个单一的多项选择题,所以我不能选择多个答案......

希望有人能给我正确的答案和他使用的方法。

2 个答案:

答案 0 :(得分:0)

一组候选键是{{BDE}, {DEF}, {DEG}}

关系可以有多个候选键。但是,您只能选择其中一个作为主键。

这个link解释了如何根据你的例子评估候选键。

答案 1 :(得分:0)

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

形成三列,左,右和中间

  

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

左侧的属性      

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

     

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

说明:

  

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

  

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

  

中间的属性可能包含也可能不包含在候选键中

在这个例子中,我们得到左列的E,D,中间的B,F,G和右列的A,C,H

然后,应用关闭属性

  

BED + = ABCDEFGH

  

BE-> GH 给予

     

BE-> FA 分解规则和及物性规则 BE-> G和G-> FA

     由于D-> H

,因此BED-> C <强>给予

类似地,DEF和DEG可以被证明是候选键。

因此,这三个都是候选

希望,这有帮助!