超键(super key):
在一个关系中,能唯一标识元组的属性或属性集,称为关系的超键。
候选键(candidate key):
不含有多余属性的超键,称为候选键。
主键(primary key):
用户选作元组的唯一标识的一个候选键,称为主键。
用主键可以实现关系定义中的“表中任意两行(行即元组,也可称为实体)不能相同”的约束。
主键可以是任意一个候选键,用户可以根据实际需要选择。
eg.学生信息表,包含属性:
身份证,姓名,性别,年龄。
其中身份证肯定是唯一的,可以作为超键;姓名、性别、年龄都可能重复,如果有重复则无法单独作为超键,但是如果姓名和年龄的集合,如果唯一,也可以成为一个超键,并且如果姓名唯一,也能成为一个超键。
同理身份证唯一,所以可以成为一个候选键;如果该关系中姓名没有重复,则也可以作为候选键。但是,身份证和性别的组合则无法成为候选键,因为没有性别,身份证已经是唯一的了,这里,性别就是那个多余的属性(参见上述候选键的定义)。