【写在前面】
这是2017年的卷子,复习备考的时候做了并与同学校对了答案。答案仅供参考。这张难度不大,比起前一年的并没有增加什么知识点。
一、 单选题(每小题 2 分,共 20 分)
1
、数据库的概念模型独立于( )。
(
A
)具体的机器和
DBMS
(
B
)
E-R
图
(
C
)信息世界(D
)现实世界
2
、对关系
R(A,B,C)
和
S(B,C,D)
,下列关系代数表达式不成立的是( )
(
A
)
π
B
(R)
⋈
π
B
,
D
(S)
(
B
)
R
∪
S
(
C
)
π
B
(R)
∩
π
B
(S)
(
D
)
R
⋈
S
3
、如果一个关系
R
中的属性全部都是主属性,则
R
至少可以达到( )。
(
A
)
2NF
(
B
)
3NF
(
C
)
BCNF
(
D
)
4NF
4
、在
E-R
模型中,如果有
3
个不同的实体集,
3
个多对多的联系, 则应转换为( )个关系模式。
(
A
)
3
(
B
)
6
(
C
)
9 (D
)
4
5
、关于死锁,下列说法正确的是( )
(
A
)死锁是操作系统中的问题,数据库中不存在
(
B
)数据库中防止死锁的方法是禁止两个用户同时访问数据库
(
C
)当两个用户竞争相同的资源时不会发生死锁
(
D
)只有出现并发操作时,才有可能出现死锁
6
、写一个修改到数据库中,与写一个表示这个修改的记录到日志文件中 的操作,应该( )。
【这个知识点老熟人了】
(
A
)前者先做
(
B
)由程序员安排
(
C
)后者先做
(
D
)由系统决定哪一个先做
7
、查询优化策略中,首先应该做的是()
(
A
)对数据进行预处理
(
B
)尽早执行选择运算
(
C
)尽早执行笛卡尔乘积运算
(
D
)投影运算
8
、在第一个事务以
S
封锁方式读数据
A
时,第二个事务对数据
A
的读取 方式会遭到失败的是( )。
(
A
)实现
X
封锁的读
(
B
)实现
S
封锁的读
(
C
)不加锁的读
(
D
)实现意向共享锁的读
9
、视图建立后,在数据字典中存放的是( )。
【这道题挺好的,要注意,有几年没考了】
(
A
)查询语句
(
B
)组成视图的表的内容
(
C
)视图的定义
(
D
)视图对应的表的定义
10
、设有关系
R
(
A, B, C, D
),依赖集
F={A
→
B, B
→
C}
,则属性集
BD
关于 F
的闭包
(BD)
+ F
为( )。
(
A
)
BD
(
B
)
BCD
(
C
)
BC
(
D
)
CD
【答案】
ABBBD CBACB
二、一个图书借阅管理数据库要求提供下述服务:(共 15 分)
(
1
)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。
(
2
)可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、 借书日期和还书日期。 这里约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。
(
3
)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。这里约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。
根据以上情况和假设,试作如下设计:
(
1
)构造满足需求的
E
-
R
图。(
7
分)
(
2
)转换为恰当的关系模式,并标出主码和外码。(
8
分)
【答案】
2023年,也就是今年的题就跟这道差不多,改了一两个属性而已。所以有时刷刷题还是有点用的(虽然这个题目也很简单)
三、设有如下关系模式(共 10 分)
书店(书店编号,书店名,地址)
图书(书号,书名,定价)
图书馆(馆号,馆名,城市,电话)
图书发行(馆号,书号,书店号,数量)
(
1
)用
SQL
语句查询已发行图书中最贵的图书的书名和定价。(
5
分)
(
2
)写出以下
SQL
语句的含义(查的是什么?)(
5
分)
SELECT 馆名
FROM 图书馆
WHERE 馆号 IN
(SELECT 馆号
FROM 图书发行
WHERE 书号 IN
(SELECT 书号
FROM 图书
WHERE 书名=’数据库系统概念’));
【答案】
(1)我用的嵌套查询,方法应该不止一种
(2)查询藏有已发行图书《数据库系统概念》的图书馆的馆名
四、(共 15 分)
(
1
)设有关系模式
R
(
X, Y, Z
),依赖集
F={XY
→
Z, XZ
→
Y, Y
→
Z}
,判断
R
最高满足第几范式并说明理由。(
8
分)
(
2
)设关系模式
R
(
A, B, C
),其关系
r
如下表所示。判断
A
→
B, BC
→
A,
B
→
A
各自在
r
上是否成立,并说明理由。(
7
分)
【答案】
(1)3NF;主码XY,XZ,不存在非主属性,故至少有3NF。但是Y→Z,决定因素不含码,故不能到BCNF。
这道题在前一年的2016考题中考过了,思路一样的,所以说这个模式那几年很流行。
(2)A→B 成立;BC→A 不成立;B→A 不成立
五、举例说明连接操作的排序-合并实现方法(10 分)
【答案】
《数据库系统概论》第6版 书P305
六、并发
下图中的事务是否为冲突可串行化?说明理由。如果是,请给出一 个等价的串行调度。(10 分)
【答案】
显然这是无法交换的,不论T1还是T2谁在前。
如果试图交换T1在前,对于B的读和写是互斥的,不可能交换。
如果试图交换T2在前,则会遇到对于A的读写冲突。
七、恢复
系统出现故障时,恢复子系统将根据事务的不同状态采取不同的恢复策略。说明下图中 T
1
~T
5
五个事务对应的恢复策略(无操作,REDO 或
UNDO
),并说明理由(
10
分)
这种题是前几年的老熟人了,不过从今年(2023)开始对恢复的考察开始改了不用这种无脑的方法了。
【答案】
八、
在学习了关系数据库以后,你觉得它主要的好处是什么?它又有哪些缺陷导致它无法胜任某些应用?(10
分,非标准答案,根据理解自由发挥)
【最近不考扩展题了,没做】