键
如有两个表:
教师
+------------------+
| ID | TeacherName |
+----|-------------+
| 1 | Mary |
| 2 | Jim |
-------------------+
学生
+------------------------------+
| ID | TeacherID | StudentName |
+----|-----------|-------------+
| 1 | 1 | Vineeth |
| 2 | 1 | Unni |
+------------------------------+
超键
在关系中能唯一标识元组的属性集称为关系模式的超键。
上表中 ID 是标识学生的唯一标识,该元组的超键就是 ID。
除此之外还可以把它跟其他属性组合起来,比如:(ID, StudentName) 也是超键。
候选键
不含多余属性的超键为候选键。
根据例子可知,学号是一个可以唯一标识元组的唯一标识,因此学号是一个候选键, 实际上,候选键是超键的子集,比如 (学号,年龄)是超键,但是它不是候选键。因为它还有了额外的属性。
主键
用户选择的候选键作为该元组的唯一标识,那么它就为主键。
外键
如果关系模式 R1 中的某属性集不是 R1 的主键,而是另一个关系 R2 的主键,则该属性集是关系模式 R1 的外键。
外键是相对于主键的,比如学生表有教师表的 ID。
主键为候选键的子集,候选键为超键的子集,而外键的确定是相对于主键的。