Skip to content
难度基础(★)
建议时长45分钟

3.4.2 关系模式相关概念

本课核心知识点整理
本课核心知识点手绘流程图(SVG)

关系模式的标准写法

关系模式描述的是表结构,常写成:

R(A1,A2,,An)

其中 R 是关系模式名,括号内是属性名。比如:

学生(学号,姓名,性别,专业号)

这不是一张具体装满数据的表,而是表结构的描述。具体某一时刻表中的所有行,才是这个关系模式的一个关系实例。

二维表视角下的基本术语

关系模型把数据组织成二维表,但考试喜欢换术语问:

关系术语二维表直观理解例子
关系模式表结构学生(学号, 姓名, 专业号)
关系某个时刻的表内容学生表当前所有记录
属性学号、姓名
元组行/一条记录学号为 001 的学生记录
属性取值范围性别取值、成绩范围
分量元组在某属性上的值001 这行的姓名值

字幕中提到“目”或“度”:关系模式中属性的个数称为目或度。如果 R(A,B,C) 有 3 个属性,则它是 3 目关系。水平方向的一行是元组,表示一个实体实例或一个业务事实。

键的层次

键是后面规范化理论的入口。不要把“唯一”与“最小唯一”混在一起。

概念定义关键判断
超键能唯一标识元组的属性集可以有冗余属性
候选键/候选码能唯一标识元组且最小的属性集唯一性 + 最小性
主键/主码从候选键中选定的一个数据库主要标识
主属性出现在任一候选键中的属性和“主键中的属性”不完全等价
非主属性不出现在任何候选键中的属性范式判断常用
外键引用另一个关系候选键/主键的属性表达关系之间的参照

例如 学生(学号, 身份证号, 姓名, 专业号) 中,学号和身份证号都可能唯一标识学生,因此都可作为候选键。若选学号作为主键,身份证号仍然是候选键,不会因为没被选为主键而失去唯一标识能力。

候选键为什么强调“最小”

如果 学号 已经能唯一标识学生,那么 {学号, 姓名} 也能唯一标识学生,但它不是候选键,因为姓名是冗余属性。候选键必须去掉任何一个属性后都不能保持唯一标识。

可以用集合语言理解:

K 是候选键KR 且不存在 KK 使 KR

其中 K -> R 表示属性集 K 能决定关系模式中的全部属性。后面讲函数依赖时,这个符号会成为主力工具。

完整性约束的前置理解

关系模式不仅有列名,还要带约束。常见完整性约束包括:

约束含义例子
实体完整性主键不能取空值学号不能为空
参照完整性外键值必须引用已存在对象或为空学生表的专业号应在专业表中存在
用户定义完整性业务规定的取值约束成绩在 0 到 100 之间

这些约束之所以放在关系模型里,是因为数据库不仅要“存数据”,还要防止系统存入语义上不成立的数据。

做题路线

  1. 看到“一行记录”,答元组;看到“一列”,答属性;看到“取值范围”,答域。
  2. 求候选键时先找能唯一标识的属性集,再删除冗余属性验证最小性。
  3. 主键只是被选中的候选键,候选键可以不止一个。
  4. 外键不是“另一张表的主键本身”,而是本关系中用于引用其他关系的属性。

例题

单选
关系中的一行记录称为:
单选
候选键的判断标准是:

自查要点

  1. 关系、属性、元组分别对应表中的什么?
  2. 候选键为什么强调“最小”?
  3. 外键表达的是什么关系?