我正在做一些教科书练习,要求找出关系 R 的候选键以及超级键。
我已经解决了候选键,但我不确定如何解决超级键?我只是有点困惑。
这是关系模式和功能依赖关系:
Relation Schema: **S(A, B, C, D)**
**FD's:**
A-->B
B-->C
B-->D
所以我发现 {A, AB} 是解决后的候选键。我只是不确定如何为此找到超级键。任何帮助将不胜感激。谢谢你们。
我正在做一些教科书练习,要求找出关系 R 的候选键以及超级键。
我已经解决了候选键,但我不确定如何解决超级键?我只是有点困惑。
这是关系模式和功能依赖关系:
Relation Schema: **S(A, B, C, D)**
**FD's:**
A-->B
B-->C
B-->D
所以我发现 {A, AB} 是解决后的候选键。我只是不确定如何为此找到超级键。任何帮助将不胜感激。谢谢你们。
要查找候选键,您需要查看使用依赖项将您引导至所有属性的路径。所以你是正确的,A
因为 from A
you can reach B
that can reach {C, D}
。AB
不能被视为候选键,因为它从未在您的依赖项中提及。另一种思考方式是记住候选键是保证行中唯一性的最少属性数。但既然A
已经是一个候选键,那么AB
它就不是最小集合。由于您只有一个候选键,即A
. A
称为关键属性,所有其他属性称为非关键属性。2
然后你通过非键属性数的幂来决定超级键的数量(B, C, D)
. 在这种情况下,您应该有 8 个超级键。找到它们的方法是简单地将 A 与非关键属性的所有可能组合混合。所以你的超级键是A, AB, AC, AD, ABC, ABD, ACD, ABCD
.