问答题 [说明]
假设现某家庭有存款余额是500元,1.妈妈存进了200元,2.爸爸又存进了300元,其执行的时间如下:
问答题 [问题1]
能否直接按时间顺序执行事务1和2,为什么?
【正确答案】如果直接按时间顺序执行1和2两个事务,则最后的X为800,而不是正确1000。
为此,要采用封锁的办法。
【答案解析】
问答题 [问题2]
为了实现这两件事情的并发控制,对事务1该如何修改?请简要分析。
【正确答案】将1事务修改为:
WHILE(X已建立排它锁)
{
等待 }

对X建立排它锁
读X
更新X=X+200
释放排它锁
【答案解析】
问答题 [问题3]
为了实现这两件事情的并发控制,对事务2该如何修改?请简要分析。
【正确答案】将2事务修改为:
WHILE(X已建立排它锁)
{
等待
}
对X建立排它锁
读X
更新X=X+300
释放排它锁
【答案解析】