主键 超键 候选键 外键

定义

  • 超键(super key): 在关系中能唯一标识元组的属性集称为关系模式的超键
  • 候选键(candidate key): 不含有多余属性的超键称为候选键。也就是在候选键中,若再删除属性,就不是键了!
  • 主键(primary key): 用户选作元组标识的一个候选键程序主键
  • 外键(foreign key):如果关系模式R中属性K是其它模式的主键,那么k在模式R中称为外键。

举例

比如有如下数据:

学号 姓名 性别 年龄 系别 专业
20020612 李辉 20 计算机 软件开发
20060613 张明 18 计算机 软件开发
20060614 王小玉 19 物理 力学
20060615 李淑华 17 生物 动物学
20060616 赵静 21 化学 食品化学
20060617 赵静 20 生物 植物学
  1. 超键

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

    于是我们从例子中可以发现 学号是标识学生实体的唯一标识。那么该元组的超键就为学号。

    除此之外我们还可以把它跟其他属性组合起来,比如:

    (学号,性别)

    (学号,年龄)

    这样也是超键.

  2. 候选键

    不含多余属性的超键为候选键。

    根据例子可知,学号是一个可以唯一标识元组的唯一标识,因此学号是一个候选键, 实际上,候选键是超键的子集,比如 (学号,年龄)是超键,但是它不是候选键。因为它还有了额外的属性。

  3. 主键

    用户选择的候选键作为该元组的唯一标识,那么它就为主键。

    简单的说,例子中的元组的候选键为学号,但是我们选定他作为该元组的唯一标识,那么学号就为主键。

  4. 外键

    外键是相对于主键的,比如在学生记录里,主键为学号,在成绩单表中也有学号字段,因此学号为成绩单表的外键,为学生表的主键。

总结

主键为候选键的子集,候选键为超键的子集,而外键的确定是相对于主键的。