知识点讲解
 
       并发控制
知识路径: > 计算机系统基础知识 > 计算机软件知识 > 数据库知识 > 数据库的控制功能 > 
被考次数:3次
被考频率: 中频率
总体答错率: 34%
知识难度系数:
考试要求: 掌握     
相关知识点:6个
        并发操作是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作。并发操作带来问题的原因是事务的并发操作破坏了事务的隔离性。DBMS的并发控制子系统负责协调并发事务的执行,保证数据库的完整性不被破坏,避免用户得到不正确的数据。
               并发操作带来的问题
               并发操作带来的数据不一致性有3类,即丢失修改、不可重复读和读"脏"数据。
               并发控制技术
               并发控制的主要技术是封锁。
               1)封锁
               (1)排他锁(X锁)。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁。
               (2)共享锁(S锁)。若事务T对数据对象A加上S锁,则只允许T读取A,但不能修改A,其他事务只能再对A加S锁,直到T释放A上的S锁。
               2)三级封锁协议
               (1)一级封锁协议。事务在修改数据R之前必须先对其加X锁,直到事务结束才释放。一级封锁协议可以解决丢失更新问题。
               (2)二级封锁协议。在一级封锁协议的基础上,加上事务T在读取数据R前必须先对其加S锁,读完后即可释放S锁。二级封锁协议可以解决读"脏"数据的问题,但是由于二级封锁协议读完数据后即可释放S锁,所以它不能保证可重复读。
               (3)三级封锁协议。在一级封锁协议的基础上,加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议可以防止丢失修改、读"脏"数据和不可重复读。
               活锁和死锁
               活锁是指当事务T1封锁了数据R,事务T2请求封锁数据R,于是T2等待。T3也请求封锁R,当T1释放R上的封锁后,系统首先批准T3的请求,于是T2仍等待。然后T4又请求封锁R,当T3释放R上的封锁之后系统首先批准T4的请求……T2可能永远等待。
               死锁是指两个以上的事务分别请求封锁对方已经封锁的数据,导致长期等待而无法继续运行下去的现象。
               并发调度的可串行性
               【定义9-11】多个事务的并行执行是正确的,当且仅当其结果与某一次序串行地执行它们时的结果相同时,这种调度策略称为可串行化的调度。
               可串行性是并行事务正确性的准则,按照这个准则规定,一个给定的并发调度,当且仅当它是可串行化的才认为是正确调度。
               两段封锁协议
               两段封锁协议是指所有事务必须分两个阶段对数据加锁和解锁:第一阶段是获得封锁;第二阶段是释放封锁。
               封锁的粒度
               封锁对象的大小称为封锁的粒度。封锁的对象可以是逻辑单元也可以是物理单元。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

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