【问题标题】:Relation Schema : How to solve this关系模式:如何解决这个问题
【发布时间】:2017-01-24 11:07:32
【问题描述】:

我无法解决。请帮忙 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 and E 是正确的?请帮忙

【问题讨论】:

  • 您使用的是什么参考,它对查找 CK 有什么看法?你被困在哪里了?请阅读How to Ask,包括关于家庭作业的内容。

标签: database relational-database


【解决方案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,其中列出了两个单独的候选键。

【讨论】:

  • 谢谢@reaanb 我有 1 个问题我如何解释语法 A -> ABC.is it ABC Depends on A OR ABC Comes From A.请帮忙。
  • 我将其解读为 A 决定 A、B 和 C,或者等效地:A、B 和 C 取决于 A。
  • 谢谢@reaanb 你写的还有 1 个问题 A -> ABC (since A -> BC) 。但是在这里 A -> ABCD(因为 B -> D)你没有用 D 替换 B,而是你添加了 D 如何?
  • 如果我们知道 A -> ABC 并且我们知道 B -> D,那么我们可以得出结论 A -> ABCD 因为 A -> D 是通过 A -> B -> D 的传递函数依赖. 我建议您查看 Armstrong 公理以获取更多信息 - Union: If X -> Y and X -> Z then X -> YZ.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-07
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
  • 2011-06-07
相关资源
最近更新 更多