在数据库设计中:"如果A - >; C和B - > C,然后是A-> B或B-> A"是假的。为什么?

时间:2015-04-11 21:37:39

标签: database

这是一个家庭作业问题,但我弄错了,我试图找出原因。我最初说这是真的。我从逻辑上知道A可能是真的而且B是假的,因此声明并不成立,但数据库不会那样工作,对吧?

我理解这意味着" A确定C"," B确定C",然后A确定B或B确定A.这似乎必须是真的,因为我我不会想到任何虚假的例子!任何人都可以发一个例子来说明我错的原因吗?

1 个答案:

答案 0 :(得分:0)

  • 猫是哺乳动物
  • 狗是哺乳动物
  • 猫是狗或狗是猫。

经过一番思考,我认为“真正的”答案在这里旋转:

Wiki: Functional Dependency

  

反身性:如果Y是X的子集,则X→Y

由于我们正在谈论数据库,我很确定A-> C和B-> C然后A-> B或B-> A真的在谈论集合:

  • A是C
  • 的子集
  • B是C
  • 的子集
  • A是B < - 不一定是真的
  • 的子集
  • B是A&lt; - Not Yet True
  • 的子集

鉴于哺乳动物名单......猫是哺乳动物的一个子集......狗是哺乳动物的子集......猫/狗不是彼此的子集。