全部科目 > 软件设计师 >
2017年上半年 上午试卷 综合知识
第 52 题
知识点 并发控制  
章/节 计算机软件知识  
 
 
若事务T1对数据D1加了共享锁,事务T2、T3分别对数据D2、D3加了排它锁,则事务T1对数据(51) ;事务T2对数据(52)。
 
  A.  D1、D3加共享锁都失败
 
  B.  D1、D3加共享锁都成功
 
  C.  D1加共享锁成功 ,D3加排它锁失败
 
  D.  D1加排它锁成功 ,D3加共享锁失败




 
 
相关试题     计算机软件知识 

  第18题    2017年上半年  
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天),则完成该项目的最早时间为(17)天。活..

  第1题    2024年上半年  
关于链表操作中,说法正确的是(   )。

  第51题    2018年下半年  
数据库系统中的视图、存储文件和基本表分别对应数据库系统结构中的( )。

 
知识点讲解
· 并发控制
 
        并发控制
        并发操作是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作。并发操作带来问题的原因是事务的并发操作破坏了事务的隔离性。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-2025 All Rights Reserved
软考在线版权所有