程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了超级键,候选键和主键大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决超级键,候选键和主键?

开发过程中遇到超级键,候选键和主键的问题如何解决?下面主要结合日常开发的经验,给出你关于超级键,候选键和主键的解决方法建议,希望对你解决超级键,候选键和主键有所启发或帮助;

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

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

在您的示例中,我假设:

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是唯一的(这些天谁共享电话),那么以下也是超级键(除了上面列出的内容之外)。

@H_466_9@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。

主键通常只是候选键。

解决方法

有什么好心的人可以通过下面的一个简单示例来澄清我的疑问,并确定超键,候选键和主键吗?

我知道有很多帖子和网站解释了它们之间的区别。但看起来所有都是通用定义。

例子:

student (studentnumber,FamilyName,Degree,Major,Grade,Phonenumber)

所以从上面的例子中,我可以知道studentnumber是一个主键。

但是对于超级键,我有点困惑,可以将哪些属性组合分组到超级键中?

至于候选密钥,我对给出的定义感到困惑,因为任何候选密钥都可以作为主密钥。

这是否意味着诸如之类的属性@H_466_9@phonenumber是候选键并且可以是主键?(假设一个人@H_466_9@phonenumber仅属于一个学生)

感谢您的澄清!

大佬总结

以上是大佬教程为你收集整理的超级键,候选键和主键全部内容,希望文章能够帮你解决超级键,候选键和主键所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。