超键、候选键、主键区别?

超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键

候选键(candidate key):不含有多余属性的超键称为候选键

主键(primary key):用户选作元组标识的一个候选键程序主键

比如一个小范围的所有人,没有重名的,考虑以下属性

身份证 姓名 性别 年龄

身份证唯一,所以是一个超键

姓名唯一,所以是一个超键

(姓名,性别)唯一,所以是一个超键

(姓名,性别,年龄)唯一,所以是一个超键

--这里可以看出,超键的组合是唯一的,但可能不是最小唯一的

身份证唯一,而且没有多余属性,所以是一个候选键

姓名唯一,而且没有多余属性,所以是一个候选键

--这里可以看出,候选键是没有多余属性的超键

考虑输入查询方便性,可以选择 身份证 为主键

也可以 考虑习惯 选择 姓名 为主键

--主键是选中的一个候选键

一题搞懂什么是候选键 

看下题目先 

在SQL Server数据库中,有一个学生信息表如下所示,在该表中不能作为候选键的属性集合为( ) (选择一项) 

学号 姓名 性别 年龄 系别 专业 

20020612 李辉 男 20 计算机 软件开发 

20060613 张明 男 18 计算机 软件开发 

20060614 王小玉 女 19 物理 力学 

20060615 李淑华 女 17 生物 动物学 

20060616 赵静 男 21 化学 食品化学 

20060617 赵静 女 20 生物 植物学 

a){学号} 

b){学号、姓名} 

c){年龄、系别} 

d){姓名、性别} 

e){姓名、专业} 

可能大家不知道如何来选择。如果这个题目我们可以正确的解答,那么对于超键以及候选键和主键的概念已经有很深刻的认识了。 

看下概念: 

超键:在关系中能惟一标识元组的属性集称为关系模式的超键。 

候选键:不含有多余属性的超键称为候选键。也就是在候选键中,若要再删除属性就不是键了。 

主键:用户选作元组标识的一个候选键称为主键。 

u<6{mzh=|M 

透过概念,我们可以了解到,超键包含着候选键,候选键中包含着主键。主键一定是惟一的。为什么呢?因为他的爷爷超键就是惟一的。 

我们分析一下上面的题目,abcde5个答案都可以作为超键,他们组合在一起的集合可以用来惟一的标识一条数据记录(实体)。 

请注意我们的要求:候选键。候选键要求是不能包含多余属性的超键,我们看一下答案b。在答案b中,如果我们不使用姓名也可以惟一的 

标识一条数据实体,可以说姓名字段在这里是多余的。那么很明显,b选项包含了多余字段属性。那么这题答案应该选择b

那么其他的4个选项都可以作为候选键,假设很幸运,a)学号 被选择作为用户正在使用的候选键来惟一标识元组了,那么他很幸运的 

获得了主键的称号

转自:https://www.cnblogs.com/lumnm/archive/2010/11/08/1871783.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招...
    我没有三颗心脏阅读 10,770评论 5 43
  • 参考博客 身份证唯一,所以是一个超键 姓名唯一,所以是一个超键 (姓名,性别)唯一,所以是一个超键 (姓名,年龄)...
    不存在的里皮阅读 4,635评论 0 0
  • 目录 简介 在Android中存储数据有时会用到数据库,Android给我们提供了 一系列的API来操作数据库,非...
    慕涵盛华阅读 4,705评论 1 2
  • 班级情况: 校区:科学创想乐高机器人和平校区 时间:2017.01.06 周五5:30-6:30 学员:周诚睿,姜...
    Happy00阅读 3,207评论 0 0
  • 周总结的时间又到了,感觉好快,似乎上周的总结才写完没多久。我这么一想,再一翻之前的作业记录,才发现距离上次写周总结...
    洁_寞碎阅读 1,625评论 0 0

友情链接更多精彩内容