全部科目 > 数据库系统工程师 >
2020年下半年 上午试卷 综合知识
第 52 题
知识点 并发操作带来的问题  
章/节 事务管理  
 
 
事务T1将数据库中的A值从50改为30,事务T2读A值为30,事务T1又将刚才的操作撤销,A值恢复为50。这种情况属于(51), 是由于数据库系统在(52)方面的不当引起的,能解决此问题的方法是(53)。
 
  A.  并发控制
 
  B.  完整性约束
 
  C.  安全性控制
 
  D.  数据库的恢复




 
 
相关试题     事务管理 

  第53题    2022年上半年  
数据库恢复的基础是()。

  第45题    2010年上半年  
数据库系统必须控制事务的并发执行,保证数据库(45)。假设事务T1、T2分别对数据A和B进行的操作如下周所示,事务T1与T2间的并发调度为可串行化调度的是(46)。

  第54题    2019年上半年  
如果事务T获得了数据项R上的共享锁,则T对R( )。

 
知识点讲解
· 并发操作带来的问题
 
        并发操作带来的问题
        并发操作带来的数据不一致性有三类:丢失修改、不可重复读和读脏数据。对并发操作带来的三类数据不一致性举例说明如下图所示。
        
        数据不一致性举例
               丢失修改
               如上图(a)所示,事务T1、T2都是对数据A做减1操作。事务T1在时刻t5把A修改后的值15写入数据库,但事务T2在时刻t7再把它对A减1后的值15写入。两个事务都是对A的值进行减1操作并且都执行成功,但A中的值却只减了1。现实的例子如售票系统,同时售出了两张票,但数据库里的存票却只减了一张,造成数据的不一致。原因在于T1事务对数据库的修改被T2事务覆盖而丢失了,破坏了事务的隔离性。
               不可重复读
               如上图(b)所示,事务T1读取A、B的值后进行运算,事务T2在t5时刻对B的值做了修改以后,事务T1又重新读取A、B的值再运算,同一事务内对同一组数据的相同运算结果不同,显然与事实不相符。同样是事务T2干扰了事务T1的独立性。
               读脏数据
               如上图(c)所示,事务T1对数据C修改之后,在t4时刻事务T2读取修改后的C值做处理,之后事务T1回滚,数据C恢复了原来的值,事务T2对C所做的处理是无效的,它读的是被丢掉的垃圾值。
               通过以上三个例子,在事务并行处理的过程中,因为多个事务对相同数据的访问,干扰了其他事务的处理,产生了数据的不一致性,这是因事务的隔离性被破坏。
               问题的焦点在于事务在读写数据时不加控制而相互干扰。解决问题的方法是从如何保证事务的隔离性入手。



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

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