湖南大学-数据库系统-2021期末考试解析(标准答案+评分细则)

2024-01-09 17:12:48

【写在前面】

这是2021年的卷子,复习备考的时候做了并与同学校对了答案。答案仅供参考。从这张开始难度明显比之前有上升,已经是近几年的卷子了。题目分数分配上跟我这次考的一样,有题目需要思考,整体比较基础。

本张卷子有比较的强的参考性。

本张卷子恰好有标准答案和评分细则。

一、单选题(30 分)

1、在数据库系统中,模式/内模式映像用于解决数据的( )。
A、结构独立性
B、物理独立性
C、分布独立性
D、逻辑独立性
2、SQL 语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,INSERT、UPDATE、DELETE 语句是实现哪种功能( )。
A、数据查询 B、数据操纵 C、数据定义 D、数据控制
3、关系模型基本的数据结构是( )。
A、树
B、图
C、层次结构
D、关系
4、有两个关系 R(A,B,C)和 S(B, C,D),将 R 和 S 进行自然连接,得到的结果包含几个列
( )。
A、6 B、4 C、5 D、2
5、设有一个关系:DEPT(DNO,DNAME),如果要找出倒数第三个字母为 W,并且至少包含 4 个字母的 DNAME,则查询条件子句应写成 WHERE DNAME LIKE ( )。
A、'_ _W_%' B、 '_%W_ _' C、 '_W_ _' D、 '_W_%'
6、以下关于 E-R 模型向关系模型转换不正确的叙述是( )。
A、一个 1:n 联系可以转换为一个独立的关系模式,也可以与联系的 n 端实体所对应的关系模式合并
B、一个 1:1 联系可以转换为一个独立的关系模式,也可以与联系的任意一端实体所对应的关系模式合并
C、三个或三个以上实体间的一个多元联系转换为一个关系模式
D、一个 m:n 联系可以转换为一个独立的关系模式,也可以与联系的任意一端实体 所对应的关系模式合并
7、下面哪一个 SQL 语句用于实现数据存取的安全机制( )。
A、COMMIT B、ROLLBACK C、GRANT D、CREATE TABLE
【这题不考,没做】 8、在嵌入式 SQL 语言中,宿主语言向 SQL 语句输入数据主要用程序变量来实现,为了区别字段名,要求程序变量名前必须加符号( )做标志。
A、, B、: C、; D、’
9、有一个事务 T 要更新数据库中某表列的值,DBMS 在执行 T 时发现更新后的值超出了该列的值的定义范围,因此异常终止了 T。为了保证数据正确性及一致性,DBMS 会执行以下哪个恢复操作?( )
A、介质恢复 B、进程恢复 C、Undo D、Redo
10、假设存在一张职工表,包含“性别”属性,要求这个属性的取值只能是“男”或“女”,这属于( )。
A、实体完整性
B、参照完整性
C、用户定义的完整性
D、关系不变性
11、查询优化策略中,首先应该做的是( )。
A、对数据进行预处理
B、尽早执行选择运算
C、尽早执行笛卡尔乘积运算
D、投影运算
12、下列不是数据库恢复采用的方法是( )。
A、建立检查点 B、建立副本 C、建立日志文件 D、建立索引
13、DBMS 普遍采用( )方法来保证调度的正确性。
A、索引 B、授权 C、封锁 D、日志
14、根据系统所提供的存取路径,选择合理的存取策略,这种优化方式称为( )。
A、物理优化
B、代数优化
C、规则优化
D、代价估算优化
15、 设有事务 T1 和 T2,其并发操作顺序如下图所示,以下描述正确的是( )
A、该操作丢失修改
B、该操作读“脏数据”
C、该操作不能重复读
D、该操作不存在问题
【答案】
BBDBB DCXCC BDCAB

二、 简答题(20 分)

1. 试述数据库完整性和安全性的联系和区别。(5 分)
【我的答案】
数据库安全性是指保护数据库,以防不合法使用所造成的数巨泄露、篡改或破坏。
数据库的完整性防范对象:不合语义、不正确的数据,防止它们进入数据库。
【标准答案】

(1)数据库的完整性和安全性是两个不同的概念。数据库的完整性是指数据的正确性和相容性,是为了防止数据库中存在不符合语义的、不正确的数据;数据库的安全性是指保护数据库防止恶意破坏和非法存取。

(2)其联系是两者都是对数据库中的数据的控制,各自所实现的功能不同。

【评分细则】

(1)对于两者的区别,答出数据库的完整性是指数据的正确性和相容性给2分;答出数据库的安全性是指为了保护数据库防止恶意破坏和非法存取给2分。

(2)对于两者的联系,答出两者都是对数据库中的数据的控制给1分。

2. 试述事务的概念及事务的 4 个特性。(5 分) 【2015简答题原题】
【我的答案】

事务(transaction):
用户定义的一个数据库操作序列,不做或全做,这个工作单位不可分割。
★事务的ACID特性

(1)原子性(atomicity):事务中的操作要么不做要么全做。

(2)一致性(consistency):事务执行的结果必须使数据库从一个一致性状态转移到另一个一致性状态。即完整性。

(3)隔离性(isolation):一个事务的执行不能被其它事务干扰。

(4)持续性(durability):一个事务一旦提交,它对数据库中数据的改变是永久性的,接下来其它操作或故障不会对它的执行结果造成影响。

【标准答案】

事务:用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。

事务具有4个特性:原子性、一致性、隔离性和持续性。

原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。

一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

隔离性:一个事务的执行不能被其他事务干扰,即一个事物的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

持续性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。

【评分细则】

事务的概念记1分;4个特性每个记1分。

3 查询优化按照优化层次可以分为哪两种?分别解释两种查询优化的具体含义。(5 分) 【2016简答题原题】

【我的答案】

代数优化:基于关系代数等价变换规则的优化方法

物理优化:对于底层存取路径的优化

【标准答案】

查询优化按照优化层次可分为代数优化和物理优化。

代数优化是指通过对关系代数表达式的等价变换来提高查询效率。

物理优化是指通过选择高效合理的操作算法或存取路径来求得优化的查询计划,达到查询优化的目标。

【评分细则】

答对分类记1分;解释两种查询优化的具体含义每个记2分。

4.什么是两段锁协议?遵守两段锁协议的事务可能会发生死锁吗?试举例说明。(5 分)
【我的答案】
为了保证调度可串行化,使用两段封锁(two-phase lock,2PL)来实现可串行化。
可能发生死锁。例子:书上有
【标准答案】

两段锁协议是指所有事务必须分成两个阶段对数据项加锁和解锁,即:(1)在对任何数据进行读、写操作之前,事务首先要申请并获得对该数据的封锁;(2)在释放一个封锁之后,事务不再申请和获得任何其他封锁。

遵守两段锁协议的事务可能发生死锁。举例如下

【评分细则】
(1)答对两段锁协议记2分;(2)答对遵守两段锁协议的事务可能会发生死锁记1分,举例说明正确记2分。

三、 应用题(50 分)

1、今有如下关系数据库,包括 S、P、J、SPJ 四个关系模式:
S(SNO,SNAME,CITY)
P(PNO,PNAME,COLOR,WEIGHT)
J (JNO,JNAME,CITY)
SPJ(SNO,PNO,JNO,QTY)
其中 S 为供应商表,由编号(SNO),名称(SNAME),所在城市(CITY)组成;P 为零件 表,由编号(PNO),名称(PNAME),颜色(COLOR),重量(WEIGHT)组成;J 为工程项目表,由编号(JNO),名称(JNAME),城市(CITY)组成,SPJ 为工程订购零件的订单表, 由供应商编号(SNO),零件编号(PNO),工程项目编号(JNO),供应量(QTY)组成,其 语义为:某供应单位供应某种零件给某个工程。
(1) 试用关系代数完成以下操作:求供应工程 J1 零件 P1 的供应商编号 SNO。(3 分)。
(2) 试用 SQL 语句完成以下操作:求使用长沙供应商生产的零件的工程项目编号(JNO)。 (3 分)。
(3) 试用 SQL 语句完成以下操作:将对零件表的查询、插入权限授予用户张明,并允许
张明进一步把这些权限授予其他用户。(3 分)
【我的答案】
【标准答案】
(1)
(2)
 SELECT JNO
 FROM J, SPJ, S
WHERE J.JNO=SPJ.JNO
AND SPJ.SNO=S.SNO
AND S.CITY=‘上海’

(3)

GRANT INSERT, SELECT ON P TO 张明 WITH GRANT OPTION;

【评分细则】

每小题3分,(1)第一题写正确两个选择条件给1分(每个条件0.5分),写正确选择操作的SPJ表给1分,写正确投影操作的属性列Sno记1分。(2)写对SELECT JNO ?FROM J, SPJ, S给1分,写对WHERE J.JNO=SPJ.JNO AND SPJ.SNO=S.SNO给1分,写对AND S.CITY=‘上海’给1分。

2、假设有如下学生关系 Student 的实例数据,其中:Sno 为学号,Sname 为学生姓名, Sage
为年龄,Ssex 为性别,Sdepartmentno 为系号,Sdepartment 为系名。试判断 Student 属于
第几范式?是否可以将其分解为高一级范式,如可以,给出高一级范式的分解过程及结
果。(10 分)
【我的答案】
【标准答案】

Student属于2NF

因为?Student的候选码为“Sno”,而:

Sno→Sdepartmentno,Sdepartmentno→Sdepartment,Sdepartmentno 无法推出

Sno,因此有Sno→Sdepartment,即存在非主属性系名Sdepartment对候选码Sno的传递依赖。因此Student属于2NF,可将其进一步分解为3NF,具体分解结果如下:

S1(Sno,Sname,Sage,Ssex,Sdepartmentno)∈3NF

S2(Sdepartmentno,Sdepartment)∈3NF

【评分细则】
(1)正确判断属于2NF给1分,上述分析存在非主属性系名Sdepartment对候选码Sno的传递依赖过程每一步记1分,全部正确给4分。答出可进一步分解为3NF记1分,给出正确分解后的S1和S2各记2分。
3、某医院有若干科室,每个科室有若干病房和若干医生。一个病房只属于一个科室,一名医
生只属于一个科室,每名医生可主管多个病人,每个病人对应一个主管医生和一个病房。科室
信息包括科室名称、地址和电话;病房信息包括病房号和所属科室;医生信息包括工作证号、
姓名、性别、职称、年龄、所属科室;病人信息包括病历号、姓名、性别、年龄、主治医生、
所属病房。
(1) 画出该系统的 E-R 图。(8 分)
(2) 把该 E-R 图转换为关系模式(写出关系名称和所有属性),并用下划线标出其中的主码。
(7 分)。
【我的答案】具体属性细节略,是要写出来的。最后关系模式略,这个应该只要把n端的放到1端里去作为属性即可。
【标准答案】
(1)E-R图

(2)关系模式如下:

科室(科室名,科室地址,科室电话)

病房(病房号,科室名)

医生(工作证号,姓名,性别,年龄,职称,科室名)

病人(病历号,姓名,性别,工作证号,病房号)

【评分细则】

(1)四个实体及四个联系各占1分,合计8分。

(2)关系模式4个,写出模式名及属性名每个1.5分,全部正确给6分,码标记正确每个给0.25分,合计1分。

4、已知关系模式 R<U, F>,其中 U={A, B, C, D, E}; F={AB→C, B→D, C→E, EC→B, AC→B},求(AC)F + 。 (8 分)
【我的答案】
【标准答案】
【评分细则】

以上步骤每步正确给2分。

5、系统出现故障时,恢复子系统将根据事务的不同状态采取不同的恢复策略。说明下图中 T 1
T 2 、T 3 和 T 4 四个事务对应的恢复策略(无操作,REDO 或 UNDO),并说明理由。(8 分)
【我的答案】
【标准答案】

恢复策略为:

T1为无操作: 在检查点之前已提交,所以不需要重做。

T2为REDO: 在检查点之前开始执行,在检查点之后故障点之前提交。由于T2在检查点之后才提交,它对数据库所做的修改在故障发生时可能还在缓冲区中,尚未写入数据库,所以要重做。

T3为REDO: 在检查点之后开始执行,在故障点之前提交。由于T3在检查点之后才提交,它对数据库所做的修改在故障发生时可能还在缓冲区中,尚未写入数据库,所以要重做。

T4为UNDO: 在检查点之后开始执行,在故障点时还未完成,所以予以撤销。

【评分细则】

以上T1-T4每个恢复策略正确给0.5分,分析理由正确给1.5分,合计8分。

文章来源:https://blog.csdn.net/qq_39480177/article/details/135482083
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。