未分类题

某高速路不停车收费系统(ETC)业务描述如下:(1)车辆驶入高速路入口站点时,将驶入信息(ETC卡号,入口编号,驶入时间) 写入登记表;(2)车辆驶出高速路出口站点(收费口)时,将驶出信息(ETC卡号,出口编号, 驶出时间)写入登记表;根据入口编号、出口编号及相关收费标准,清算应缴费用,并从绑定信用卡中扣除费用。一张ETC卡号只能绑定一张信用卡号,针对企业用户,一张信用卡号可以绑定多 个ETC卡号。使用表绑定(ETC卡号,信用卡号)来描述绑定关系,从信用卡(信用卡号,余额)表中扣除费用。
【问题1】在不修改登记表表结构和保留该表历史信息前提下,当车辆驶入时,如何保 证当前ETC卡已经清算过,而在驶出时又如何保证该卡已驶入而未驶出?请用100 字以内文字简述处理方案。
【问题2】当车辆驶出收费口时,从绑定信用卡余额中扣除费用伪指令如下:读取信用卡余额到变量X,记为x = R(A);扣除费用指令x = x - a;写信用卡余额指令记为W(A, x)。(1)当两个绑定到同一信用卡号车辆同时经过收费口时,可能指令执行序列为:x1=R(A),x1 =x1-a1, x2 = R(A), x2 = x2-a2, W(A,x1,W(A,x2)。此时会出现什么问题?(100字以内)(2)为了解决上述问题,引入独占锁指令XLock(A)对数据A进行加锁,解锁指令Unlock(A)对数据A进行解锁。请补充上述执行序列,使其满足2PL协议。
【问题3】下面是用E-SQL实现费用扣除业务程序一部分,请补全空缺处代码。CREATE PROCEDURE 扣除(IN ETC 卡号 VARCHAR(20),IN 费用 FLOAT)BEGINUPDATE 信用卡 SET 余额=余额-费用FROM信用卡,绑定WHERE信用卡.信用卡号=绑定.信用卡号 AND ( a ) ;if error then ROLLBACK;else ( b ) ;END

【参考答案】

【问题1】在车辆驶入时判定登记表上对应该ECT卡所有记录,出口编号和驶出时间均不为空,表示该卡已清算过;在车辆驶出时判定......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题