第六章 并发控制

第一节 第二节 第三节 第四节 第五节 第六节

第三节 封锁协议                           (1) (2)
    在运用X锁和S锁对数据对象加锁时,需要约定一些规则:封锁协议(Locking Protocol),何时申请X
锁或S锁,持锁时间、何时释放,不同的封锁协议,在不同的程度上为并发操作的正确调度提供一定的保证。
    常用的封锁协议,三级封锁协议:
    1级封锁协议:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,正常结束(COMMIT),
非正常结束(ROLLBACK)。1级封锁协议可防止丢失修改,在1级封锁协议中,如果是读数据,不需要加锁的,
所以它不能保证可重复读和不读“脏”数据。
                
    2级封锁协议,1级封锁协议+事务T在读取数据R前必须先加S锁,读完后即可释放S锁。2级封锁协议可以
防止丢失修改和读“脏”数据。在2级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。
            

吉林大学网络教育学院 版权所有