第 1 章 数据库系统概述 · 第八节
课后练习(二)
第 7、9、10、11 题,DBA、抽象层次、独立性、联系类型
64
第 1 章 · 第八节
第 7 题 DBA 的职责
凡是直接针对数据库本身的管理工作都归 DBA,编译器优化不是。
练一练第 7 题
下列哪项不属于数据库管理员(DBA)的典型职责( )。
- A定义与维护模式、存储结构与安全策略
- B制定备份恢复方案、监控与性能调优
- C并发控制策略配置与权限管理
- D编译器的词法/语法优化
答案 DD 属于编译器和程序语言实现的范畴。A、B、C 都是 DBA 的核心工作:模式管理、安全与权限、备份恢复、性能和并发。
重 点
课件第 14 页给 DBA 的定义是“负责设计、建立、管理和维护数据库,以及协调用户对数据库的要求”。A、B、C 三项分别是设计建立、维护、协调用户,正好和定义一一对应。
想一想
学校信息中心里,谁最像这道题里说的 DBA?
DBA 管的是数据库这一层,往上的应用程序和往下的编译器都不归他。
重 点DBA 的工作按时间分三段
建库之前:定义模式、存储结构、安全策略,也就是决定存什么、怎么存、谁能看。运行之中:配置并发控制、管理权限、监控性能、调优。出事之后:按备份恢复方案把数据库救回来。每一段都对应教材后面的章节,第 8 章安全、第 9 章并发、第 10 章备份恢复。
打个比方
DBA 像一栋楼的物业经理,管门禁、管水电、管消防演练,但不管住户自己家里怎么装修,也不管建筑公司怎么炼钢。
想一想
把服务器上的 MySQL 升级到新版本,这件事归 DBA 还是归应用程序员?
66
第 1 章 · 第八节
第 9 题 哪一项属于物理层
视图属于外部层,联系和主键外键属于概念层,索引的页大小和分裂策略属于物理层。
练一练第 9 题
关于数据抽象层次,属于物理层的是( )。
- A课程与学生的多对多联系
- B视图 V_PublicStudent 的可见列集合
- CB+ 树索引的页大小与节点分裂策略
- D概念模式中的主键与外键约束
答案 C物理层关注存储实现细节,文件、页、块、索引怎么实现都属于它。A 和 D 属于概念层,也就是模式。B 属于外部层,视图就是一个外模式。
重 点
题里的“数据抽象层次”就是三级模式换了一个说法:外部层是外模式,概念层是模式,物理层是内模式。每个选项先问一句“这是用户看到的、全局定义的、还是存储实现的”,答案就出来了。
想一想
“学生表按学号升序存放在磁盘上”,属于哪一层?
四个选项正好覆盖三层,是一道分层归类的好题。
重 点四个选项各归哪一层
课程与学生的多对多联系是全库逻辑结构的一部分,归模式。主键和外键约束是定义在模式上的规则,也归模式。视图 V_PublicStudent 只让某类用户看到学生表的部分列,是一个外模式。B+ 树是索引在磁盘上的实现方式,页大小和分裂策略是纯粹的存储细节,归内模式。
知道更多两个生词
视图是从一张或几张表派生出来的虚表,第 7 章会学,它是外模式最常见的实现手段。B+ 树是数据库索引最常用的数据结构,第 7 章也会提到,这里只需要知道它是存储层面的东西。
想一想
“只允许辅导员看到本班学生的成绩”,这条要求落在哪一层?
68
第 1 章 · 第八节
第 10 题 拆表而视图不变
拆表改的是逻辑结构,应用的视图没变,靠的是外模式/模式映像,这是逻辑独立性。
练一练第 10 题
某数字媒体平台把“作品(Work)”表拆分为“作品元数据(WorkMeta)”与“发布信息(PublishInfo)”,应用的查询视图保持不变。该变更主要考查( )。
- A物理独立性
- B逻辑独立性
- C事务隔离性
- D可串行化
答案 B拆分概念模式里的关系是逻辑层的变化,通过外模式/模式映像保持原有视图和程序不变,体现的是逻辑独立性。A 是存储层的变化,C 和 D 是第 9 章并发控制里的术语,和本题无关。
重 点
这道题和第 5 题是一对:第 5 题改的是存法,这道题改的是表结构。判断的办法一样,先看改了哪一层,一张表拆成两张,表的定义变了,那就是模式变了。
想一想
拆表之后,原来查“作品”视图的程序为什么可以一行不改?
视图是应用看到的外模式,只要映像把新的两张表重新拼成原来的样子,应用就察觉不到。
重 点映像在这里具体做了什么
拆表之前,视图“作品”直接对应 Work 一张表。拆表之后,DBMS 把视图的定义改成 WorkMeta 和 PublishInfo 两张表拼起来的结果,这一步就是调整外模式/模式映像。应用照旧查“作品”视图,拿到的列和以前一样。
知道更多干扰项里的两个词
事务隔离性和可串行化都是第 9 章并发控制的概念,说的是多个用户同时操作时互不干扰,跟改表结构没有关系。选择题里出现明显不属于本章的词,通常就是用来排除的。
想一想
如果拆表之后没有更新映像,应用程序会发生什么?
70
第 1 章 · 第八节
第 11 题 宿舍房间与学生
一个房间住多名学生,同一时刻一名学生只住一个房间,房间对学生是一对多。
练一练第 11 题
在某校“6 人间”宿舍建模中,若假定同一时刻每位学生唯一入住一个宿舍房间,而每个房间可住多名学生,则“宿舍房间与学生”的联系类型是( )。
- A1:1
- B1:n(房间对学生)
- Cn:1(房间对学生)
- Dm:n
答案 B一个房间对应多名学生,每个学生当前只对应一个房间,因此房间对学生是 1:n。只有允许一个学生同时住多个房间,或者规定一个房间只住一个人,才会变成 m:n 或 1:1。
重 点
判断方法回到课件第 37 页:从房间的一个实体出发,最多对应几名学生,是多个。从学生的一个实体出发,最多对应几个房间,题干说了唯一,是一个。一边多一边一,就是一对多,多的一头写 n。
想一想
题干里“6 人间”这个数字,对判断联系类型有没有影响?
联系类型不是事物固有的,它取决于题目给的假定,假定一变,类型跟着变。
重 点假定怎样改变答案
题干的假定是“同一时刻每位学生唯一入住一个房间”,所以是 1:n。如果改成“记录学生四年里住过的所有房间”,一个学生对应多个房间,就变成 m:n。如果改成“单人间”,一个房间只住一人,就变成 1:1。做这类题先找题干里的限定词,再数两边最多各对应几个。
知道更多
课件第 37 页的演示里有“宿舍房间与学生”这个例子,点一下能看到连线。第 13 章设计数据库时,这个 1:n 会直接决定学生表里要不要加一列“房间号”,多对多则需要单独建一张表。
想一想
如果一名学生可以登记多个手机号,“学生与手机号”是哪种联系?