功能依赖的候选键?

时间:2016-07-26 12:39:09

标签: database database-design relational-database database-schema functional-dependencies

关系R =(A,B,C,D,E)和函数依赖关系F如下:

F = {A-> BC,CD-> E,B-> D,E-> A}

  

E,BC和CD可以是候选键,但B不能。

任何人都可以指出我如何计算这个事实?我谷歌它但不能理解我之前所知的更多。

1 个答案:

答案 0 :(得分:4)

通过计算其功能依赖关系,可以找到给定属性集的所有依赖属性。让我演示一下:

03:00

A -> ABC -> ABCD -> ABCDE 因此A确定BC(给定)以及(通常)A -> ABC。添加B -> D获取ABC -> ABCD的事实。最后,添加CD -> E以获取ABCD -> ABCDE。我们在此停留是因为我们确定了整个关系,因此A是候选键。

您应该验证,从EBCCD开始,您确实可以确定整个关系。

B开始,我们得到:

B -> BD

就是这样。其余的关系无法从BD确定,因此它不是候选键。

更直观的方式是绘制功能依赖关系:

Functional dependency graph

从任何属性集开始,尝试按照箭头查找每个其他属性的路径。如果您从E开始或访问EC,则只能访问D

B,您可以D,但如果没有C,则不允许您转到E,这也会排除A。因此B不能成为候选键。