数据库原理与应用 第 2 章 · 第三节
课程第 2 章第三节 过渡关系模式五元组逐项模式与关系五个关系模式关系实例数据库模式
第 2 章 关系数据库 · 第三节

关系模式与关系数据库模式

R(U, D, DOM, F),表的说明书
本 节 知 识 点
  1. 212.2 关系模式与关系数据库模式
  2. 22关系模式的定义
  3. 23R(U, D, DOM, F) 逐项对照
  4. 24关系模式与关系
  5. 25教学数据库 teaching 的五个关系模式
  6. 26关系模式的实例
  7. 27关系数据库模式
21
第 2 章 · 第三节

2.2 关系模式与关系数据库模式

上一节说清了表是什么,这一节说怎样描述一张表,答案是关系模式。

第 21 页课件

重 点这一块看的时候抓两点

第一,R(U,D,DOM,F) 五个字母各代表什么,第 23 页用 CourseSelect 逐个填了一遍。第二,关系模式和关系的区别是型和值的区别,第 24 页和第 27 页两张图说的是同一件事。第 25 页的五个关系模式后面各章反复用,见一次记一次。

想一想

描述一张表,最少要说清哪几样东西?

22
第 2 章 · 第三节

关系模式的定义

关系模式 R(U, D, DOM, F) 是对关系的描述,日常简记为 R(A1, A2, …, An)。

第 22 页课件

关键术语

关系模式Relation Schema
对关系的描述,说明关系叫什么、有哪些属性、属性取自哪些域、属性之间有什么依赖。

重 点五个字母一句话

R 是名字,U 是有哪些列,D 是用到哪些域,DOM 是哪一列用哪个域,F 是列与列之间的规则。简记时只写名字和列名,因为域和规则通常另外说明。课件上的标题句“表是怎么被规定出来的,答案就是关系模式”,把这一页说完了。

打个比方

一份表单的说明书:表单叫什么名字,有哪些栏,每一栏填什么类型的内容,哪一栏对应哪种类型,各栏之间要满足什么规矩。五样说清,谁都能照着印出同样的表单。

想一想

简记形式 R(A1, …, An) 丢掉了哪几样信息?

23
第 2 章 · 第三节

R(U, D, DOM, F) 逐项对照

用 CourseSelect 把五个字母各填一遍:U 是三个属性名,D 是三个域,DOM 把属性和域一一配对,F 是主键约束。

第 23 页课件

重 点课件右侧的例子

U = {studentId,courseId,term}。D = {学号域,课程号域,{2025春,2025秋}}。DOM(term) = {2025春,2025秋},给每一列穿上尺码。F = {(studentId,courseId,term) 是主键}。课件提醒 D 是 domain 不是 data,它装的是取值范围,不是数据。

知道更多F 里还会有什么

F 是属性间依赖关系的集合,典型的是函数依赖和键约束。studentId 决定 name 和 major,意思是知道学号就能确定姓名和专业,这是第 12 章的主角。在 SQL 里 F 靠 PRIMARY KEY、UNIQUE、FOREIGN KEY、CHECK 这些约束落地。

想一想

DOM 和 D 的区别是什么?

24
第 2 章 · 第三节

关系模式与关系

关系模式对应关系头,静态稳定,关系对应关系体,随数据更新不断变化。

第 24 页课件

重 点两条线

关系模式对应关系头,是型,固定不变。关系对应关系体,是值,随数据更新变化。课件底部两句:新增 1000 条选课记录,模式没变。把 term 从两个值扩到四个值,改的是模式。

打个比方

班级花名册的表头一年不变,名单每学期都在变。表头是关系模式,某一天的名单是关系。

练一练

下列哪个操作改变了关系模式?
  1. A新增一名学生
  2. B删除一门课程
  3. C给课程表加一列“学分”
  4. D修改某个学生的年龄
答案 C

加一列改的是表的结构,也就是关系头,关系模式跟着变。其余三个都只动了关系体里的数据,模式不变。

想一想

把一门课的课时从 48 改成 64,改的是模式还是关系?

25
第 2 章 · 第三节

教学数据库 teaching 的五个关系模式

教学数据库有五个关系模式,教师、学生、课程描述实体,选课、授课描述联系。

第 25 页课件

重 点按角色分两类

教师、学生、课程三个模式各描述一类实体。选课、授课两个模式描述实体之间的联系,它们的属性正好是两边的主码,选课多了一个成绩。括号里第一个属性通常就是主码,选课和授课要两个属性合起来才够。

知道更多

这五张表贯穿全书,第 5、6 章的每一条 SQL 都在它们上面练,第 12 章拿它们讲范式,第 13 章反过来讲它们是怎么设计出来的。

想一想

授课(教师号,课程号) 为什么不需要“姓名”这一列?

26
第 2 章 · 第三节

关系模式的实例

关系模式的实例就是某一时刻表里的全部行,这六行是教师关系模式此刻的值。

第 26 页课件

重 点读表

这张表有六个元组,度是 8,一行里 8 个分量按模式的属性顺序排列,第一个是教师号,最后一个是院系。工资一列出现 3610.5 和 3332.67,说明它的域是实数,年龄一列都是整数。明天给谁涨一次工资,实例就变了,模式没有变。

打个比方

关系模式像考试的答题卡样式,实例像这次考试收上来的全部答题卡。下次考试换一批答题卡,样式还是那一张。

想一想

这六行里,哪一列的值能唯一认出一位教师?

27
第 2 章 · 第三节

关系数据库模式

关系数据库模式是全部关系模式的集合,是型,关系数据库是这些模式在某一时刻的值。

第 27 页课件

关键术语

关系数据库模式Relational Database Schema
一个数据库里全部关系模式的集合,描述整个库的结构。
关系数据库Relational Database
这些关系模式在某一时刻对应的全部关系,也就是库里的全部数据。

重 点

一个关系模式描述一张表,关系数据库模式描述整个库里所有的表。型与值的对比和第 1 章三级模式里的“模式”是同一回事,说的都是全局逻辑结构。teaching 的关系数据库模式就是第 25 页那五行。

想一想

teaching 数据库的关系数据库模式里有几个关系模式?

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