软题库 移动APP 扫码下载APP 随时随地移动学习 培训课程
当前位置:信管网 >> 在线考试中心 >> 信息系统项目管理师题库 >> 试题查看
试卷名称 2007年下半年数据库系统工程师考试下午真题试题(案例分析)
考试中心《2007年下半年数据库系统工程师考试下午真题试题(案例分析)》在线考试
试卷年份2007年下半年
试题题型【分析简答题】
试题内容

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某银行的存款业务分为如下三个过程:
(1)读取当前帐户余额,记为R(b);
(2)当前余额b加上新存入的金额x作为新的余额b,即b = b + x;
(3)将新余额b写入当前帐户,记为W(b)。
 存款业务分布于该银行各营业厅,并允许多个客户同时向同一帐户存款,针对这一需求,完成下述问题。
【问题1】(5分)
假设同时有两个客户向同一帐号发出存款请求,该程序会出现什么问题?(100字以内)
【问题2】(5分)
存款业务的伪代码程序为 R(b), b = b + x, W(b)。现引入共享锁指令SLock(b)和独占锁指令XLock(b)对数据b进行加锁,解锁指令Unlock(b)对数据b进行解锁。
请补充上述存款业务的伪代码程序,使其满足2PL协议。
【问题3】(5分)
若用SQL语句编写的存款业务事务程序如下:
……
START TRANSACTION;
SET TRANSACTION ISOLATION LEVEL READ  UNCOMMITTED
UPDATE  Accounts
SET CurrentBalance = CurrentBalance + Amount
WHERE AccountID = AccountNo;
COMMIT;
……
其中:Accounts为帐户表,CurrentBalance为当前余额,Amount为新存入的金额,AccountNo为外部输入的帐户编码。
该事务程序能否正确实现并发的存款业务?如果不能,请说明原因,应做怎样的修改?(100字以内)


相关试题

推荐文章
合作网站内容