首页 > 知识点讲解
       案例分析
相关知识点:23个      
        案例:某航空公司售票系统负责所有起飞航班的机票销售业务,该公司设有多个机票销售网点,各售票网点使用相同的售票程序。假设系统有如下业务及规则:
        (1)售票程序中用到的伪指令如下表所示。
        
        伪指令含义
        (2)若某售票网点一次售出a张航班A的机票,则售票程序的伪指令序列为:R(A,x);W(A,x-a)。
        (3)假设用E-SQL实现的机票销售程序的一部分(不完整),如下图所示。
        
        机票销售程序
        根据上述业务及规则,完成下列问题:
        【问题1】假设有两个售票网点同时销售航班A的机票,那么在数据库服务器端可能出现如下的调度:
        A:R1(A,x),R2(A,x),W1(A,x-1),W2(A,x-2);
        B:R1(A,x),R2(A,x),W2(A,x-2),W1(A,x-1);
        C:R1(A,x),W1(A,x-1),R2(A,x),W2(A,x-2);
        其中Ri(A,x),Wi(A,x)分别表示第i个销售网点的读写操作,其余类同。
        假设当前航班A剩余10张机票,请分析上述三个调度各自执行完后的剩余票数,并指出错误的调度及产生错误的原因。
        【问题2】(1)判定事务并发执行正确性的准则是什么?如何保证并发事务正确地执行?
        (2)采用相应的加锁、解锁指令,重写售票程序的伪指令序列,以保证正确的并发调度。
        【问题3】请补全上图所示空缺处的代码。
        案例分析
        【问题1】分析
        在事务并发执行情况下,不同的调度可能产生不同的结果。针对两个并发执行的售票程序,可能会由于事务相互影响从而得到错误的结果。
        【问题2】分析
        考查对事务并发控制的相关知识的理解掌握。事务并发调度是否正确,可通过对非冲突命令进行交换,最终将并发调度转换成与某一串行化调度相同,则该并发调度为可串行化调度,可串行化调度被作为事务并发执行正确性的准则。
        为保证可串行化调度,在事物执行过程中引入相应指令进行控制,即两段锁协议(2PL),即对数据读之前先加读锁,写前加写锁,事务只有获得相应的锁才能操作数据,加解锁过程分为两个阶段,前一阶段只能加锁,后一阶段只能解锁,不允许有交叉。两段锁协议是保证并发事务可串行化调度的充分条件。
        针对给出的伪指令操作序列,在事务读取数据之前加Slock()指令,写数据之前加Xlock()指令,并保证读/写锁不交叉,即满足两段锁协议。
        【问题3】分析
        考查对2PL协议理论与SQL中的隔离级别以及嵌入式SQL的编程实践。其中,空(a)要补充的是嵌入式SQL的更新语句;空(b)要补充的是嵌入式SQL中的事务提交语句。
        参考答案
        【问题1】
        调度A结果为8,调度B结果为9,调度C结果为7。
        调度A、B结果错误,因为破坏了事务的隔离性。一个事务的执行结果被另一个所覆盖。
        【问题2】
        (1)判定事务并发执行正确性的准则是满足可串行化调度。要保证并发事务正确地执行,采用两段锁协议(2PL)。
        (2)重写后的售票程序伪指令序列:XLock(A);R(A,x);W(A,x-a);Unlock(A);
        【问题3】
        空(a)balance=:x WHERE flight=‘A’
        空(b)EXEC SQL COMMIT WORK
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有