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

 
事务T1将数据库中的A值从50改为30,事务T2读A值为30,事务T1又将刚才的操作撤销,A值恢复为50。这种情况属于(51), 是由于数据库系统在(52)方面的不当引起的,能解决此问题的方法是(53)。
 
 
  A.  并发控制
 
  B.  完整性约束
 
  C.  安全性控制
 
  D.  数据库的恢复
 
 
 

 
  第53题    2019年上半年  
   32%
并发操作可能带来的数据不一致性有(52),解决的办法是并发控制,主要技术是(53)。
  第60题    2021年上半年  
   58%
以下关于并发调度的说法中,正确的是( )。
  第60题    2020年下半年  
   45%
如果一个事务已获得数据项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所做的处理是无效的,它读的是被丢掉的垃圾值。
               通过以上三个例子,在事务并行处理的过程中,因为多个事务对相同数据的访问,干扰了其他事务的处理,产生了数据的不一致性,这是因事务的隔离性被破坏。
               问题的焦点在于事务在读写数据时不加控制而相互干扰。解决问题的方法是从如何保证事务的隔离性入手。
   题号导航      2020年下半年 数据库系统工程师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第52题    在手机中做本题