-
日志文件是用于记录__________。
A、数据操作
B、程序运行过程
C、程序执行结果
D、对数据的所有更新操作 -
下列说法正确的是__________。
A、事务故障可以通过运行日志进行恢复
B、介质故障只需将备份恢复到系统中即可实现正确性
C、检查点是指检查发生故障并进行恢复的时刻点
D、检查点是DBMS强制使内存DB Buffer中的内容与介质选项A的说法是不正确的,事务故障仅影响事务本身,可通过撤销事务和重做事务来进行恢复。选项B的说法是不正确的,介质故障在将备份恢复到系统中后还需要利用运行日志才能恢复到故障点时刻的正确状态。选项C的说法是不正确的,检查点是DBMS强制使数据库缓冲区内容与介质内容保持一致的时刻点。选项D的说法是正确的。
-
介质故障的恢复需要_________。
A、当前执行完的事务需要按照运行日志记录的次序重做
B、当前未执行完的事务撤销
C、用最新的备份文件替换发生故障的数据库文件
D、以上工作都需要,但需要注意操作的次序。 -
数据库中的封锁机制是__________的主要方法。
A、完整性控制
B、安全性控制
C、并发控制
D、故障恢复控制 -
若事务T对数据R已加X锁,则其它事务对R__________。
A、可以加S锁不能加X锁
B、可以加S锁也可以加X锁
C、不能加S锁可以加X锁
D、不能加任何锁 -
若事务T对数据R已加S锁,则其它事务对R__________。
A、可以加S锁不能加X锁
B、可以加S锁也可以加X锁
C、不能加S锁可以加X锁
D、不能加任何锁 -
若事务T对数据M已加S锁,在不改变S锁的情况下,则其它事务对数据M__________。
A、可以读,可以写
B、可以读,但不可以写
C、不可以读,但可以写
D、不可以读,不可以写 -
下列说法正确的是__________。
A、正确的并行调度一定是具有可串行性的调度
B、用于并发控制的两阶段封锁法不会产生死锁现象
C、两阶段封锁法是可串行化的并行调度算法
D、一个调度如果是非冲突可串行化的,那么也一定不是可串行化的选项 A 的说法是不正确的,可串行化的调度一定是正确的并行调度,反之则不然。选项 B
的说法是不正确的,两阶段封锁法一定可以产生可串行化的调度,但可能会产生死锁现象。选项 C
的说法是正确的,两阶段封锁法一定可以产生可串行化的调度。选项 D
的说法是不正确的,可串行化的调度可以是“非冲突可串行化”的,冲突可串行化比可串行化要严格。 -
T1,T2是两个事务。图(a)(b)©给出这两个事务的三种调度,这三种调度会出现什么问题呢,正确的选项是_____________。
A、图(a)的调度会出现“丢失修改”,图(b)的调度会出现“重复读错误”,图©的调度会出现“脏读”。
B、图(a)的调度会出现“脏读”,图(b)的调度会出现“重复读错误”,图©的调度会出现“丢失修改”。
C、图(a)的调度会出现“重复读错误”,图(b)的调度会出现“脏读”,图©的调度会出现“丢失修改”。
D、图(a)的调度会出现“丢失修改”,图(b)的调度会出现“脏读”,图©的调度会出现“重复读错误”。
-
T1,T2是两个事务,图(a)(b)给出这两个事务的两种调度S1,S2,关于S1,S2,说法正确的选项是_____________。
A、S1是可串行化调度,S2是可串行化调度
B、S1是可串行化调度,S2是不可串行化调度
C、S1是不可串行化调度,S2是可串行化调度
D、S1是不可串行化调度,S2是不可串行化调度
-
试述事务的概念及事务的4个特性。恢复技术能保证事务的哪些特性?
-
事务是用户定义的一个数据库操作序列,这些操作要么全做、要么全不做,是一个不可分割的工作单位。
-
事务具有4个特性:原子性,一致性,隔离性和持续性。这4个特性也简称为ACID特性。
- 原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
- 一致性:事务执行的结果必须使数据库从一个一致性状态变到另一个一致性状态。
- 隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
- 持续性:持续性也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。
-
故障恢复可以保证事务的原子性与持续性。
-
-
试述事务的概念及事务的4个特性。恢复技术能保证事务的哪些特性?
把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。
-
什么是检查点记录?检查点记录包括哪些内容?
14. 今有三个事务的一个调度r3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A),该调度是冲突可行串行化的调度吗?为什么?
是冲突可串行化的调度。Sc1=r3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A),交换r1(A)和W3(B),得到r3(B)w3(B)r1(A)r2(B)r2(A)w2(B)r1(B)W1(A);再交换r1(A)和r2(B)r2(A)w2(B),得到Sc2=r3(B)W3(B)r2(B)r2(A)w2(B)r1(A)r1(B)w1(A)。由于Sc2是串行的,而且两次交换都是基于不冲突操作的,所以Sc1=r3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A)是冲突可串行化的调度。
-
考虑T1和T2两个事务。
T1:R(A);R(B);B=A+B;W(B); T2:R(B);R(A);A=A+B;W(A)
① 改写T1和T2,增加加锁操作和解锁操作,遵循两阶段封锁协议。
② 说明T1和T2的执行是否会引起死锁,给出T1和T2的一个调度说明之。