超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键
主键(primary key):用户选作元组标识的一个候选键程序主键
外键:如果模式R中某属性集是其他模式的候选键,那么该属性集对模式R而言是外键(foreign key)
也就是说:包含候选键的属性集都是超键。
例如:学生信息表
学号 身份证号 姓名 年龄 性别
其中:学号:是唯一的(能唯一标识一个学生记录),所以是超键,而且没有多余属性,所以也是候选键
身份证号:也是唯一的,也是超键,而且没有多余属性,所以也是候选键
(学号,姓名):唯一,是超键,有多余属性姓名,不是候选键
(学号,姓名,年龄): 唯一,是超键,有多余属性姓名和年龄,不是候选键
--这里可以看出,超键的组合是唯一的,但可能不是最小唯一的,最小唯一的才是候选键或称为码
这里我们可以将学号作为主键,也可以将身份证号做主键
--主键是选中的一个候选键
问题:(学号,身份证)是候选键吗?答案:不是