DBMS普遍采用封锁(Locking)方法来进行并发控制。此外还有其他方法:时间戳,乐观控制法。
封锁机制
封锁机制是并发控制的主要手段。封锁就是事务T在对某个数据对象进行读或写操作之前,先向系统发出请求,对其加锁。加锁后,事务T就对该数据对象有了一定的控制权。
封锁具有三个环节:1、申请加锁,即事务在操作前要对它欲使用的数据提出加锁请求;2、其次是获得锁,系统允许事务对数据加锁,从而事务获得数据的控制权;3、释放锁,即完成操作后事务放弃数据的控制权。
目前常用的锁类型有两种:排他锁X,共享锁S。不同类型的锁决定事务对数据对象有不同的控制权。
锁的类型
1、排他锁:排它锁也称为写锁或X锁。一旦事务T对数据对象A加上排它锁(X锁),则只允许T读取和修改A,其他任何事务既不能读取和修改A,也不能再对A加任何类型的锁,直到T释放A上的锁为止。
2、共享锁:共享锁又称读锁或S锁。如果事务T对数据对象A加上共享锁(S锁),其他事务对A只能再加S锁,不能加X锁,直到事务T释放A上的S锁为止。