1. 首页
  2. 数据库系统工程师
  3. 2007年下半年数据库系统工程师考试下午真题【应用技术】
  4. 真题详解

2007年下半年数据库系统工程师考试下午真题【应用技术】(第5题)

试题【5】(15分)

  阅读下列说明,回答问题1至问题3。
【说明】
  某银行的存款业务分为如下三个过程:
  1)读取当前账尸余额,记为R(b):
  2)当前余额b加上新存入的金额x作为新的余额b,即b=b+ x;
  3)将新余额b写入当前账户,记为W(b)。
  存款业务分布于该银行各营业厅,并允许多个客户同时向同一账户存款,针对这一需求,完成下述问题。

问题1(5.0分)

  假设同时有两个客户向同一账号发出存款请求,该程序会出现什么问题?  (100字以内)
暂无

问题2(5.0分)

  存款业务的伪代码程序为R(b),b=b +x,W(b)。现引入共享锁指令SLock (b)和独占锁指令XLock (b)对数据b进行加锁,解锁指令Unlock (b)对数据b进行解锁。
  请补充上述存款业务的伪代码程序,使其满足2PL协议。
暂无

问题3(5.0分)

  若用SQL语句编写的存款业务事务程序如下:
  …
  START TRANSACTION;
  SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
  UPDATE  Accounts
  SET CurrentBalance = CurrentBalance + Amount
  WHERE AccountID = AccountNo;
  COMMIT;
  …
  其中:Accounts 为账户表,CurrentBalance 为当前余额,Amount为新存入的金额,AccountNo为外部输入的账户编码。
  该事务程序能否正确实现并发的存款业务?如果不能,请说明原因,应做怎样的修改?  (100字以内)
暂无
广告位
试题标签
难度评价
  • 容易 0%
  • 中等 0%
  • 偏难 0%