我正在做一些教科书练习,要求找出关系 R 的候选键以及 super 键。
我已经求解了候选键,但我不确定如何求解 super 键?我只是有点困惑。
这是关系模式和功能依赖关系:
Relation Schema: **S(A, B, C, D)**
**FD's:**
A-->B
B-->C
B-->D
所以我发现 {A, AB} 是解决该问题后的候选键。我只是不知道如何找到这个的 super 键。任何帮助将不胜感激。谢谢大家。
最佳答案
要查找候选键,您需要查看使用依赖关系到达所有属性的路径。所以你对A
的看法是正确的,因为从A
你可以到达B
,而B
又可以到达{C, D}
。 AB
不能被视为候选键,因为它从未在您的依赖项中提及。另一种思考方式是记住候选键是保证行中唯一性的属性的最小数量。但由于 A
已经是候选键,因此 AB
不是最小集。
因为您只有一个候选键,即 A
。 A
称为关键属性,所有其他属性称为非关键属性。然后,您可以通过2
非键属性数量(B, C, D)
的幂来决定 super 键的数量。在这种情况下,您应该有 8 个 super 键。找到它们的方法很简单,只需将 A 与非关键属性的所有可能组合混合即可。所以你的 super 键将是A、AB、AC、AD、ABC、ABD、ACD、ABCD
。
关于mysql - 找到 super 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30091757/