关系模式:如何解决这个问题

时间:2017-01-24 11:07:33

标签: database relational-database

我无法解决它。请帮忙 Q在关系模式R =(A,B,C,D,E)中,保留以下功能依赖性:

A → BC
CD → E 
B → D 
E → A

以下哪项是 R 的两个候选键的组合? 答案选择:

a)A和E
b)B和C

c)B和D
d)C和D

正确答案是 a)A和E

但如果E依赖于A(E→A),那么为什么选项 a)A和E 是正确的?请帮忙

1 个答案:

答案 0 :(得分:1)

我们可以计算FD左侧每组属性的函数依赖关系:

A -> A (Trivial)
A -> ABC (since A -> BC)
A -> ABCD (since B -> D)
A -> ABCDE (since CD -> E)

所以我们可以看到A确定了关系中的所有属性。 A是候选键。对于CD,我们得到:

CD -> CD (trivial)
CD -> CDE (since CD -> E)
CD -> CDEA (since E -> A)
CD -> CDEAB (since A -> BC)

所以CD是候选键。对于B,我们可以得出的最多是:

B -> B (trivial)
B -> BD (since B -> D)

对于E:

E -> E (trivial)
E -> EA (since E -> A)
E -> EABC (since A -> BC)
E -> EABCD (since B -> D)

同样,我们可以确定R中的所有属性,因此E是候选键。

所以我们有候选键A,E和CD。现在,仔细阅读问题。哪两个可能的答案是两个候选键的组合?选项d具有单个候选键的两个属性。选项b和c包含不是候选键的B.唯一正确的答案是a)A和E,它列出了两个单独的候选键。