假设事物T1对数据D1加了共享锁,事物T2对数据D2加了排它锁,那么()

2023-09-01

A.事物T2对数据D1加排它锁成功
B.事物T1对数据D2加共享锁成功,加排它锁失败
C.事物T1对数据D2加排它锁和共享锁都成功
D.事物T1对数据D2加排它锁和共享锁失败

参考答案:D

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