这是2021年的卷子,复习备考的时候做了并与同学校对了答案。答案仅供参考。从这张开始难度明显比之前有上升,已经是近几年的卷子了。题目分数分配上跟我这次考的一样,有题目需要思考,整体比较基础。
本张卷子有比较的强的参考性。
本张卷子恰好有标准答案和评分细则。
(1)数据库的完整性和安全性是两个不同的概念。数据库的完整性是指数据的正确性和相容性,是为了防止数据库中存在不符合语义的、不正确的数据;数据库的安全性是指保护数据库防止恶意破坏和非法存取。
(2)其联系是两者都是对数据库中的数据的控制,各自所实现的功能不同。
【评分细则】
(1)对于两者的区别,答出数据库的完整性是指数据的正确性和相容性给2分;答出数据库的安全性是指为了保护数据库防止恶意破坏和非法存取给2分。
(2)对于两者的联系,答出两者都是对数据库中的数据的控制给1分。
事务(transaction):
用户定义的一个数据库操作序列,不做或全做,这个工作单位不可分割。
★事务的ACID特性
(1)原子性(atomicity):事务中的操作要么不做要么全做。
(2)一致性(consistency):事务执行的结果必须使数据库从一个一致性状态转移到另一个一致性状态。即完整性。
(3)隔离性(isolation):一个事务的执行不能被其它事务干扰。
(4)持续性(durability):一个事务一旦提交,它对数据库中数据的改变是永久性的,接下来其它操作或故障不会对它的执行结果造成影响。
【标准答案】
事务:用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
事务具有4个特性:原子性、一致性、隔离性和持续性。
原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性:一个事务的执行不能被其他事务干扰,即一个事物的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持续性:一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。
【评分细则】
事务的概念记1分;4个特性每个记1分。
【我的答案】
代数优化:基于关系代数等价变换规则的优化方法
物理优化:对于底层存取路径的优化
【标准答案】
查询优化按照优化层次可分为代数优化和物理优化。
代数优化是指通过对关系代数表达式的等价变换来提高查询效率。
物理优化是指通过选择高效合理的操作算法或存取路径来求得优化的查询计划,达到查询优化的目标。
【评分细则】
答对分类记1分;解释两种查询优化的具体含义每个记2分。
两段锁协议是指所有事务必须分成两个阶段对数据项加锁和解锁,即:(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分。
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
(2)关系模式如下:
科室(科室名,科室地址,科室电话)
病房(病房号,科室名)
医生(工作证号,姓名,性别,年龄,职称,科室名)
病人(病历号,姓名,性别,工作证号,病房号)
(1)四个实体及四个联系各占1分,合计8分。
(2)关系模式4个,写出模式名及属性名每个1.5分,全部正确给6分,码标记正确每个给0.25分,合计1分。
以上步骤每步正确给2分。
恢复策略为:
T1为无操作: 在检查点之前已提交,所以不需要重做。
T2为REDO: 在检查点之前开始执行,在检查点之后故障点之前提交。由于T2在检查点之后才提交,它对数据库所做的修改在故障发生时可能还在缓冲区中,尚未写入数据库,所以要重做。
T3为REDO: 在检查点之后开始执行,在故障点之前提交。由于T3在检查点之后才提交,它对数据库所做的修改在故障发生时可能还在缓冲区中,尚未写入数据库,所以要重做。
T4为UNDO: 在检查点之后开始执行,在故障点时还未完成,所以予以撤销。
以上T1-T4每个恢复策略正确给0.5分,分析理由正确给1.5分,合计8分。