第1题:
阅读下列说明,回答问题 1 和问题 2 ,将解答填入答题纸的对应栏内。 【说明】 某抢红包软件规定发红包人可以一次抛出多个红包,由多个人来抢。要求每个抢红包的人最多只能抢到同一批次中的一个红包,且存在多个人同时抢同一红包的情况。给定的红包关系模式如下: 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 STE RECDIVER ID =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
第2题:
第3题:
此题为判断题(对,错)。
第4题:
下列行为,与第三次科技革命的创造发明关系最密切的是()。
第5题:
茶艺师在春节期间接待澳门的客人时,注意不能说()。
第6题:
蒙古族人民最高的礼节就是()。蒙古人把它视为最圣洁、最崇高、最吉祥之物。多在新年初一时向佛祖叩拜之时及晚辈问候拜年时用。
第7题:
第8题:
此题为判断题(对,错)。
第9题:
客户端-红包可以发送何种红包?()
第10题:
“抬头看春晚,低头抢红包”。2015羊年春节的热门话题里,“抢红包”绝对可以说是最红火的一个。随着移动互联网和智能手机用户迅速增多,除夕的短信发送量大幅减少,数据流量却在逐年大增。除了电商巨头为争夺用户的红包大战,不少年轻人通过点赞送祝福,或通过发微信红包或支付宝红包给亲友拜年,这些时髦的拜年方式让人耳目一新。移动互联网迅速发展正在改变我们的生活。这说明()