问答题
阅读以下说明和关系表,回答问题1~3。
[说明]
假设现某家庭有存款余额是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
释放排它锁