数据库原理与应用 第 2 章 · 第二节
课程 › 第 2 章 › 第二节 五条性质规范化选课关系 版式
第 2 章 关系数据库 · 第二节

关系的性质

关系的五条性质,规范化关系,设计一个选课关系
本 节 知 识 点
  1. 06关系的性质
  2. 07规范化关系
  3. 08例:设计一个选课关系
06
第 2 章 · 第二节 · 课件第 15 页

关系的性质

列是同质的,行序和列序可以交换,元组不能重复。

课件第 15 页

练一练

下面哪一种情况不符合关系的性质?
  1. A两列的属性名相同
  2. B两行的顺序交换
  3. C两列来自同一个域
答案 A

同一个关系中属性名必须不同。行序和列序都可以交换,不同的属性可以来自同一个域。

07
第 2 章 · 第二节 · 课件第 16 页

规范化关系

每一个分量都必须是不可分的数据项,不能表中有表。

课件第 16 页

重 点

籍贯分成省和市/县两列以后,每个分量都不可再分,成为规范化关系。

08
第 2 章 · 第二节 · 课件第 17、18、19、20 页合并重做

例:设计一个选课关系

说出它的度和每个属性的域,再写出几个元组。

2.1 关系的形式化定义及性质课件第 17 至 20 页合并

例:设计一个选课关系

选课关系 CourseSelect(studentId, courseId, term),三个属性分别是学号、课程号和学期。
项目内容
度3,有三个属性
studentId 的域全体学号的集合
courseId 的域全体课程号的集合,例如 DB201、AI101
term 的域学期的集合 {2025春,2025秋}
三个元组
studentIdcourseIdterm
10001DB2012025春
10002DB2012025春
10001AI1012025秋
在 MySQL 中建成表
CREATE TABLE CourseSelect (
  studentId VARCHAR(10) NOT NULL,
  courseId  VARCHAR(16) NOT NULL,
  term ENUM('2025春', '2025秋') NOT NULL,
  PRIMARY KEY (studentId, courseId, term)
);

term 用 ENUM 限定只能取域中的值。如果写成 VARCHAR,2025 春、2025春季 这样的写法都能存进去,统计和查询时就会出错。

重 点

把属性的取值范围写进数据类型和约束,存进去的数据才不会乱。

保山学院·人工智能教研室·曹鼎鼎