我们知道,实体集的超级密钥是一组一个或多个属性,其值唯一地确定每个实体 实体集的候选密钥是最小超级密钥 尽管可能存在多个候选键,但是其中一个候选键被选择为主键。
我们再次知道,参与实体集的主键组合形成了一个关系集的超级键。任何人都可以用一个简单的例子来帮助我理解它们之间的关系吗?
答案 0 :(得分:0)
人(id,SocialInsuranceNumber,姓名,家庭)
超级关键示例:
{id,name}或
{SocialInsuranceNumber,姓名,家庭}或
{id,SocialInsuranceNumber,name,family}
{id,name}是唯一的。没有两个人对上述两个字段具有相同的值。 但这套不是最小的。如果我们删除" name",那么剩下的就是超级密钥了。所以这不是候选人的关键。
候选人钥匙:
{id},
{SocialInsuranceNumber}
它们极简且独特。
主键:
{ID}
这是最短的长度(只有一个字段和" int"而不是varchar(9),这是另一个候选键的长度。)
PK也更好无数据(用户根本不会看到或改变,因为它可能会导致问题)。