事务T1读取数据A后,数据A又被事务T2所修改,事务T1再次读取数据A时,与第一次所读值不同。这种不一致性被称为(请作答此空),其产生的原因是破坏了事务T1的( )。

题目
事务T1读取数据A后,数据A又被事务T2所修改,事务T1再次读取数据A时,与第一次所读值不同。这种不一致性被称为(请作答此空),其产生的原因是破坏了事务T1的( )。

A.丢失修改
B.读脏数据
C.不可重复读
D.幻影现象
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

无级联调度应满足:对于每对事务T1和T2,如果T2读取了由T1所写的数据项,则T1必须在T2这一读取前 【】


正确答案:提交
因一个事物故障导致一系列事物回滚的现象称为级联回滚,由于级联回滚导致撤销大量工作,因此不希望发生级联回滚,我们对调度进行限制,这种调度称为无级联调度。

第2题:

设有两个事务T1、T2,其并发操作如图1所示,下面评价正确的是(42)。

A.该操作不存在问题

B.该操作丢失修改

C.修改该操作不能重复读

D.该操作读“脏”数据


正确答案:C
解析:由于对数据库的并发操作,可能带来数据的不一致性包括二类,丢失修改,不可重复读和读“脏”数据。其中丢失修改是指两个事务读入同一数据并修改,后提交的结果破坏了先提交的结果,导致先提交的事务修改被丢失;不能重复读是指先提交的事务读取数据后,后提交的事务执行更新操作,使得前面的事务不能读取前一次的结果;读“脏”数据是指某事务修改某一数据,并将它写回磁盘,后来的事务读取同一数据后,前一事务由于某种原因被撤销,这时前面已经修改的数据已经恢复原值,后读到的数据就与数据库的数据不一致。按照概念分析,该操作属于不可重复读。

第3题:

如果有两个事务T1和T2,彼此等待对方释放锁住的数据,这种现象称为 ______ 。


正确答案:死锁
死锁 解析:死锁指的是两个或更多的事务同时处于等待状态,每个事务都在等待其他的事务释放锁使其可继续执行。预防死锁主要有一次封锁法和顺序封锁法。

第4题:

事务T1读取数据A后,数据A又被事务T2所修改,事务T1再次读取数据A时,与第一次所读值不同。这种不一致性被称为( ),其产生的原因是破坏了事务T1的(请作答此空)。

A.原子性
B.一致性
C.隔离性
D.持久性

答案:C
解析:
数据库的并发操作通常会带来3个问题:丢失更新问题、读脏数据问题和不可重复读问题。依题意,事务T1读取数据A后,数据A又被事务T2所修改,事务T1再次读取数据A时,与第一次所读值不同。这种不一致性被称为不可重复读,其产生的原因是破坏了事务T1的隔离性。隔离性(Isolation)是指在多个事务并发(同时)执行,每个事务都感觉不到系统中有其他的事务在执行。

第5题:

事务T1读取数据A后,数据A又被事务T2所修改,事务T1再次读取数据A时,与第一次所读值不同。这种不一致性被称为( ),其产生的原因是破换了事务T1的( )。

A.丢失修改 B.读脏数据 C.不可重复读 D.幻影现象 A.原子性 B.一致性 C.隔离性 D.持久性


正确答案:C,C

第6题:

● 事务 T1、T2 和 T3 对相同的一组数据A、B 和C 进行操作,对于如下的一个并发调度,其中T1与T2间并发操作 (45) ,T2与T3间并发操作 (46) 。

(45)

A. 正确

B. 不能重复读

C. 将丢失修改

D. 将读“脏”数据

(46)

A. 正确

B. 不能重复读

C. 将丢失修改

D. 将读“脏”数据


正确答案:B,C

第7题:

事务T1、T2和T3对相同的一组数据A、B和C进行操作,对于如下的一个并发调度,其中T1与T2间并发操作(45),T2与T3间并发操作 (46)。

A.正确

B.不能重复读

C.将丢失修改

D.将读“脏”数据


正确答案:B
解析:本题考查数据库并发控制方面的基础知识。所谓并发操作,是指在多用户共享的系统中,许多用户可能同时对同一数据进行操作。并发操作带来的问题是数据的不一致性,主要有三类:丢失更新、不可重复读和读脏数据。其主要原因是事务的并发操作破坏了事务的隔离性。
  事务T1、T2分别对数据A、B和C进行读写操作,在t4时刻,事务T1将A、B和C相加存入X1,X1等于180。在t8时刻,事务T2将C减去B存入B,B等于40。在t13时刻,事务T1将A、B和C相加存入X1,X1等于160,验算结果不对。这种情况称之为“不能重复读”。可见,试题(45)的正确答案是B。
  事务T2、T3分别对数据B和C进行读写操作,在t8时刻,事务T2将C减去B存入B,B等于40。在t14时刻,事务T3将B加50存入B,B等于90。这种情况丢失了事务T2对B的修改,将这种情况称之为“丢失修改”。

第8题:

如果事务T1封锁了数据R1,T2封锁了数据R2,然后T1又请求封锁R2。接着T2又申请封锁R1。这样就出现了T1在等待T2,而T2又在等待T1的局面,T1和T2两个事务永远不能结束,形成()。

A 活锁

B 死锁

C 乐观锁

D 悲观锁


参考答案B

第9题:

下面的并行调度会出现的错误是( )。时间 事务T1 事务T2 数据库中数据t0 READ(A) At1 READ(A)t2 A=A+2t3 WRITE(A)t4 COMMITt5 READ(A)

A. 读“脏”数据

B.丢失修改

C. 不可重复读

D.幻影读


正确答案:C

第10题:

若事务T1对数据D1已加排它锁,事务T2对数据D2已加共享锁,那么事务T2对数据D1( );事务T1对数据D2(请作答此空)。

A.加共享锁成功,加排它锁失败
B.加排它锁成功,加共享锁失败
C.加共享锁、排它锁都成功
D.加共享锁、排它锁都失败

答案:A
解析:
对于丢失更新问题,通常采用封锁(Locking)技术加以解决。锁(Lock)的作用是使并发事务对数据库中数据项的访问能够同步。封锁技术中主要有两种封锁:排它锁封锁(X锁)和共享型封锁(S锁)。排它锁封锁(Exclusive Lock)简称为x锁(也称为写锁)。如果事务T对某个数据R实现了X锁,那么在T对数据R解除封锁之前,不允许其他事务T再对该数据加任何类型的锁。共享型封锁(Shared Lock)简称为S锁(也称为读锁)。如果事务T对某数据加上S锁后,仍允许其他事务再对该数据加s锁,但在对该数据的所有S锁都解除之前决不允许任何事务对该数据加X锁。依题意,若事务T1对数据D1已加排它锁,事务T2对数据D2已加共享锁,那么事务T2对数据D1加共享锁、排它锁都失败;事务T1对数据D2加共享锁成功,加排它锁失败。

更多相关问题