|
假设有两项业务对应的事务Tl、T2与存款关系有关: •转账业务:Tl(A,B,50),从账户A向账户B转50元; •计息业务:T2,对当前所有账户的余额计算利息,余额为X*1.01。 针对上述业务流程,回答下列问题:
|
|
问题:5.1
假设当前账户A余额为100元,账户B余额为200元。有两个事务分别为Tl(A,B,50),T2,一种可能的串行执行为: Tl(A,B,50)—>T2结果:A=50.5B=252.5A+B=303请给出其他的串行执行次序和结果。
|
|
问题:5.2
若上述两个事务的一个并发调度结果如下: (1) 上述凋度是否正确,为什么?(3分) (2) 引入共享锁指令Slock()、独占锁指令Xlock()和解锁指令Unlock(),使上述调度满足两段锁协议,并要求先响应T1的请求。请给出一个可能的并发调度结果。(5分)
|
|
问题:5.3
若将计息业务T2改为对单个账户的余额计算利息,即T2(A)余额为A*1.01,请给出串行调度T1(A,B,50)->T2(A)->T2(B)和串行调度T2(A)->T1(A,B,50)->T2(B)的执行结果。
若将计息业务设计为对单个账户的余额计算利息,这种方案是否正确,为什么?
|
|
|
|