并发控制的主要技术 封锁(Locking) 时间戳(Timestamp) 乐观控制法 什么是封锁 基本封锁类型 锁的相容矩阵 封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。 加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务对该数据对象的操作受到一定的限制。 一个事务对某个数据对象加锁后究竟拥有什么样的控制由封锁的类型决定。 基本封锁类型 排它锁(Exclusive Locks,简记为X锁) 共享锁(Share Locks,简记为S锁) 排它锁又称为写锁,X锁 若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务既不能读取和修改A,也不能再对A加任何类型的锁,直到T释放A上的锁 保证其他事务在T释放A上的锁之前不能再读取和修改A 共享锁又称为读锁,S锁 若事务T对数据对象A加上S锁,则事务T可以读取A但不能修改A,其它事务可以再对A加S锁,而不能加X锁,直到T释放A上的S锁 保证其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改 Y=Yes,相容的请求 N=No,不相容的请求 T1 T2 X S - X N N Y S N Y Y - Y Y Y 一级封锁协议 事务T在修改数据之前必须先对其加X锁,直到事务结束才释放。(读不加锁) * 二级封锁协议 事务T对要修改数
原创力文档

文档评论(0)