阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 某超市销售系统的部分关系模式如下: 商品表:Commodity(Ccode,Cname,price,qty),其中属性含义分别为:商品编号、商品名称、价格、库存量。有

admin2020-04-30  17

问题 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
    某超市销售系统的部分关系模式如下:
    商品表:Commodity(Ccode,Cname,price,qty),其中属性含义分别为:商品编号、商品名称、价格、库存量。有专门的事务保证库存量足够大,销售时无须检测。
    销售表:Sale(Sno,Ccode,amount,Stime),其中属性含义分别为:销售编号、商品编号、数量、时间。
    其销售业务规则如下:顾客在超市挑选好商品后,携带商品到结算处结算付款,结算处有多名结算员使用多台机器进行结算。结算员负责扫描顾客购买商品的条码和数量,由系统后台结算程序计算出顾客购买商品的总金额,修改商品表的商品库存量,并将销售信息写入销售表。
    请根据上述描述,回答以下问题。
     引入独占锁指令Xlock()和解锁指令Unlock(),对第一问中的调度进行重写,要求满足两段锁协议,且事务T1、T2首条指令的相对请求时间与第一问中的相同。

选项

答案[*] [*]

解析 本题中的两个事务均为读写事务,根据题目要求只使用独占锁指令Xlock()进行加锁,根据两段锁协议和第一问中的事务调度图,事务T1的第一条指令“a←Read(X)”前应加Xlock(X)指令提出加锁请求,此时数据项X上没有锁,加锁指令被响应并能成功加锁,继续执行事务T1的“a←Read(X)”指令;下一时刻事务T2的指令“a—Read(x)”被响应前,应由加锁指令Xlock(X)提出请求,与数据项X上事务T1所加的排它锁冲突,请求不被执行,事务T2处于等待状态,系统继续执行事务T1直至“Write(X,a)”指令被执行后,加入解锁指令LJnlock(X)释放其在数据项X上所加的排它锁,之后再响应T2的加锁请求,此时没有锁冲突,因此加锁成功,继续执行T2的后续指令直至“Write(X,a)”后加入解锁指令Unlock(X)释放锁。
转载请注明原文地址:https://kaotiyun.com/show/JrUZ777K
0

相关试题推荐
最新回复(0)