关键码和表之间的联系

在关系数据库中,关键码(简称键)是关系模型中的一个重要概念,通常键由一个或几个属性组成,有一下几种常用键。

+--------------+-----------+-----------+--------+--------+-------------------+
| 教师编号     | 姓名      | 系别      | 性别   | 年龄   | 身份证号          |
+--------------+-----------+-----------+--------+--------+-------------------+
|         1011 | 程虹民    | 计算机    | 男     |     30 | 30102198112091581 |
|         1032 | 刘良顺    | 电子      ||     40 | 3010197009121383  |
|         2010 | 王彩凤    | 自动化    | 女     |     45 | 3010196511041480  |
|         2131 | 李同军    | 数学      ||     36 | 3010196506111583  |
|         3011 | 周林      | 外文      | 男     |     21 | 3010199007281581  |
+--------------+-----------+-----------+--------+--------+-------------------+

1. 超键

在一个关系中,能唯一标识元组的属性或属性集称为关系的超键。在如上表所示关系中,设属性集K(教师编号,系别)能唯一识别元组,可以认为教师编号和系别的属性集是教师关系的一个超键。

2. 候选键

若关系中某一属性组的值能唯一地标识一个元组,则称该属性组为候选键(Candidate Key)。在如上表所示关系中,属性集教师编号和身份证号都能唯一标识一个元组,所以说,属性集教师编号和身份证号是教师关系的候选键。

3. 全键

若候选键包含关系模式的所有属性,则称该候选键为全键(All-key)。例如有一关系TCS(T,C,S),属性T表示老师,C表示课程,S表示学生。老师、课程和学生之间都存在着多对多的关系,没有其中一个属性或两个属性的组合能唯一标识关系TCS,只有T,C、S属性合起来才能唯一标识关系TCS,所以说T、C、S属性集是候选键,也称为全键(或称为全码)。

4. 主键

若一个关系有多个候选键,则选定其中的一个称为主键(Primary Key),包含在任何一个候选键中的属性称为主属性,不包含在任何候选键中的属性称为非主属性或非键属性在如上表所示关系中,可以选教师编号属性为主键,也可选身份证号属性为主键,教师编号和身份证号属性都是主属性,姓名、系别、性别、年龄各属性是非主属性。

5. 外键

若一个关系R中包含另一个关系S的主键所对应的属性组F,则称F为R的外键(Foreign Key)。并称关系S为参照关系,关系R为依赖关系。

例如,职工关系和部门关系分别为:
教师(教师编号,姓名,系别编号,性别,年龄,身份证号)
系别(系别编号,系别名称,系主任)

这里教师关系是R关系,系别关系是S关系,教师关系的主键是教师编号,系别关系的主键是系别编号。在教师关系中,系别编号是系别关系中的主键,因此说教师关系中系别编号属性是教师关系中的外键。称S为参照关系(或称主表),称R为被参照关系(或称副表)。在这两个关系中,就是靠公共属性系别编号这个外键来联系的,这在关系数据库中很重要。我们约定,在主键的属性下面加下画线,在外键属性下面加波浪线。

来源:《数据库原理与应用》邹璇