上海大学数据库2原理研讨+作业的个人解答

发布时间 : 星期六 文章上海大学数据库2原理研讨+作业的个人解答更新完毕开始阅读

第6周(第八章:故障恢复)

二、研讨课:

1. 某数据库配置时把数据库文件、备份文件、日志文件放在同一个硬盘上,是否合适?并说明理由。放在同一台计算机的不同硬盘上呢?从故障恢复的角度应该如何配置合理?至少哪两类文件不应放在同一硬盘上?

不合适,当发生介质故障时候,如果放在同一个硬盘上,数据库文件就无法 补救回来。

也不是很合适,当整台电脑被病毒破坏时,数据库文件、备份文件、日志文件 也是容易被损坏的。

数据库备份放在共享文件夹里,共享指定给另外一台电脑。

数据库文件,备份文件。及时日志文件丢失损坏,之前备份的文件也有很多数据 但如果备份文件都不在了,日志文件也是没用的。

2. 假定系统采用检查点方法,T1、T2和T3是并发事务,在t19时发生系统故障,最近的检查点在t8时(见图);A、B、C和D都是数据库中的数据项,初值依次是800、300、70和80, 说明所需的恢复工作。 时刻 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18 t19

T1 read(B) B=B*2 write(B) read(A) A=A+10 write(A) COMMIT read(A) A=A-100 write(A) COMMIT T2 read(D) D=D-100 write(D) read(A) read(B) B=B+A write(B) …

答:(1)事物T2不必恢复,因为它的更新在检查点之前就写到了数据库.(A=700)

t19:发生故障 T3 t4:T2开始 t8:检查点 t9:T3开始 说 明 t1:T1开始 (2)事物T3必须撤销,因为T3还未做完,撤销事物T3对db的修改,就恢复D=80 (3)事物T1必须重做,因为T1做完,但是它的结束在下一个结束点之前,对DB修改仍然在内存缓冲区,还没写到磁盘。 重做 A=710. 参照书本175-176面各种情况的解决方法

3. 假定系统采用检查点方法,当系统崩溃时产生了以下并发事务的日志记录。 (1) 请给出系统在恢复后搜索日志时所形成的重做队列和撤销队列。 (2) 请给出恢复后各数据项的值。

T2T4重做,T3撤销 A=600 D=130 C=90 B=190 三、作业:

1. 课本Page195:习题8.4。 2. 课本Page195:习题8.5。

3. 为什么系统故障恢复时先UNDO再REDO操作?请举日志队列说明

第7周(第八章:并发控制)

二、研讨课:

1. 判断下列并发调度是不是可串行化调度,为什么?修改如下并发调度为可串行化调度

时间 t0 t1 t2 t3 t4 t5 t6 t7 事务T1 Read A Update A=A+1 Read B Update B=B+1 数据库中值 A=10, B=2 事务T2 Read B Read A Update B=A+B

2. 设T1,T2,T3是如下三个事务:

2

T1: A:=A+2; T2: A:=A*2; T3: A:=A; 设A的初始值为0.

1) 若三个事务允许并发执行,则有多少种可能的正确的结果,请分别列举出来 2) 请给出一个可串行化的调度,并给出执行结果 3) 请给出一个非串行化的调度,并给出执行结果

4) 若三个事务都遵守两段锁协议,请给出一个产生死锁的调度。 1) A33=6

123 16 132 8 213 4 231 2 312 4 321 2

结果为4种,为2、4、8、16 2)

3)

联系合同范文客服:xxxxx#qq.com(#替换为@)