ERDB中Super和Candidate键之间有什么区别?
感谢。
答案 0 :(得分:22)
超级键是一组唯一标识行的列。候选键将是唯一标识行的MINIMAL列。因此,基本上Superkey是候选键,其中包含额外不必要的列。
答案 1 :(得分:13)
候选键是最小超级键
答案 2 :(得分:4)
对我来说,超级密钥通常会在候选密钥上引入歧义
答案 3 :(得分:2)
让我们保持简单
SuperKey - 一组唯一定义row
的键。因此,即使任何一个属性都是unique
,所有属性中的所有属性都具有该唯一属性属性属于superkey
。
候选键 - 一个superkey
,其中没有可以派生的其他子集可以识别rows uniquely
,或者我们可以简单地说它是{{1} }}
答案 4 :(得分:0)
简而言之:候选键是最小的超级键。
超级键是唯一标识RDBMS中关系(表)中任何记录(或元组)的列(或属性)的组合。
例如,在具有A,B,C和D列的表中考虑以下依赖性 (给出此表只是一个简单的示例,因此并未涵盖R可能具有的所有依赖性)。
属性集(行列式) ---可以识别---> (从属)
A -----> AD
B -----> ABCD
C -----> CD
AC -----> ACD
AB -----> ABCD
ABC -----> ABCD
BCD -----> ABCD
现在,B,AB,ABC,BCD会标识所有列,因此这四列都符合超级键的条件。
但是,B⊂AB; B⊂ABC; B⊂BCD,因此AB,ABC和BCD不能通过CANDIDATE KEY进行资格鉴定,因为它们的子集可以识别这种关系,因此它们不是最小的,因此只有B是候选密钥,而其他不是候选密钥。