我无法解决它。请帮忙 Q在关系模式R =(A,B,C,D,E)中,保留以下功能依赖性:
A → BC
CD → E
B → D
E → A
以下哪项是 R 的两个候选键的组合? 答案选择:
a)A和E
b)B和C
正确答案是 a)A和E
但如果E依赖于A(E→A),那么为什么选项 a)A和E 是正确的?请帮忙
答案 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,它列出了两个单独的候选键。