当前位置:首页计算机类软件水平考试中级数据库系统工程师->某抢红包软件规定发红包人可以一次抛出多个红包,由多个人来抢。

某抢红包软件规定发红包人可以一次抛出多个红包,由多个人来抢。要求每个抢红包的人最多只能抢到同一批次中的一个红包,且存在多个人同时抢同一红包的情况。给定的红包关系模式如下:

Red(ID,BatchID,SenderID,Money,ReceiverID)

其中 ID 唯一标识每一个红包; BatchID 为发红包的批次,一个 BatchID 值可以对应多个 ID 值;SenderID 为发红包人的标识;Money 为红包中的钱数; ReceiverID 记录抢到红包的人的标识。

发红包人一次抛出多个红包,即向红包表中插入多条记录,每条记录表示一个红包, 其 ReceiverID 值为空值。

抢某个红包时,需要判定该红包记录的 ReceiverID 值是否为空,不为空时表示该红包已被抢走,不能再抢,为空时抢红包人将自己的标识写入到 ReceiverID 字段中,即为抢到红包。

【问题 1】 (9分)

引入两个伪指令 a = R(X) 和 W(b,X) 。其中a = R(X) 表示读取当前红包记录的 ReceiverID 字段(记为数据项 X) 到变量 a 中, W(b,X)表示将抢红包人的唯一标识 b 的值写入到当前红包记录的 ReceiverID 字段(数据项 X) 中,变量 a 为空值时才会执行 W(b,X) 操作。假设有多个人同时抢同一红包(即同时对同一记录进行操作),用ai=Ri(X)和Wi(bi,X)表示系统依次响应的第i个人的抢红包操作。假设当前数据项 X 为空值,同时有三个人抢同一红包,则

(1)如下的调度执行序列:

a1=R1,a2=R2(X),W1(b1,X),W2(b2,X),a3=R3(X)

抢到红包的是第几人?并说明理由。

(2)引入共享锁指令 SLocki(X)、独占锁指令XLocki(X)和解锁指令 ULocki(X),其中下标 i表示第 i个抢红包人的指令。如下的调度执行序列:

SLock1(X),a1=R1(X),SLock2(X),a2=R2(X),XLock1(X)......

是否会产生死锁?并说明理由。 (3)为了保证系统第一个响应的抢红包人为最终抢到红包的人,请使用上述。中引入的锁指令,对上述(1)中的调度执行序列进行修改,在满足 2PL协议的前提下,给 出一个不产生死锁的完整的调度执行序列。

【问题 2】 (6分)

下面是用 SQL实现的抢红包程序的一部分,请补全空缺处的代码

CREATE PROCEDURE ScrambleRed (IN BatchNo VARCHAR(20) , --红包批号

(IN RecvrNo VARCHAR(20)) --接收红包者

BEGIN

--是否已抢过此批红包

if exists( SELECT * FROM Red

WHERE BatchID = BatchNo AND ReceiverID = RecvrNo) thm

return -1;

end if;

---读取此批派发红包中未领取的红包记录ID

DECLARE NonRecvedNo VARCHAR(30);

DECLARE NonRecvedNo CURSOR FOR

SELECT ID

FROM Red

WHERE BatchID = BatchNo AND ReceiverID IS NULL;

-打开游标

OPEN NonRecvedRed;

FETCH NonRecvedRed INTO NonRecvedNo;

while not error

—抢红包事务

BEGIN TRANSACTION;

//写入红包记录

UPDATE RED SET ReceiverID =RecvrNo

WHERE ID = nonRECVED AND (a)

//执行状态判定

If<修改的记录数>= 1 THEN

COMMIT;

(b);

Return 1;

Else

ROLLBACK;

End if;

(c);

End while

--关闭游标

CLOSE NonRecved RD

Return 0;

END

查看答案 纠错
答案:
本题解析:

【问题1】(9分)

(1)第2人,并发操作出现了丢失更新的问题,第2个的更新覆盖了第1个的更新,原因是破坏了事物的隔离性。

(2)会产生死锁,由于数据X同时被1和2加锁了S锁,在对方没有释放的时候,都无法加成功X锁,导致1和2一直都处于等待的状态。

(3)XLock(X) a=R(X) W(b,X)UNLock(X)

【问题2】(6分)

(a)ReceiverID is NULL

(b)CLOSE NonRecvedRed

(c)FETCH NonRecvedRed INTO NonRecvedNo

更新时间:2021-11-25 12:51

你可能感兴趣的试题

单选题

Advancements in ( )have contributed to the growth of the automotive industry through the creation and evolution of self-driving vehicles.

  • A.Artificial Intelligence
  • B.Cloud Computing
  • C.Internet of Things
  • D.Big Data
查看答案
单选题

In project human resource management , ( )is not a source of power for the project manager.

  • A.referent power
  • B.expert power
  • C.reward power
  • D.audit power
查看答案
单选题

At the project establishment stage , the feasibility study mainly includes techinical feasibility analysis , ( ), operation environment feasibility analysis and other aspects of feasibility analysis.

  • A.detail feasibility analysis
  • B.opportunity analysis
  • C.economic feasibility analysis
  • D.risk analysis
查看答案
单选题

( )is a grid that shows the project resources assigned to each work package.

  • A.Stakeholder engagement assessment matrix
  • B.Requirements traceability matrix
  • C.Probability and impact matrix
  • D.Responsibility assignment matrix
查看答案
单选题

Xinhua News Agency reported in January 2022,Chian will further promote the developmet of a digital economy during the 14th Five-Year Plan eriod(2021-2025). The plan also emphasized industrial ( )transformation.

  • A.digital
  • B.networking
  • C.intelligentize
  • D.informatization
查看答案
单选题

某公司投资一个使用寿命为5年的项目,第一年年初投入1000万元,从第1年到第5年每年年末都有净现金流量300万元。则项目的静态投资回收期为( )年。

  • A.2
  • B.2.5
  • C.3
  • D.3.3
查看答案
单选题

下图是某地的街区网络图(单位:)里),疫情防控期间,一辆消毒车从疾控中心出发,需要消杀所有的街道并返回疾控中心。该消毒车完成消杀工作至少需要运行( )公里 。

高级信息系统项目管理师,历年真题,2022年上半年(上午)《信息系统项目管理师》真题

  • A.43
  • B.45
  • C.46
  • D.48
查看答案
单选题

某公司有东部、中部、西部三个生产基地,生产的产品需要运送带甲、乙、丙、丁四个市场,从生产基地到各个市场的单位运价及产量和需求量如表所示,完成该运输任务所需的最小运费为( )。

高级信息系统项目管理师,历年真题,2022年上半年(上午)《信息系统项目管理师》真题

  • A.242
  • B.244
  • C.289
  • D.302
查看答案
单选题

某炼油厂每季度需供应合同单位汽油15吨,煤油12吨,重油12吨,该厂从甲乙两处运回原油提炼,已知两处炼油成分如表所示,从甲处采购原油价格为2000元/吨,乙处为2900元/吨,为了使成本最低,炼油厂应从甲处购15吨,乙处采购( )吨。

高级信息系统项目管理师,历年真题,2022年上半年(上午)《信息系统项目管理师》真题

  • A.20
  • B.25
  • C.30
  • D.35
查看答案
单选题

某炼油厂每季度需供应合同单位汽油15吨,煤油12吨,重油12吨,该厂从甲乙两处运回原油提炼,已知两处炼油成分如表所示,从甲处采购原油价格为2000元/吨,乙处为2900元/吨,为了使成本最低,炼油厂应从甲处购( )吨,乙处采购20吨。

高级信息系统项目管理师,历年真题,2022年上半年(上午)《信息系统项目管理师》真题

  • A.15
  • B.20
  • C.25
  • D.30
查看答案