数据库期末复习题

内容发布更新时间 : 2024/7/2 14:07:30星期一 下面是文章的全部内容请认真阅读。

单元测验2

单选1.视图的消解属于查询处理中的( )。

A.查询优化阶段 B.查询执行阶段 C.查询分析阶段 D.查询检查阶段 2.简单的全表扫描方法的特点是( )。

A.逐一检查每个元组 B.检查效率较高 C.需要建立索引 D.需要排序 3.如果两个表都在连接属性上建立了排序,连接操作的启发式规则是( )。 A.索引连接算法 B.排序-合并算法 C.Hash Join算法 D.嵌套循环算法

4.查询选修了2号课程的学生姓名,可以用下面几个关系代数表达式表示,效率最高的为( )。 A.∏Sname (σSC.Cno = ‘2’(S∞SC))

B.∏Sname (∏Sname,SnoS∞σSC.Cno = ‘2’SC) C.∏Sname (S∞σSC.Cno = ‘2’ SC))

D.∏Sname (σS.Sno=SC.Sno ∧ SC.Cno = ‘2’(S×SC)) 5.物理优化中,连接操作的启发式规则执行顺序为( )。

(1)如果一个表在连接属性上有索引,则可以选用索引连接算法 (2)如果2个表都已经按照连接属性排序,则选择排序-合并算法

(3)如果I和II都不是用,其中一个表较小,则可以选用Hash Join算法 (4)使用嵌套循环算法,并选择其中较小的表作为外表 A.(1)(2)(3)(4) B.(2)(1)(3)(4) C.(2)(4)(1)(3) D.(1)(4)(2)(3) 多选

6.连接操作是查询处理中最常见也是最耗时的操作之一。数据库管理系统中实现连接操作的算法包括( )。

A.排序-合并算法 B.嵌套循环算法 C.索引连接算法 D.Hash Join算法

7.物理优化的目标是选择高效合理的操作算法或存取路径。以下哪些方法可用于物理优化( )。 A.基于规则的启发式优化 B.结合A和B的优化方法 C.基于查询树的启发式优化 D.基于代价估算的优化 判断

8.建立索引需要额外的存储代价,但使用索引扫描一定比简单的全表扫面效率要高。( ) 9.代数优化的目标是选择高效合理的操作算法或存取路径。( )

10.对于基于启发式规则中的选择操作,一旦处理的关系较小,即使选择列上建有索引,也使用全表顺序扫描。( )

D、A、B、B、B、ABCD、ABD、×、×、√

单元测验3 单选

1.一个事务的执行,要么全部完成,要么全部不做,一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是( )。

A.一致性 B.隔离性 C.持久性 D.原子性

2.表示两个或多个事务可以同时运行而不互相影响的是( )。 A.隔离性 B.持久性 C.原子性 D.一致性 3.SQL语言中的COMMIT语句的主要作用是( )。 A.提交事务 B.存储数据 C.返回系统 D.结束程序 4.在DBMS中实现事务持久性的子系统是( )。

A.恢复管理子系统 B.并发控制子系统 C.完整性管理子系统 D.安全管理子系统 5.事务日志用于保存( )。

A.对数据的查询操作 B.程序运行过程 C.对数据的更新操作 D.程序的执行结果 6.数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括( )。 A.数据字典、应用程序、日志文件 B.日志文件、数据库后备副本 C.数据字典、应用程序、数据库后备副本 D.数据字典、应用程序、审计档案 多选

7.可能破坏事务ACID特性因素有( )。

A.多个查询事务并行运行时,不同事务的操作交叉执行 B.事务在运行过程中被强行停止

C.多个更新事务并行运行时,不同事务的操作交叉执行 D.当处理多个更新事务时,不同事务的操作串行执行 8.在SQL语言中,定义事务控制的语句主要有( ) 。

A.COMMIT B.ROLLBACK C.END TRANSACTION D.BEGIN TRANSACTION

判断

9.登记日志文件时,先写数据,在写日志。( ) 10.使用静态转储可以不用建立日志文件。( ) D、A、A、A、C、B、BC、ABD、×、√ 陈述题

11. 请给出利用检查点的恢复的步骤

1)从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录)

2)由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST 3)从检查点开始正向扫描日志文件,直到日志文件结束 4)对UNDO-LIST中的每个事务执行UNDO操作

对REDO-LIST中的每个事务执行REDO操作 12. 试述查询优化的一般准则 (1)选择运算应尽可能先做;(2)把投影运算和选择运算同时进行;(3)把投影同其前或其后的双目运算结合起来执行;(2)把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算;(5)找出公共子表达式;(6)选取合适的连接算法。

单元测验4 单选

1.解决并发操作带来的数据不一致问题普遍采用( )技术。 A.封锁 B.协商 C.存取控制 D.恢复 2.下列不属于并发操作带来的问题是( )。 A.死锁 B.脏读 C.丢失修改 D.不可重复读 3.设有两个事务T1、T2,其并发操作如下: T1 T2

① | 读A=20 | | ② | | 读A=20 | ③ | A = A – 10写回 | | ④ | | A = A – 15写回 | 以下对上述事务执行操作结果描述正确的是( )。

A.该操作存在丢失修改 B.该操作不能重复读 C.该操作不存在问题 D.该操作“读脏数据” 4.设有两个事务T1、T2,其并发操作如下: T1 T2 ① |读A=20,B=10 | | ② | | 读A=20 | ③ | | A = A *2写回 | ④ | 读A=20,B=10 | |

以下对上述事务执行操作结果描述正确的是( ) 。

A.该操作“读脏数据” B.该操作不存在问题 C.该操作存在丢失修改 D.该操作不能重复读 5.设有两个事务T1、T2,其并发操作如下: T1 T2 ①| 读A=100 | | | A = A *2写回 | | ②| | 读A=200 | ③| ROLLBACK | | | 恢复A=100 | |

以下对上述事务执行操作结果描述正确的是( )。

A.该操作存在丢失修改 B.该操作不能重复读 C.该操作“读脏数据” D.该操作不存在问题 6.若事务T对数据对象A加上S锁,则( )。

A.事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁 B.事务T可以读A和修改A,其它事务能对A加S锁和X锁 C.事务T可以读A但不能修改A,其它事务能对A加S锁和X锁

D.事务T可以读A和修改A,其它事务只能再对A加S锁,而不能加X锁

7.在并发控制技术中,最常用的是封锁机制,基本的封锁类型有排它锁X和共享锁S,下列关于两种锁的相容性描述不正确的是( )。

A.A. X/X :TRUE B.D. X/S:FALSE C.C. S/X:FALSE D.B. S/S:TRUE 8.以下( )封锁违反两段锁协议。

A.Slock A, Slock B, Xlock C, Unlock B, Unlock C, Unlock A B.Slock A, Slock B, Xlock C, Unlock A, Unlock B, Unlock C C.Slock A, Slock B, Xlock C, Unlock C, Unlock B, Unlock A D.Slock A, Unlock A, Slock B, Xlock C, Unlock B, Unlock C

多选

9.死锁的诊断技术包括( )。

A.超时法 B.一次封锁法 C.顺序封锁法 D.事务等待图法

10.两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁,其中“两段”的含义指的是( )。 A.在第二阶段,事务可以释放任何数据项上的任何类型的锁,但不能再申请任何锁 B.在释放了一个封锁之后,事务不在申请和获得任何其他封锁

C.在对任何数据项进行读、写操作之前,首先要申请并获得对该数据项的封锁

D.在第一阶段,事务可以申请获得任何数据项上的任何类型的锁,但不能释放任何锁 判断

11.调度r1(A); r2(A); r3(B); w1(A); r2(C); r2(B); w2(B); w1(C);是冲突可串行化的。( )

12.封锁对象的大小称为封锁的粒度。在关系数据库中,封锁对象可以是一些逻辑单元,也可以是一些物理单元。( )

A、A、A、D、C、A、A、D、AD、AD、√、√ 陈述题

13. 什么是日志文件?为什么要设立日志文件?为什么要先写日志后写数据库? 参考答案:

日志文件是用来记录事务对数据库的更新操作的文件。 设立日志文件的目的是:进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。 把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。 如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了,如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。

14. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 参考答案:

并发操作带来的数据不一致性包括:丢失修改、不可重复读和读“脏”数据。 (1)丢失修改(lost update):两个事务Tl和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了) Tl 提交的结果,Tl的修改被丢失。 (2)不可重复读(Non - Repeatable Read):是指事务Tl 读取数据后,事务T2执行更新操作,使 Tl 无法再现前一次读取结果。

(3)读“脏”数据(Dirty Read):是指事务 Tl 修改某一数据,并将其写回磁盘,事务几读取同一数据后, Tl 由于某种原因被撤销,这时 Tl 已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,则几读到的数据就为“脏”数据,即不正确的数据。

避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi