共享锁×共享锁又称为读锁若事务T对数据对象A加上S锁,则其它事务只X能再对A加S锁,而不能加X锁,直到T释放A上的S锁
共享锁 共享锁又称为读锁 若事务T对数据对象A加上S锁,则其它事务只 能再对A加S锁,而不能加X锁,直到T释放A上 的S锁
三、锁的相容矩阵SXT2T1NYXNSNYYYYYY-Yes,相容的请求不相容的请求N-No
三、锁的相容矩阵 Y=Yes,相容的请求 N=No,不相容的请求 T2 T1 X S - X N N Y S N Y Y - Y Y Y
第11章并发控制11.1并发控制概述11.2封锁11.3封锁协议11.4活锁和死锁11.5并发调度的可串行性11.6两段锁协议11.7封锁的粒度小结11.8
第11章 并发控制 11.1 并发控制概述 11.2 封锁 11.3 封锁协议 11.4 活锁和死锁 11.5 并发调度的可串行性 11.6 两段锁协议 11.7 封锁的粒度 11.8 小结
11.3封锁协议x在运用X锁和S锁对数据对象加锁时需要约定一些规则:封锁协议(LockingProtocol)+何时申请X锁或S锁+持锁时间、何时释放不同的封锁协议,在不同的程度上为X并发操作的正确调度提供一定的保证×常用的封锁协议:三级封锁协议
11.3 封锁协议 在运用X锁和S锁对数据对象加锁时, 需要约定一些规则:封锁协议 (Locking Protocol) 何时申请X锁或S锁 持锁时间、何时释放 不同的封锁协议,在不同的程度上为 并发操作的正确调度提供一定的保证 常用的封锁协议:三级封锁协议
1级封锁协议×事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放X正常结束(COMMIT)X非正常结束(ROLLBACK)1级封锁协议可防止丢失修改XX在1级封锁协议中,如果是读数据,不需要加锁的,所以它不能保证可重复读和不读“脏”数据
1级封锁协议 事务T在修改数据R之前必须先对其加X锁,直 到事务结束才释放 正常结束(COMMIT) 非正常结束(ROLLBACK) 1级封锁协议可防止丢失修改 在1级封锁协议中,如果是读数据,不需要加锁的, 所以它不能保证可重复读和不读“脏”数据