【问题标题】:How to specify a set of equivalent Functional Dependencies for a given relation如何为给定关系指定一组等效的功能依赖关系
【发布时间】:2015-01-24 12:23:29
【问题描述】:

我们被告知 FD 是:

A->B
B->C
C->A

但是使用传递规则,因为A->BB->C 这也意味着:

A->C

我算出来了:

A->BC 为真,因为 A->BA->C 是 FD。我可以使用拆分规则

A->BC拆分为A->BA->C

C->AB 为真,因为C->A 并且由于传输规则C->B 为真(其中C->AA->B 表示C->B

谁能告诉我正确答案以及为什么我的答案是错误的。我无法理解给定的答案。

【问题讨论】:

  • 嗯,反馈会告诉你确切地为什么你的答案是错误的。你不能从中推导出 B->A。
  • @MikeSherrill'CatRecall' 哪个答案是正确的(帮助我理解它)?
  • 正确答案是闭包与集合 S1 的闭包匹配的那个。你的教科书有教你如何计算一组 FD 的闭包吗?
  • 据我所知,没有拆分规则(如您的回答所解释)。这可能就是选择#2 的问题所在。我猜你需要在 #1 和 #4 之间做出选择(看起来都很诱人:)
  • OP 所说的“分裂”,以英语为母语的人称之为“分解”。

标签: relational-algebra functional-dependencies


【解决方案1】:

关于你的答案为什么错误的讨论可以在 cmets 中找到。

正确答案是#4:只有在这个答案中ABC 是原始函数依赖集中的超级键。在#1 中A 不是超级键(例如,A -> B 不成立),在#3 中C 不是超级键(例如,C -> B 不成立)。

【讨论】:

  • 这很奇怪,我无法理解它,但在离开它几个星期后,一切都只是点击了,现在看起来非常明显(我想我被冲昏了头脑和复杂的事情)!总而言之,它显然不是#2,因为B 不是超级键(例如B -> C 不成立)
猜你喜欢
  • 2018-08-24
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多