用看的、听的学真题

study by eyes and ears.

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

2013年05月数据库系统工程师考试下午真题【应用技术】(第5题) 收藏

【5】  阅读以下说明,根据要求回答下列问题。
【说明】
  某连锁酒店提供网上预订房间业务,流程如下:
  (1)客户查询指定日期内所有类别的空余房间数,系统显示空房表(日期,房间类别,数量)中的信息。
  (2)客户输入预订的起始日期、结束日期、房间类别和数量,并提交。
  (3)系统将用户提交的信息写入预订表(身份证号,起始日期,结束日期,房间类别,数量),并修改空房表的相关数据。
  针对上述业务流程,回答下列问题。

问题1 (3.0分)

  如果两个用户同时查询相同日期和房间类别的空房数量,得到的空房数量为1,并且这两个用户又同时要求预订,可能会产生什么结果,请用100字以内的文字简要叙述。
暂无

问题2 (8.0分)

  引入如下伪指令:将预订过程作为一个事务,将查询和修改空房表的操作分别记为R(A)和W(A,x),插入预订表的操作记为W(B,a),其中x代表空余房间数,a代表预订房间数,则事务的伪指令序列为:x=R(A),W(A,x-a),W(B,a)。
  在并发操作的情况下,若客户1、客户2同时预订相同类别的房间时,可能出现的执行序列为:x1=R(A),x2=R(A)。,W(A,x1-a1),W(B1,a1),W(A,x2-a2),W(B2,a2)。
  (1)此时会出现什么问题,请用100字以内的文字简要叙述。
  (2)为了解决上述问题,引入共享锁指令SLock(X)和独占锁指令XLock(X)对数据X进行加锁,解锁指令Unlock(X)对数据X进行解锁,请补充上述执行序列,使其满足2PL协议,不产生死锁且持有锁的时间最短。
暂无

问题3 (4.0分)

  下面是实现预订业务的程序,请补全空缺处的代码。其中主变量":Cid"、":Bdate"、":Edate"、":Rtype"、":Num"分别代表身份证号、起始日期、结束日期、房间类别和订房数量。
  SET TRANSACTION  ISOLATION LEVEL REPEATABLE READ;
  UPDATE 空房表
  SET 数量=数量-:Num
  WHERE (a)
  if error  then  {ROLLBACK; return -1;}
  INSERT INTO 预订表 VALUES (:cid,:Bdate,:Edate,:Rtype,:Num);
  if error then  {ROLLBACK; return -2;}
  (b)
暂无
广告位