超键、候选键、主键和外键的区别和联系

超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。

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

主键(primary key):用户选作元组标识的一个候选键程序主键,一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。

外 键:在一个表中存在的另一个表的主键称此表的外键。
外键主要是用来描述两个表的关系。

超键包含着候选键,候选键中包含着主键。主键一定是惟一的。

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

身份证 姓名 性别 年龄

身份证唯一,所以是一个超键
姓名唯一,所以是一个超键
(姓名,性别)唯一,所以是一个超键
(姓名,性别,年龄)唯一,所以是一个超键
–这里可以看出,超键的组合是唯一的,但可能不是最小唯一的

身份证唯一,而且没有多余属性,所以是一个候选键
姓名唯一,而且没有多余属性,所以是一个候选键
–这里可以看出,候选键是没有多余属性的超键

考虑输入查询方便性,可以选择 身份证 为主键
也可以 考虑习惯 选择 姓名 为主键
–主键是选中的一个候选键

你可能感兴趣的:(数据库,sql,数据库,mysql)