16回答

0收藏

超级键、候选键和主键

技术问答 技术问答 557 人阅读 | 16 人回复 | 2022-03-03

有没有好心的人可以通过以下简单的例子澄清我的问题,确定超键、候选键和主键?  T  }+ H' D; v; P& @
我知道有很多帖子和网站解释了它们之间的区别。但看起来所有都是通用定义。
4 Z# o- g; t: M6 n3 k1 `3 g3 ?例子:" C" C# D# Q0 j* V
Student (StudentNumber,FamilyName,Degree,Major,Grade,PhoneNumber)所以我可以从上面的例子中知道StudentNumber是主键。; a! u5 w' I/ K2 C0 H
但是对于超级键,我有点困惑。哪些属性组合可以分组成超级键?4 ~5 w2 |. h1 H  ^+ ~
至于候选密钥,我对给出的定义感到困惑,因为任何候选密钥都可以用作主密钥。8 a- Y/ }/ k/ k7 E! Z6 ?3 k0 X2 V2 i0 n
这是否意味着像这样的属性?PhoneNumber是候选键,可以是主键(假设一个人PhoneNumber只属学生). x( j# r% g& `9 B) ~. K
感谢您的澄清!, a  g3 C) G6 Q* B+ C; O
                                                               
+ }6 M6 g$ s/ n    解决方案:                                                                - `; h8 F4 N4 Y0 L, p% L4 C
                                                                综上所述,超级键是一组唯一的定义列,因为你不需要教科书的定义。- M& n0 j! m, Q6 \- @( D
集合可以有一个或多个元素,一个表可以有多个超级键。通常,您可以通过功能依赖来完成此操作。
" k6 t  j7 K) y$ R* k8 q+ `3 Y8 B在你的例子中,我假设:
( e3 m& g2 g% _, `  VStudentNumber    uniqueFamilyName     not uniqueDegree     not uniqueMajor      not uniqueGrade      not uniquePhoneNumber    not unique在这种情况下,超级键是包含学生编号的任何组合。# P/ I' a! |; k. k* D# s
所以下面是超级键/ t% e$ j  |. A7 k8 `6 ?+ x
StudentNumberStudentNumber,FamilyNameStudentNumber,FamilyName,DegreeStudentNumber,FamilyName,Degree,MajorStudentNumber,FamilyName,Degree,Major,GradeStudentNumber,FamilyName,Degree,Major,Grade,PhoneNumberStudentNumber,DegreeStudentNumber,Degree,MajorStudentNumber,Degree,Major,GradeStudentNumber,Degree,Major,Grade,PhoneNumberStudentNumber,MajorStudentNumber,Major,GradeStudentNumber,Major,Grade,PhoneNumberStudentNumber,GradeStudentNumber,Grade,PhoneNumberStudentNumber,PhoneNumber假设,如果PhoneNumber是唯一的(这几天谁分享电话),所以下面也是超级键(除了上面列出的内容)。
) J8 [: h/ K( R2 D+ j0 iPhoneNumberPhoneNumber,Grade,PhoneNumber,Major,GradePhoneNumber,Degree,Major,GradePhoneNumber,FamilyName,Degree,Major,GradePhoneNumber,MajorPhoneNumber,Degree,MajorPhoneNumber,FamilyName,Degree,MajorPhoneNumber,StudentNumber,FamilyName,Degree,MajorPhoneNumber,DegreePhoneNumber,FamilyName,DegreePhoneNumber,StudentNumber,FamilyName,DegreePhoneNumber,FamilyNamePhoneNumber,StudentNumber,FamilyName候选键只是最短的超键。回到超级键的第一个列表(即电话号码不是唯一的),最短的超级键是StudentNumber。
# n: ~) Y( L8 Q主键通常只是候选键。
分享到:
回复

使用道具 举报

回答|共 16 个

浪奇天下

发表于 2022-3-4 00:00:44 | 显示全部楼层

珍爱生命,果断回帖。
回复

使用道具 举报

趙師兄

发表于 2022-3-5 14:46:32 | 显示全部楼层

学习下
回复

使用道具 举报

一个萝卜一个坑儿

发表于 2022-3-6 15:46:40 | 显示全部楼层

无论是不是沙发都得回复下
回复

使用道具 举报

晓梦星期天

发表于 2022-3-7 09:58:47 | 显示全部楼层

我也来顶一下..
回复

使用道具 举报

因为寂寞

发表于 2022-3-8 05:29:38 | 显示全部楼层

为毛老子总也抢不到沙发?!!
回复

使用道具 举报

我可爱的太阳

发表于 2022-3-8 16:42:07 | 显示全部楼层

没人回帖。。。我来个吧
回复

使用道具 举报

骢骢

发表于 2022-3-8 23:49:55 | 显示全部楼层

学习下
回复

使用道具 举报

聚合体

发表于 2022-3-9 06:00:31 | 显示全部楼层

前排顶,很好!
回复

使用道具 举报

吴金鑫

发表于 2022-3-9 11:15:05 | 显示全部楼层

珍爱生命,果断回帖。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

29055 积分
9659 主题
热门推荐