下午卷
试题五(共15 分)
【说明】
假设有两项业务对应的事务T1、T2 与存款关系有关:
(1)转帐业务:T1(A,B,50),从帐户A 向帐户B 转50 元;
(2)计息业务:T2,对当前所有帐户的余额计算利息,余额为X*1.01。
针对上述业务流程,回答下列问题:
【问题1】(3 分)
(3)假设当前帐户A 余额为100 元,帐户B 余额为200 元。有两个事务分别为T1 (A,B,50),
(4)T2,一种可能的串行执行为:
(5)T1(A, B, 50) -> T2 结果:A= 50.5;B=252.5;A+B=303 请给出其它的串行执行次序和结果。
【问题2】(8 分)
(6)若上述两个事务的一个并发调度结果如下:
(1)上述调度是否正确,为什么?(3 分)
(2)引入共享锁指令Slock()、独占锁指令Xlock()和解锁指令Unlock(),使上述调度满足两段锁协议,并要求先响应T1 的请求。请给出一个可能的并发调度结果。(5 分)
【问题3】(4 分)
若将计息业务T2 改为对单个帐户的余额计算利息,即T2 (A)余额为A*1.01,请给出串行调 度T1 (A,B,50) -> T2 (A) ->T2 (B)和串行调度T2 (A) ->T1 (A,B,50) ->T2 (B)的执行 结果。
若将计息业务设计为对单个帐户的余额计算利息,这种方案是否正确,为什么?
相关链接:
数据库系统工程师考试知识点分析与真题详解(第4版)
数据库系统工程师考试历年试题分析与解答(第4版)
数据库系统工程师考试下午知识点精讲与考前必练
数据库系统工程师考试考前串讲