并发执行的三个事务T1 、T2 和T3,事务T1对数据D1加了共享锁,事务T2、

练习题库2022-08-02  50

问题 并发执行的三个事务T1 、T2 和T3,事务T1对数据D1加了共享锁,事务T2、 T3分别对数据D2 、D3加了排它锁,之后事务T1对数据( );事务T2对数据(请作答此空)。A.D1、D3 加共享锁都失败B.D1 、D3 加共享锁都成功C.D1 加共享锁成功 ,D3 加排它锁失败D.D1 加排它锁成功 ,D3 加共享锁失败

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

答案 C

解析 并发事务如果对数据读写时不加以控制,会破坏事务的隔离性和一致性。控制的手段就是加锁,在事务执行时限制其他事务对数据的读取。在并发控制中引入两种锁:排它锁 (Exclusive Locks,简称X 锁)和共享锁( Share Locks,简称S 锁)。排它锁又称为写锁,用于对数据进行写操作时进行锁定。如果事务T对数据A加上X 锁后,就只允许事务T读取和修改数据A ,其他事务对数据A 不能再加任何锁,从而也不能读取和修改数据A ,直到事务T 释放A 上的锁。共享锁又称为读锁,用于对数据进行读操作时进行锁定。如果事务T对数据A 加上了S锁后,事务T就只能读数据A但不可以修改,其他事务可以再对数据A加S锁来读取,只要数据A上有S锁,任何事务都只能再对其加S锁读取而不能加X锁修改。
转载请注明原文地址:https://tihaiku.com/congyezige/2419348.html

最新回复(0)