第八章并发控制 8并控制概迷 ·产生上述三类数据不一致性的主要原因是并发操作破 坏了事务的隔离性 ·并发控制就是要用正确的方式调度并发操作,使一个 用户事务的执行不受其它事务的干扰,从而避免造成 数据的不一致性一这就是DBM3中并发控制机制的责任。 并发控制的主要技术一封锁(bv)
• 产生上述三类数据不一致性的主要原因是并发操作破 坏了事务的隔离性。 • 并发控制就是要用正确的方式调度并发操作,使一个 用户事务的执行不受其它事务的干扰,从而避免造成 数据的不一致性——这就是DBMS中并发控制机制的责任。 并发控制的主要技术——封锁(Locking)。 第八章 并发控制 8.1 并发控制概述
第八章并发控制 82封锁(∠mp) 7.封锁的定义 封锁就是事务/在对某个数据对象操作之前,先向系 统发出请求,对其加锁。加锁后事务/就对该数据对 象有了一定的控制,在事务7释放它的锁之前,其它 的事务不能更新此数据对象 封锁类型 基本的封锁类型有两种 排它锁/= lusine locks简记为锁 共享锁/amka简记为锁
1. 封锁的定义 封锁就是事务T在对某个数据对象操作之前,先向系 统发出请求,对其加锁。加锁后事务T就对该数据对 象有了一定的控制,在事务T释放它的锁之前,其它 的事务不能更新此数据对象。 2. 封锁类型 基本的封锁类型有两种: 排它锁(Exclusive locks 简记为X锁) 共享锁(Share locks 简记为S锁). 第八章 并发控制 8.2 封锁(Locking)
第八章并发控制 82封锁(∠mp) ()排它锁(又称为写锁) 若事务对数据对象上横锁,则只允许/读取和修改, 其它任何事务都不能再对任何类型的锁,直到7释 放上的锁。 这就保证了其它事务在释放上的锁之前不能再读取 和修改A
第八章 并发控制 8.2 封锁(Locking) (1)排它锁(又称为写锁) 若事务T对数据对象A加上X锁,则只允许T读取和修改A, 其它任何事务都不能再对A加任何类型的锁,直到T释 放A上的锁。 这就保证了其它事务在T释放A上的锁之前不能再读取 和修改A
第八章并发控制 82封锁(∠mp) (2)共享锁(又称为读锁) 若事务7对数据对象上锁,则事务可以读A但不能 修改H,其它事务只能再对A加S锁,而不能加λ锁,直 到7释放A上的锁。 这就保证了其它事务可以读A,但在7释放往上的锁之 前不能对A做任何修改
第八章 并发控制 8.2 封锁(Locking) (2)共享锁(又称为读锁) 若事务T对数据对象A加上S锁,则事务可以读A但不能 修改A,其它事务只能再对A加S锁,而不能加X锁,直 到T释放A上的S锁。 这就保证了其它事务可以读A,但在T释放A上的S锁之 前不能对A做任何修改
第八章并发控制 82封锁(∠mp) ·排它锁和共享锁的控制方式相容矩阵: 72 77 Y=Yes相容的请求N=No相容的请求 注意:Ⅹ锁和S锁是互斥的
第八章 并发控制 8.2 封锁(Locking) • 排它锁和共享锁的控制方式相容矩阵: T2 T1 X S — X N N Y S N Y Y — Y Y Y Y= Yes 相容的请求 N= No 相容的请求 注意:X 锁和S锁是互斥的