若事务T1对数据D1已加排它锁,事务T2对数据D2已加共享锁,那么事务T2对数据

练习题库2022-08-02  52

问题 若事务T1对数据D1已加排它锁,事务T2对数据D2已加共享锁,那么事务T2对数据D1(请作答此空);事务T1对数据D2( )。A.加共享锁成功,加排它锁失败B.加排它锁成功,加共享锁失败C.加共享锁、排它锁都成功D.加共享锁、排它锁都失败

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

答案 D

解析 对于丢失更新问题,通常采用封锁(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加共享锁成功,加排它锁失败。
转载请注明原文地址:https://tihaiku.com/congyezige/2418608.html

最新回复(0)