首页
登录
从业资格
阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。【说明】 某抢红包
阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。【说明】 某抢红包
练习题库
2022-08-02
66
问题
阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。【说明】 某抢红包软件规定发红包人可以一次抛出多个红包,由多个人来抢。要求每个抢红包的人最多只能抢到同一批次中的一个红包,且存在多个人同时抢同一红包的情况。给定的红包关系模式如下:Red(ID,BatchID,SenderID,Money,ReceiverID)其中 ID 唯一标识每一个红包; BatchID 为发红包的批次,一个 BatchID 值可以对应多个ID 值;SenderID 为发红包人的标识;Money 为红包中的钱数; ReceiverID 记录抢到红包的人的标识。发红包人一次抛出多个红包,即向红包表中插入多条记录,每条记录表示一个红包, 其 ReceiverID 值为空值。抢某个红包时,需要判定该红包记录的 ReceiverID 值是否为空,不为空时表示该红包己被抢走,不能再抢,为空时抢红包人将自己的标识写入到 ReceiverID 宇段中,即为抢到红包。【问题1】引入两个伪指令 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】 下面是用 SQL实现的抢红包程序的一部分,请补全空缺处的代码CREATE PROCEDURE ScrambleRed (IN BatchNo VARCHAR(20) , --红包批号( IN RecvrNo VARCHAR(20) ) 一接收红包者BEGIN--是否已抢过此批红包if exist s( SELECT * FROM Red WHERE BatchID = BatchNo AND ReceiverID = RecvrNo) thenreturn -1;end if;---读取此批派发红包中未领取的红包记录IDDECLARE NonRecvedNo VARCHAR(30);DECLARE NonRecvedRed CURSOR FORSELECT ID FROM RedWHERE BatchID = BatchNo AND ReceiverID IS NULL;-打开游标OPEN NonRecvedRed;FETCH NonRecvedRed INTO NonRecvedNo;while not error一抢红包事务BEGIN TRANSACTION;//写入红包记录UPDATE RED STE RECDIVER ID =RecvrNoWHERE ID = nonRECVED AND( a )//执行状态判定If<修改的记录数>= 1 THENCOMMIT;( b );Return 1;ElseROLLBACK;End if;( c );End while--关闭游标CLOSE NonRecved RDReturn 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)BatchID=BatchNo(b)CLOSE NonRecvedRed(c)END TRANSACTION
转载请注明原文地址:https://tihaiku.com/congyezige/2418342.html
本试题收录于:
中级 数据库系统工程师题库软件水平考试初中高级分类
中级 数据库系统工程师
软件水平考试初中高级
相关试题推荐
阅读以下说明和C++代码,将解答写在答题纸的对应栏内。 【说明】 已知类
阅读以下说明和流程图,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明
阅读以下说明和算法,完善算法并回答问题,将解答写在答题纸的对应栏内。 【说明】
阅读下列说明、图和Java代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
阅读下列说明、图和C++代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
面向对象()强调对问题的调查而不是如何确定解决方案,面向对象()强调的是问题的逻
阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入答题纸的对应栏
算法是问题求解过程的精确描述,它为解决某一特定类型的问题规定了一个运算过程。以下
阅读以下应用说明、属性设置以及VisualBasic程序代码,将解答写在答
阅读以下说明和C函数代码,回答问题并将解答写在答题纸的对应栏内。 【说明】
随机试题
Thereisneveragoodtimetohaveaheartattack,butthewisepersonaffli
ManypeopleintheliterarywouldsaythatBritishliteraturehaslostits【C
在Windows命令窗口中输入-命令后,得到如下图所示结果。图中结果表明()。
男患,25岁,农民,平素健康,由于过劳自觉全身乏力,胸闷2个月,低热,干咳,左胸
下列各项中,不属于财务报告舞弊方式的是:A.虚构会计记录 B.隐瞒重要交易
从所给的四个选项中,选择最合适的一个填入问号处,使之呈现一定的规律性:
假定,外围护墙洞口如图c所示。试问,外围护墙修正后的允许高厚比μ1μ2[β],与
某公司税后经营净利率为4.56%,净财务杠杆为0.8,税后利息率为8.02%,净
招标公告与投标邀请书应当载明( )。A.建设单位的名称和地址 B.招标项目的性
某实施监理的工程项目,采用以直接费为计算基础的全费用综合单价计价,混凝土分项工程
最新回复
(
0
)