阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。【说明】 某图书馆的图书借还业务使用如下关系模式:书目(ISBN,书名,出版社,在库数量)图书(书号,ISBN,当前位置)其中在库数量为当前书目可借出的图书的数量,每本图书入库后都会有当前位置,借出后当前位置字段改为空值。每一条书目信息对应多本相同的图书,每一本图书只能对应一条书目。借还书业务的基本流程如下描述:(1)读者根据书名查询书目,当前书目的在库数量大于0时可借阅。(2)读者借出一本图书时,进行出库操作:根据该图书的书号将该图书的当前位置字段值改为空值,并根据其ISBN号将对应书目的在库数量减1。(3)读者归还一本图书时,进行入库操作:系统根据当前书架的空余位置自动生成该本书的存放位置,并根据该图书的书号将其当前位置字段值改为生成的存放位置,然后将对应书目的在库数量加1。(4)借还书时,逐一扫描每本图书的书号并进行出、入库操作。【问题1】引入两个伪指令:a=R(X)表示将在库数量X值读入到变量a中;W(a,X)表示将变量a的值写入到在库数量X中。入库操作用下标i表示,出库操作用下标o表示。将出库和入库操作分别定义为两个事务,针对并发序列:ao=Ro(X),aI=RI(X),ao=ao-1,Wo(ao,X),aI=aI+1,WI(aI,X)。其中变量aI和ao分别代表入库事务和出库事务中的局部变量。(1)假设当前X的值为3,则执行完上述并发序列的伪指令后,X的值是多少?简述产生这一错误的原因(100字以内)。(2)为了解决上述问题,引入独占锁指令XLock(X)对数据X进行加锁,解锁指令Unlock(X)两对数据X进行解锁。入库操作用下标I表示,如XLockI(X);出库操作用下标o表示,如Unlocko(X)。请根据上述的并发序列,给出一种可能的执行序列,使其满足2PL协议。【问题2】 下面是用SQL实现的出入库业务程序的一部分,请补全空缺处的代码。CREATE PROCEDURE IOstack(IN BookNo VARCHAR(20), IN Amount INT){ //输入合法性验证 if not (Amount=1 or Amount=-1) return-1; //修改图书表当前位置 UPDATE图书SET当前位置=GetPos(BookN,Amount)//系统生成 WHERE ____(a)_____;if error then { ROLLBACK; return -2;} //修改在库数量UPDATE 书目 SET 在库数量=____(b)______ WHERE EXISTS (SELECT * FROM 图书WHERE 书号=BookNo AND ____(c)____ ); if error then ( ROLLBACK; return-3;} ____(d)______;return 0;}
正确答案及解析
正确答案
解析
本题考查事务并发控制知识的应用和事务程序的编写技能。(1)根据问题中给出的并发序列:"ao=Ro(X),aI=RI(X),ao=ao-1,Wo(ao,X),aI=aI+1,WI(aI,X)"及指令的说明,该序列为一个入库事务和一个出库事务的余发调度。X的当前值为3,执行完"ao=Ro(X),aI=RI(X)"后,变量ao和aI的值均为3;执行完"ao=ao-1,Wo(ao,X)"后,X的值被改为2;执行完"aI=aI+1,WI(aI,X)"后,X的值被改为4,即并发序列执行完后X的值。这两个事务分别是同一书目下两本书的出库和入库操作。根据事务并发正确性的判定,其正确的必要条件是与某一次串行的结果相同。在X当前值为3的情况下,出库一本书和入库一本书,两个事务两种串行方式下,其结果都为3。因而题目给出的并发序列的执行结果是错误的。错误原因在于出库事务的指令"Wo(ao,X)"写入X的值后,被入库事务的指令加"WI(aI,X)"所覆盖,即丢失修改错误,出库事务的修改丢失了。(2)根据2PL协议的规定,在修改数据前需对该数据加独占锁,前提是在该数据上没有其他事务所加的锁,否则只能等待其他事务释放锁后再加锁。题目要求只加独占锁,因此出库事务的第一条语句"ao=Ro(X)"前应有加锁语句"XLocko(X)";入库事务第一条指令"aI=RI(X)"之前应有加锁语句"XLockI(X)",但此时X上己有出库事务上的锁,故入库事务加锁被拒绝,只能等待,到出库事务释放锁之后才能加上锁,入库事务的后续指令才能得以执行。【问题2】本问题将出入库两项操作使用同一程序完成,通过形参Amount的值(1表示入库,-1表示出库)进行区别。空缺U)处应根据形参BookNo值确定要修改的图书记录。空缺(b)处为新的在库数量值,将形参Amount的值累加到在库数量上即可。空缺(c)处要通过当前图书记录确定要修改的书目记录。空缺(d)处应为提交指令。
你可能感兴趣的试题
Anetwork attack is an attempt to gain(71)access to an organization’s network,with the objective of stealing data or performing other malicious activities.Plagiarism is A(72)-of-service(DoS)attack is a cyber-attack in which the attacker seeks to make a machine or network resource unavailable to its intended users by temporarily or indefinitely disrupting services of a host connected to a network.In the case of a simple attack,a(73)could have a simple rule added to deny all incoming traffic from the attackers,based on protocols,ports,or the originating IP addresses.In a(74)DoS(DDoS)attack wangwangwang,the incoming traffic flooding the victim originates from(75)different sources.This effectively makes it impossible to stop the attack simply by blocking a single source问题1:
A.unauthorized
B.authorized
C.normal
D.frequent
问题2:
A.defense
B.denial
C.detection
D.decision
问题3:
A.firewall
B.router
C.gateway
D.switch
问题4:
Adamaged
B.descriptive
C.distributed
D.demanding
问题5:
A.two
B.many
C.much
D.ten
- 查看答案
以下关于信息化项目成本估算的描述中,不正确的是( )。
-
- A.项目成本估算指设备采购、劳务支出等直接用于项目建设的经费估算
- B.项目成本估算需考虑项目工期要求的影响,工期要求越短成本越高
- C.项目成本估算需考虑项目质量要求的影响,质量要求越高成本越高
- D.项目成本估算过粗或过细都会影响项目成本
- 查看答案
《中华人民共和国数据安全法》由中华人民共和国第十三届全国人民代表大会常务委员会第二十九次会议审议通过,自( )年 9 月 1 日起施行。
-
- A.2019
- B.2020
- C.2021
- D.2022
- 查看答案
某存储系统规划配置 25 块 8TB 磁盘,创建 2 个 RAID6 组,配置 1 块热备盘,则该存储系统实际存储容量是( )。
-
- A.200T
- B.192TB
- C.176TB
- D.160TB
- 查看答案
以下关于层次化网络设计模型的描述中,不正确的是( )。
-
- A.终端用户网关通常部署在核心层,实现不同区域间的数据高速转发
- B.流量负载和 VLAN 间路由在汇聚层实现
- C.MAC 地址过滤、路由发现在接入层实现
- D.接入层连接无线 AP 等终端设备
- 查看答案