阅读下列说明,回答问题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和问题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
相关考题:
阅读以下说明,回答问题1~4,将解答填入对应的解答栏内。[说明] 现有如下关系模式:R(A,B,C,DE),其中,A,B为组合键,R上存在的函数依赖有(A ,B) →E,B→C,C→D该关系模式满足2NF吗?为什么?
关于红包描述正确的是() A、红包分为全渠道红包和渠道专享红包B、通过我的京东—我的钱包—红包查看每个红包的具体有效期限C、可以与优惠券、京豆等其他优惠同时使用D、不可以和其他优惠券、京豆等优惠同时使用E、若发生售后退货,则返还商品下单时使用的红包F、使用红包支付的订单无需扣除红包支付的部分计算差价
阅读下面的说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。[说明]阅读以下说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。windows Server 2003是一个多任务多用户的操作系统,能够以集中或分布的方式实现各种应用服务器角色,是目前应用比较广的操作系统之一。Windows内置许多应用服务功能,将下表中(1)~(5)处空缺的服务器名称填写在答题纸对应的解答栏内。(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
2016年面试热点:上班时间微信抢红包被公司处罚500元 面试热点相关背景: “抢还是不抢?”4日上午10点左右,杨海(化名)所在的微信群里,董事长发了一个红包,他按捺住了内心激动,没好意思吃这第一口螃蟹。接下来,他的不好意思就转化成了庆幸:当天下午,公司下发一纸处罚通知,抢红包的“前三甲”,每人罚款500元。理由是上班时间玩手机。(1月6日《成都商报》) 近日,成都一家公司的3名员工,因为上班时间在微信群里抢红包,被公司处罚了500元,而“红包是老板自己发的”。公司董事长罗先生表示,“我就想发个红包看看哪些在认真上班”。因为,公司才宣布了上班禁止玩手机,“就发个红包试一试”。(1月6日《成都商报》) 6日,有两则“钓鱼实验”的新闻,都发生在成都。一是某燃气企业董事长在群里发红包,测试员工上班时间是否违规玩微信,结果3名中层被各罚500元;二是某小伙用丢钱包方式在街头试探人性,并暗中拍摄,结果27次中有6人未还。(1月6日《成都商报》)
2016年面试热点:老师该不该与学生和家长抢红包 面试热点相关背景 老师该不该收学生和家长的红包?回答一定是一致的:当然不该!微信群里发的几毛几块的微信红包,老师又该不该抢呢?这个问题最近让成都一位高校教授纠结了半天——不抢吧,觉得学生不过是借此形式表达祝福、金额又很小,会不会显得自己太过古板?抢吧,毕竟也是真金白银,算不算有违师德?(1月28日《成都商报》)
多个店铺多笔订单合并付款是否可以用红包支付()A、可以B、不可以C、所有订单合并支付只能用通用红包,鉴于红包都是店主自己设置的,不能用于其他店铺的缘故,如您想用掉所有红包支付,请分开单独支付D、多个店铺的订单无法合并付款
使用红包后,如果发生了退款,以下对于红包描述正确的是()A、退款成功后,红包已过有效期但在(有效期+90天)的时间内:红包会退还,红包使用到期时间延长到(有效期+90天)B、退款成功后,红包已过(有效期+60天):红包退回后有效期不变,过期不可使用C、退款成功后,红包还在有效期内:红包会退还,且有效期不变D、红包不可以退回
“抬头看春晚,低头抢红包”。2015羊年春节的热门话题里,“抢红包”绝对可以说是最红火的一个。随着移动互联网和智能手机用户迅速增多,除夕的短信发送量大幅减少,数据流量却在逐年大增。除了电商巨头为争夺用户的红包大战,不少年轻人通过点赞送祝福,或通过发微信红包或支付宝红包给亲友拜年,这些时髦的拜年方式让人耳目一新。移动互联网迅速发展正在改变我们的生活。这说明()A、分配是连接生产和消费的桥梁B、消费为生产创造新的劳动力C、生产决定消费的对象和方式D、消费对生产升级起导向作用
如果要问,最近什么最火,那毫无疑问就是抢红包活动了。在春节前能够抢到各大互联网巨头的拜年红包,已经成为网民最期待的“春节活动”之一。这几天您的手气如何,抢到红包了吗?针对这一现象,你怎么看?
微信支付是集成在微信客户端的支付功能,用户可以通过手机完成快速的支付流程。微信支付以绑定银行卡的快捷支付为基础,向用户提供安全、快捷、高效的支付服务。当前微信红包盛行,有事没事发红包抢红包已经成为许多人的每日必修课,有人说,微信红包方便了大家交流,使用微信支付也方便人们生活。也有人说沉迷枪微信红包耽误了工作,甚至影响了家庭。对此,谈谈你对微信红包的看法?
单选题某孕妇,孕36周,因妊高症入院,其家属在主治医师上班时偷偷塞给其一个红包,此时医生应:()A教育批评患者家属B接受红包,让患者安心C告诉家属不能收红包,可以收礼物D拒接红包,并告诉其一定会尽力的
问答题如果要问,最近什么最火,那毫无疑问就是抢红包活动了。在春节前能够抢到各大互联网巨头的拜年红包,已经成为网民最期待的“春节活动”之一。这几天您的手气如何,抢到红包了吗?针对这一现象,你怎么看?
问答题微信支付是集成在微信客户端的支付功能,用户可以通过手机完成快速的支付流程。微信支付以绑定银行卡的快捷支付为基础,向用户提供安全、快捷、高效的支付服务。当前微信红包盛行,有事没事发红包抢红包已经成为许多人的每日必修课,有人说,微信红包方便了大家交流,使用微信支付也方便人们生活。也有人说沉迷枪微信红包耽误了工作,甚至影响了家庭。对此,谈谈你对微信红包的看法?
问答题材料: 微信红包自2014年面世以来,便成为微信场域中的一种重要交往方式,它不仅是传统红包在线上的继承和延伸,还进一步创造了新的生活场景,“抢红包”已经成为微信社群中活跃气氛、联络感情最常见的互动方式。基于微信的功能框架,微信红包的使用方式主要有一对一、一对多、多对多和抢红包。人们的微信红包使用会受多重社会心理因素的影响。 在红包的使用动机中,面子是一种重要的引发因素。红包赠予者追求基于人际关系的面子,渴望和谐融洽的人际关系、广泛的人脉网络、不受他人控制、并在群体中发挥积极的影响力,因此,发红包的次数、频率和金额都会随自身追求面子的程度而产生浮动。发红包在一定程度上是个体对于自身财富和成就的选择性外露。同时,收发红包行为的背后也存在着一种潜在的双向权力关系,红包赠予者通过发红包而产生控制感、降低自身被控制感,被赠予者表达了支持、喜欢和欣赏,增强了与赠予者的情感联系。 基于羞耻感的作用,面子机制也会在一定程度上促进群内的多对多红包行为,面子成为一种隐性的“惩罚机制”,以他律的形式影响个体行为,群成员为了得到面子的保全感,为了延伸以红包交往而加固的社交链接,以及为了建构自身的积极形象而获得他人的“信誉和依附”,会选择将红包游戏延续下去。 群体认同感影响微信红包使用。红包是微信场域中一种特殊的符号互动形式,与简单的话语表达不同。红包背后是切实的经济收益,是能够保证的物质和象征利润。与话语相比,红包的表意更加直接真实,与转账相比,红包表达的风险更小,不易引发排斥心理,人们会因得到了真实利益而提高对红包赠予者的口碑,赠予者因此获得在社会网络中相对中心的地位和关系人的基本信任。 在传统中国社会,信任通常呈现血缘导向,以差序格局为交往倚仗,信任半径普遍狭窄,而随着现代社会民主秩序和自发社交理念的逐渐成型,民间的自我联属和自组织逐渐涌现,由红包交往引发的亲密关系和交往期待,促使社会网络中的信任关系开始变得广泛,信任程度加深。 在微信交往情境中,差序格局依旧存在,人们发红包的方式与金额仍会在一定程度上受到现实社会关系程度的影响,当错误关系闯入红包使用的场景,如发错对象或抢错红包,使用者会感到尴尬不适。同时,红包从亲密礼物扩散至陌生人之间,成为半游戏、半仪式的符号互动的交流方式,个体行为被集体积淀的经验和潜在的规则所引导,在重复使用和加强下,红包变成了带有礼节意义的示好行为,不遵从规制则变成对礼节的违反。“违反者”不会受到实际惩罚,但会因异于规范而在很长一段时间内难以获得身份的有效性和他人的心理认同。 微信红包使用不仅能够维系现有的社交网络,也为个体加入新的群体提供了便利。新成员通过发群红包来活跃群内气氛,调动成员热情,降低交流风险,拉近亲密关系,红包带来一致的“抢”的行为,在一定程度上有助于群体归属感的形成。 群体压力感知与微信红包使用有一定关系。社会心理学的研究发现,个体在群体环境中,往往表现出有异于其独处时的行为,与主动产生的亲密归属感不同,个体在进行人际交往与群体活动时往往会因为感知群体中的与自身意愿相悖的压迫感而产生一些“非常规”行为以达到目的的满足和一种被动的融入。群体会通过信息交流和价值观引导等途径对个体行为形成示范和制约效应,从而对个人表现进行“修正”,因此,在微信群的红包交往环境中,个体对群体压力的感知程度对其行为可能存在着影响,群体压力感知程度越强,群体对于个体行为的“修正”效果越明显,即遵循于群体潜在规范和价值观的红包使用行为得到鼓励和推广。 (摘编自刘毅、卢雨楠《微信红包使用影响因素:基于社会心理与社会资本视角》有删改)问题: (1)面子需求为什么是红包使用动机的重要引发因素?请结合文本,简要概括。(4分)(2)社会心理因素是如何影响人们使用微信红包的?结合文本,简要分析。(10分)