【写在前面】
这是2019年的卷子,复习备考的时候做了并与同学校对了答案。答案仅供参考。从这张开始难度明显比之前有上升,题目也开始没那么无脑了。但还是比较基础的。
一、单选题(30 分)
1
、数据库(
DB
),数据库系统(
DBS
)和数据库管理系统(
DBMS
)之间的关系是( )。
A
、
DBS
包括
DB
和
DBMS B
、
DBMS
包括
DB
和
DBS
C
、
DB
包括
DBS
和
DBMS D
、
DBS
就是
DB
,也就是
DBMS
2
、在数据库系统中,模式
/
外模式映像用于解决数据的(
)。
A
、结构独立性
? ?B
、物理独立性? ?C、分布独立性? ?D、逻辑独立性
3
、
SQL
语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,
CREATE
、
DROP
、
ALTER
语句是实现哪种功能(
)。
A
、数据查询
B
、数据操纵
C
、数据定义
D
、数据控制
4
、在关系模型中,实现
"
关系中不允许出现相同的元组
"
的约束是通过( )实现的。
A
、外码
B
、主码
C
、
CHECK
子句
D
、用户自定义约束
5
、现有一个关系:借阅(书号、书名,库存数,读者号,借期,还期),假如同一本书允许一个读者多次借阅,但不能同时对一本书借多本。则该关系模式的码是(
)。
A
、书号
B
、读者号
C
、书号
+
读者号
D
、书号
+
读者号
+
借期
6
、学生关系模式
S
(
Sno
,
Sname
,
Sex
,
Age
),
S
的属性分别表示学生的学号、姓名、性别、 年龄。要在表 S
中删除一个属性“年龄”,可选用的
SQL
语句是(
)
A
、
DELETE Age from S
B
、
ALTER TABLE S DROP Age
C
、
UPDATE S Age
D
、
ALTER TABLE S Delete ‘Age’
7
、从
ER
图导出关系模型时,如果实体间的联系是
M
:
N
的,下列说法中正确的是(
)。
A
、将
N
方码和联系的属性纳入
M
方的属性中
B
、将
M
方码和联系的属性纳入
N
方的属性中
C
、增加一个关系表示联系,其中纳入
M
方和
N
方的码以及联系本身的属性
D
、在
M
方属性和
N
方属性中均增加一个表示级别的属性
8
、假设有关系
R
和
S
,关系代数表达式
R
-(
R
-
S
)表示的是(
)。
A
、
R
∩
S? ?B
、
R
∪
S? ?C
、
R
-
S? ?D、
R
×
S
9
、关系数据库规范化是为了解决关系数据库中(
)的问题而引入的。
A
、提高查询速度
B
、插入、删除异常和数据冗余
C
、保证数据的安全性和完整性
D
、保证数据库安全性
10
、
X
→
Y
,当下列哪一条成立时,称为平凡的函数依赖( )。
A
、
X
∈
Y B
、
Y
是?
X的子集 C
、
X
∩
Y
=
Φ
D
、
X
∩
Y
≠
Φ
11
、以下( )不属于实现数据库系统安全性的主要技术和方法。
A
、存取控制技术
B
、视图技术
C
、审计技术
D
、并发控制技术
12
、写一个修改到数据库中,与写一个表示这个修改的记录到日志文件中的操作,应该( )。
A
、前者先做
B
、由程序员安排
C
、后者先做
D
、由系统决定哪一个先做
13
、查询优化策略中,首先应该做的是(
)
A
、对数据进行预处理
B
、尽早执行选择运算
C
、尽早执行笛卡尔乘积运算
D
、投影运算
14
、设有关系模式
R(A
,
B
,
C
,
D)
,
F
是
R
上成立的函数依赖集,
F={B
→
C,C
→
D},
则属性
C
的闭包
C
+
为
( )
A
、
BCD B
、
BD C
、
CD D
、
BC
15
、 设有事务
T1
和
T2
,其并发操作顺序如下图所示,该并发操作带来的问题是
:
A
、丢失更新
B
、读“脏数据”
C
、事务不能提交
D
、不能重复读
【答案】
ADCBD BCABB DCBCA
二、 简答题(20 分)
1.
数据库的设计一般分为哪几个阶段?用一句话概括每个阶段的工作。
(5)
【答案】
-
需求分析阶段:准确了解与分析用户需求(包括数据与处理),需求分析如果不好可能会导致整个数据库重做。
-
概念结构设计阶段:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体数据库管理系统的概念模型。
-
逻辑结构设计阶段:将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化。
-
物理结构设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
-
数据库实施阶段:设计人员运用数据库管理系统提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
-
数据库运行和维护阶段:在数据库系统运行过程中对其进行评价、调整与修改。
【2023数据库系统期末考题简答题第1题,同样的位置,同样的题目】
2.
简述事务的概念及其特性。
(5)
【答案】
事务(transaction):用户定义的一个数据库操作序列,不做或全做,这个工作单位不可分割。
-
原子性(atomicity):事务中的操作要么不做要么全做。
-
一致性(consistency):事务执行的结果必须使数据库从一个一致性状态转移到另一个一致性状态。即完整性。
-
隔离性(isolation):一个事务的执行不能被其它事务干扰。
-
持续性(durability):一个事务一旦提交,它对数据库中数据的改变是永久性的,接下来其它操作或故障不会对它的执行结果造成影响。
【2015期末考题;如果你记忆够好,能记得住】
3.
在数据库的查询优化中,什么是代数优化?什么是物理优化?
(5)
【答案】
代数优化:基于关系代数等价变换规则的优化方法
物理优化:对于底层存取路径的优化
【2016期末考题;如果你记忆够好,能记得住】
4
.并发操作可能会产生哪几类数据不一致?用什么方法可以避免各种不一致的情况?
(5)
【答案】
丢失修改,脏读,不可重复读;
分别使用第一二三级封锁协议(这个要多些一下,显得自己理解了)
【2023数据库系统期末考题简答题第4题,考了类似的:为什么要进行并发控制,说明理由,举一个并发控制的例子
】
三、 应用题(50 分)
1
、 某个学校有若干系,每个系有若干学生、若干课程,每名学生选修若干课程,每门课程有若干学生选修,某一门课程可以为不同的系开设。现在要建立该校学生选修课程的数据库,试设计:
(
1
) 关于此学校数据库的
E-R
图(
5
分)。
(
2
) 把该
E-R
图转换为关系模式,并用下划线标出主码(
5
分)。
【答案】属性没有写完整,要补全完整
【这道题是2015的老题目了】
2
、 设有关系模式
S-L-C(Sno, Sdept, Sloc, Cno, Grade)
,其中的属性分别代表学号、系别、住处、课程号和成绩。假设同一个系的学生住在同一个地方。试回答下列问题:
(1)
根据上述规定,写出关系模式
S-L-C
的基本函数依赖;(
5
分)
(2)
试问关系模式
S-L-C
最高已经达到第几范式?为什么?(
2
分)
(3)
请将
S-L-C
分解成高一级的范式。(
3
分)
【答案】我感觉应该是1NF,有部分函数依赖的。但基本依赖里应该没有Sno→Sloc
但Sno和Cno是主码,这必然导致部分函数依赖,所以感觉2NF都上不去
3、 设学生-课程数据库中包括三个表:
学生表:Student (Sno,Sname,Sex,Sage,Sdept)
课程表:Course(Cno,Cname,Ccredit)
学生选课表:SC(Sno,Cno,Grade)
其中 Sno、Sname、Sex、Sage、Sdept、 Cno、Cname、Ccredit 、Grade 分别表示学号、姓名、性别、年龄、所在系名、课程号、课程名、学分和成绩。
试用 SQL 语言完成下列项操作:
(1) 查询选修了课程名为“数据库原理”的学生学号和姓名;(
2
分)
(2) 找出每个学生超过他自己选修课程平均成绩的课程号。(3 分)
(3)建立计科系学生的视图 CS_Student,包括学号、姓名、性别、年龄,并要求进行
插入和修改操作时仍需保证该视图只有计科系的学生;(
3
分)
(4)通过计科系学生视图 CS_Student 修改数据,把学号为“S201608101”的学生姓名改为王
小平;(
2
分)
【答案】
4、 系统出现故障时,恢复子系统将根据事务的不同状态采取不同的恢复策略。说明下图中
T1、T2、T3、T4 和 T5 五个事务对应的恢复策略(无操作,REDO 或 UNDO),并说明理由
(10 分)
【答案】
【这道题也是反反复复出现了】
5、 考虑 T1 和 T2 两个事务。(10 分)
T1: R(A);R(B); B=A+B; W(B)
T2: R(B);R(A); A=A+B; W(A)
设初始值 A=2,B=3。
(1) T1 和 T2 两个事务的执行是否会引起死锁?请给出 T1 和 T2 的一个调度进行说明。(5
分)
(2)试给出遵守两段锁协议的一个可串行化调度,并给出执行结果。(5
分)
【讨论】
这道题我觉得有点怪,因而我给不出想要的“标准答案”或能拿分的答案。
(1)首先引起死锁肯定会的,第一题很好做。说明也不难。
(2)给出可串行化调度,我只能给出一个串行调度,但是串行调度是不是可串行化调度,是不是题目想要的,我就不知道了。我觉得除了串行调度,这里给不出别的可串行化调度,这是显然的。因为读写是冲突的。不知道这样能不能拿分。
另外就是,这道题的逻辑,两段锁协议是不能解决死锁的,所以第二题一定还可能会遇到死锁的问题,这个不知道是不是没考虑到。或者说第二题给调度的时候就不用考虑锁,这也是一种想法。不过这个就看你怎么想了,我已经考完试了,也不用继续琢磨这个问题了(doge)。