您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

超级键,候选键和主键

超级键,候选键和主键

概括地说,由于您不需要教科书定义,因此超级键是一组唯一定义一行的列。

该集合可以具有一个或多个元素,并且一个表可以有多个超级键。通常,您可以通过功能依赖来完成此操作。

在您的示例中,我假设:

StudentNumber    unique
FamilyName     not unique
Degree     not unique
Major      not unique
Grade      not unique
PhoneNumber    not unique

在这种情况下,超级键是包含学生编号的任何组合。

所以以下是超级键

StudentNumber
StudentNumber, FamilyName
StudentNumber, FamilyName, Degree
StudentNumber, FamilyName, Degree, Major
StudentNumber, FamilyName, Degree, Major, Grade
StudentNumber, FamilyName, Degree, Major, Grade, PhoneNumber
StudentNumber, Degree
StudentNumber, Degree, Major
StudentNumber, Degree, Major, Grade
StudentNumber, Degree, Major, Grade, PhoneNumber
StudentNumber, Major
StudentNumber, Major, Grade
StudentNumber, Major, Grade, PhoneNumber
StudentNumber, Grade
StudentNumber, Grade, PhoneNumber
StudentNumber, PhoneNumber

现在假设,如果PhoneNumber是唯一的(这些天谁共享电话),那么以下也是超级键(除了上面列出的内容之外)。

PhoneNumber
PhoneNumber, Grade, 
PhoneNumber, Major, Grade
PhoneNumber, Degree, Major, Grade
PhoneNumber, FamilyName, Degree, Major, Grade
PhoneNumber, Major
PhoneNumber, Degree, Major
PhoneNumber, FamilyName, Degree, Major
PhoneNumber, StudentNumber, FamilyName, Degree, Major
PhoneNumber, Degree
PhoneNumber, FamilyName, Degree
PhoneNumber, StudentNumber, FamilyName, Degree
PhoneNumber, FamilyName
PhoneNumber, StudentNumber, FamilyName

候选键只是“最短”的超键。回到超级键的第一个列表(即电话号码不是唯一的),最短的超级键是StudentNumber。

主键通常只是候选键。

其他 2022/1/1 18:38:49 有497人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶