Mysql 找到超级键
我正在做一些教科书上的练习,要求找出关系R的候选键以及超级键 我已经解决了候选关键点,但我不知道如何解决超级关键点?我只是有点困惑 以下是关系模式和函数依赖关系:Mysql 找到超级键,mysql,sql,database,relation,candidate-key,Mysql,Sql,Database,Relation,Candidate Key,我正在做一些教科书上的练习,要求找出关系R的候选键以及超级键 我已经解决了候选关键点,但我不知道如何解决超级关键点?我只是有点困惑 以下是关系模式和函数依赖关系: Relation Schema: **S(A, B, C, D)** **FD's:** A-->B B-->C B-->D 所以我发现{A,AB}是解决这个问题后的候选键。我只是不知道如何找到这个超级键。任何帮助都将不胜感激。谢谢大家。要查找候选密钥,您需要查看使用依赖项指向所有属性的路径。因此,关于A
Relation Schema: **S(A, B, C, D)**
**FD's:**
A-->B
B-->C
B-->D
所以我发现{A,AB}是解决这个问题后的候选键。我只是不知道如何找到这个超级键。任何帮助都将不胜感激。谢谢大家。要查找候选密钥,您需要查看使用依赖项指向所有属性的路径。因此,关于
A
你是正确的,因为从A
你可以到达B
,它可以到达{C,D}
AB
不能被视为候选密钥,因为您的依赖项中从未提到过它。另一种考虑方法是记住候选键是保证行中唯一性的最小属性数。但是由于A
已经是候选密钥,因此AB
不是最小集。
因为您只有一个候选密钥
A
<代码>一个称为关键属性,所有其他属性称为非关键属性。然后,通过2
和非关键属性的数量的幂决定超级关键点的数量(B,C,D)
。在这个场景中,您应该有8个超级键。找到它们的方法就是简单地将一个包含所有可能的非关键属性组合的文件混搭在一起。因此,您的超级键将是A、AB、AC、AD、ABC、ABD、ACD、ABCD
嗨,阿拉,谢谢你的回复。我相信你说AB不是候选键,而是超级键是正确的,因为它不是极小值(像a)。不过我还有一个问题要问你。是否有一个通用公式来计算存在多少个超级键?你提到了2^(#个非关键属性)。请尽快告诉我。谢谢你的帮助,干杯。嗨,乔丹霍利。我给出的规则是当您有一个单一属性的候选键(只有一个具有单一属性的候选键)时。如果您有多个候选键,或者您的候选键有多个属性,那么这是一个不同的公式,我不知道。如果前面的答案回答了您的初始问题,请将其标记为答案。谢谢