免费智能真题库 > 历年试卷 > 数据库系统工程师 > 2009年上半年 数据库系统工程师 上午试卷 综合知识
  第46题      
  知识点:   并发操作带来的问题
  章/节:   事务管理       

 
事务T1、T2和T3对相同的一组数据A、B和C进行操作,对于如下的一个并发调度,其中T1与T2间并发操作(45) , T2与T3间并发操作(46)。
 
 
  A.  正确
 
  B.  不能重复读
 
  C.  将丢失修改
 
  D.  将读“脏”数据
 
 
 

 
  第46题    2012年上半年  
   51%
系统中有三个事务T1、T2、T3分别对数据R1和R2进行操作,其中R1和R2的初值R1=120、R2=50„假设事务T1、T2、T3操作的情况如下..
  第56题    2018年上半年  
   30%
解决并发操作带来的数据不一致性一般采用()
  第46题    2015年上半年  
   35%
假设系统中只有事务T1和T2,两个事务都要对数据D1和D2进行操作。若T1对..
   知识点讲解    
   · 并发操作带来的问题
 
       并发操作带来的问题
        并发操作带来的数据不一致性有三类:丢失修改、不可重复读和读脏数据。对并发操作带来的三类数据不一致性举例说明如下图所示。
        
        数据不一致性举例
               丢失修改
               如上图(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所做的处理是无效的,它读的是被丢掉的垃圾值。
               通过以上三个例子,在事务并行处理的过程中,因为多个事务对相同数据的访问,干扰了其他事务的处理,产生了数据的不一致性,这是因事务的隔离性被破坏。
               问题的焦点在于事务在读写数据时不加控制而相互干扰。解决问题的方法是从如何保证事务的隔离性入手。
   题号导航      2009年上半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第46题    在手机中做本题