数据库第十章习题作业

在这里插入图片描述

4.考虑下图所示的日志记录:

序号日志
1T1:开始
2T1:写A,A=10
3T2:开始
4T2:写B,B=9
5T1:写C,C=11
6T1:提交
7T2:写C,C=13
8T3:开始
9T3:写A,A=8
10T2:回滚
11T3:写B,B=7
12T4:开始
13T3:提交
14T4:写C,C=12

(1)如果系统故障发生在14之后,说明哪些事务需要重做,哪些事务需要回滚。

由于T1和T3已经提交,需要重做,T2已经回滚,T4开始但是没结束。

重做:T1、T3
回滚:T4

(2)如果系统故障发生在10之后,说明哪些事务需要重做,哪些事务需要回滚。

由于T1已提交,T2已回滚,T3已经开始但是没有结束,T4还没有开始
重做:T1
回滚:T3

(3)如果系统故障发生在9之后,说明哪些事务需要重做,哪些事务需要回滚。

由于T1已经提交,T2和T3还未结束,此时T4还没有开始
重做:T1
回滚:T2、T3

(4)如果系统故障发生在7之后,说明哪些事务需要重做,哪些事务需要回滚。

由于T1已经提交,T2未结束,T3、T4未开始
重做:T1
回滚:T2

注:系统重新启动后,恢复子系统,需要重做已经提交的事务,撤销没完成的事务

5.考虑题4所示的日志记录

假设开始时A,B,C的值都是0:

(1)如果系统故障发生在14之后,写出系统恢复后A、B、C的值;

重做:T1、T3
回滚:T4

A=8,B=7,C=11

(2)如果系统故障发生在12之后,写出系统恢复后A、B、C的值;

重做:T1
回滚:T3、T4

A=10,B=0,C=11

(3)如果系统故障发生在10之后,写出系统恢复后A、B、C的值;

重做:T1
回滚:T3

A=10,B=0,C=11

(4)如果系统故障发生在9之后,写出系统恢复后A、B、C的值;

重做:T1
回滚:T2、T3

A=10,B=0,C=11

(5)如果系统故障发生在7之后,写出系统恢复后A、B、C的值;

重做:T1
回滚:T2

A=10,B=0,C=11

(6)如果系统故障发生在5之后,写出系统恢复后A、B、C的值。

重做:无
回滚:T1、T2

A=0,B=0,C=0

注:恢复:在故障发生前,已提交的事务记入重做,未完成的事务记入撤销队列

总结:

1.回滚=撤销
2.系统重新启动,恢复子系统,关于事务:
重做:已经提交的事务,撤销:未完成的事务
3.恢复:故障发生前
重做:已提交事务,撤销:未完成事务

完。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值