超级密钥,候选密钥和主密钥之间的关系与一个例子

时间:2013-10-20 16:58:44

标签: sql relational-database primary-key candidate

我们知道,实体集的超级密钥是一组一个或多个属性,其值唯一地确定每个实体 实体集的候选密钥是最小超级密钥 尽管可能存在多个候选键,但是其中一个候选键被选择为主键。

我们再次知道,参与实体集的主键组合形成了一个关系集的超级键。任何人都可以用一个简单的例子来帮助我理解它们之间的关系吗?

1 个答案:

答案 0 :(得分:0)

  

人(id,SocialInsuranceNumber,姓名,家庭)

超级关键示例:

  

{id,name}或

     

{SocialInsuranceNumber,姓名,家庭}或

     

{id,SocialInsuranceNumber,name,family}

{id,name}是唯一的。没有两个人对上述两个字段具有相同的值。 但这套不是最小的。如果我们删除" name",那么剩下的就是超级密钥了。所以这不是候选人的关键。

候选人钥匙:

  

{id},

     

{SocialInsuranceNumber}

它们极简且独特。

主键:

  

{ID}

这是最短的长度(只有一个字段和" int"而不是varchar(9),这是另一个候选键的长度。)

PK也更好无数据(用户根本不会看到或改变,因为它可能会导致问题)。