通过例题来理解

超键(super key):能作为元祖唯一标识的字段的集合
候选键(candidate key)不含多余元素的超键
主键(Primary):用户选作标识的字段,可以在在候选键中选择(可以是多字段集合)

题目
在SQL Server数据库中,有一个学生信息表如下所示,在该表中不能作为候选键的属性集合为( ) (选择一项)
学号 姓名 性别 年龄 系别 专业
20020612 李辉 男 20 计算机 软件开发
20060613 张明 男 18 计算机 软件开发
20060614 王小玉 女 19 物理 力学
20060615 李淑华 女 17 生物 动物学
20060616 赵静 男 21 化学 食品化学
20060617 赵静 女 20 生物 植物学
a){学号}
b){学号、姓名}
c){年龄、系别}
d){姓名、性别}
e){姓名、专业}

Main.png

透过概念,我们可以了解到,超键包含着候选键,候选键中包含着主键。主键一定是惟一的。为什么呢?因为他的爷爷超键就是惟一的。
我们分析一下上面的题目,abcde5个答案都可以作为超键,他们组合在一起的集合可以用来惟一的标识一条数据记录(实体)。
*请注意我们的要求:候选键。候选键要求是不能包含多余属性超键,我们看一下答案b。在答案b中,如果我们不使用姓名也可以惟一的
标识一条数据实体,可以说姓名字段在这里是多余的。那么很明显,b选项包含了多余字段属性。那么这题答案应该选择b
那么其他的4个选项都可以作为候选键,假设很幸运,a)学号 被选择作为用户正在使用的候选键来惟一标识元组了,那么他很
幸运**的
获得了主键的称号

参考:https://www.cnblogs.com/lumnm/archive/2010/11/08/1871783.html