用看的、听的学真题

study by eyes and ears.

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

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

【5】  阅读下列说明,,回答问题1至问题3。
【说明】
  某高速路不停车收费系统(ETC)的业务描述如下:
  (1)车辆驶入高速路入口站点时,将驶入信息(ETC卡号,入口编号,驶入时间)写入登记表;
  (2)车辆驶出高速路出口站点(收费口)时,将驶出信息(ETC卡号,出口编号,驶出时间)写入登记表;根据入口编号、出口编号及相关收费标准,清算应缴费用,并从绑定的信用卡中扣除费用。
  一张ETC卡号只能绑定一张信用卡号,针对企业用户,一张信用卡号可以绑定多个ETC卡号。使用表绑定(ETC卡号,信用卡号)来描述绑定关系,从信用卡(信用卡号,余额)表中扣除费用。
  针对上述业务描述,完成下列问题:

问题1 (4.0分)

  在不修改登记表的结构和保留该表历史信息的前提下,当车辆驶入时,如何保证当前ETC卡已经清算过,而在驶出时又如何保证该卡已驶入而未驶出?请用100字以内文字简述处理方案。
暂无

问题2 (5.0分)

  当车辆驶出收费口时,从绑定信用卡余额中扣除费用的伪指令如下:读取信用卡余额到变量x,记为x=RA。;扣除费用指令x=x-a;写信用卡余额指令记为W(A,x)。
  (1)当两个绑定到同一信用卡号的车辆同时经过收费口时,可能的指令执行序列为:x1=RA。,x1=x1-a1,x2=RA。,x2=x2-a2,W(A,x1),W(A,x2)。此时会出现什么问题?(100字以内)
  (2)为了解决上述问题,引入独占锁指令XLoekA。对数据A进行加锁,解锁指令UnlockA。对数据A进行解锁。请补充上述执行序列,使其满足2PL协议。
暂无

问题3 (6.0分)

  下面是用E-SQL实现的费用扣除业务程序的一部分,请补全空缺处的代码。
  CREATE PROCEDURE 扣除 (IN ETC 卡号 VARCHAR(20),IN 费用 FLOAT)
  BEGIN
  UPDATE 信用卡 SET 余额=余额-费用
  FROM 信用卡,绑定
  WHERE 信用卡.信用卡号=绑定。信用卡号 AND (a)
  if error then  ROLLBACK;
  else (b)
  END
暂无
广告位