首页 > 知识点讲解
       两段锁协议
知识路径: > 数据库技术 > 事务管理 > 数据库的并发控制 > 封锁协议 > 
被考次数:13次     被考频率:高频率     总体答错率:55%     知识难度系数:     
相关知识点:18个      
        通过对数据加锁,可以限制其他事务对数据的访问,但这会降低事务的并发性。如何在保证事务的一致性的前提下尽可能地提高并发性,这需要封锁协议来解决。封锁协议是对数据加锁类型、加锁时间和释放锁时间的一些规则的描述。封锁协议主要有三级封锁协议,以及两段锁协议。
               封锁协议
               封锁协议有三个级别:一级封锁协议、二级封锁协议和三级封锁协议。具体描述如下:
               (1)一级封锁协议:是事务T在修改数据A之前必须先对其加X锁,直到事务结束才释放X锁。一级封锁协议使得在一个事务修改数据期间,其他事务不能对该数据进行修改,只能等到该事务结束,解决了丢失修改的问题。
               (2)二级封锁协议:是一级封锁协议加上事务T在读取数据A之前必须对其加上S锁,读完后即可释放S锁。二级封锁协议使得一个事务不能读取被其他事务修改中的数据。解决了读脏数据的问题。但是,如果事务T在读取数据A之后,其他事务再对A做完修改,事务T再读取A,还会产生不可重复读的错误。
               (3)三级封锁协议:是一级封锁协议加上事务T在读取数据A之前必须对其加上S锁,直到事务结束才释放S锁。三级封锁协议使得一个事务读取数据期间,其他事务只能读取该数据而不能修改,解决了不可重复读的问题。
               两段锁协议
                      两段锁协议(Two-phase locking Protocol)
                      两段锁协议是指对任何数据进行读写之前必须对该数据加锁;在释放一个封锁之后,事务不再申请和获得任何其他封锁。
                      所谓“两段”锁的含义是:事务分为两个阶段。第一阶段是获得封锁,也称为扩展阶段;第二阶段是释放封锁,也称为收缩阶段。
                      例如:如果事务T1和T2的封锁序列如下,则T1遵守两段锁协议而T2不遵守两段锁协议。
                      T1的封锁序列是:Slock A …Slock B…xlock C…Unlock B…Unlock A…Unlock C
                      T2的封锁序列是:Slock A…Unlock A…Slock B…xlock C…Unlock C…Unlock B
                      为了确保事务并行执行的正确性,许多系统采用两段锁协议。同时系统设有死锁检测机制。发现死锁后按一定的算法解除死锁。
                      两段锁协议与可串行化
                      如果事务都遵循两段锁协议,那么它们的并发调度是可串行化的。两段锁是可串行化的充分条件,但不是必要条件。即如果事务不遵循两段锁协议,那么它们的并发调度可能是可串行化的,也可能是不可串行化的。
                      需要注意的是采用两段锁协议也有可能产生死锁,这是因为每个事务都不能及时解除被它封锁的数据,可能会导致多个事务互相都要求对方已封锁的数据不能继续运行。
               活锁与死锁
               所谓活锁,是指当事务T1封锁了数据R,事务T2请求封锁数据R,于是T2等待,当T1释放了R上的封锁后,系统首先批准了T3请求,于是T2仍等待,当T3释放了R上的封锁后,又批准了T4请求,依此类推,使得T2可能永远等待的现象。
               所谓死锁,是指两个以上的事务分别请求封锁对方已经封锁的数据,导致长期等待而无法继续运行下去的现象。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2022年上半年
   数据库系统工程..
   上午试卷 综合知识
第54题
选择题
如果事务T获得了数据项R上的X锁,则T对R()。

46%
   2019年上半年
   数据库系统工程..
   上午试卷 综合知识
第60题
选择题
下面说法中错误的是( )。

43%
>>  更多  本知识点历年真题
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

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


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

客服

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

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


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