数据库第4章并发控制.ppt
《数据库第4章并发控制.ppt》由会员分享,可在线阅读,更多相关《数据库第4章并发控制.ppt(35页珍藏版)》请在三一办公上搜索。
1、第4章 并发控制,本章要点,并发操作及影响理解事务的概念并发操作的可串行性并发控制及实现技术,序言,事务并行地运行可充分利用系统资源事务是构成单一逻辑工作单元的操作集合,是并发控制的基本单位.多用户数据库系统中允许多个用户同时使用数据库,即在同一时刻可能有多个事务并行运行.,举例:并发控制,这种数据库的不一致是由并发操作引起的,机票数量A,A=16,A=15,A=15,售票点,售票点,A=16,A=16,出售1,出售1,事务T1,事务T2,4.1 事 务事务 事务是构成单一逻辑工作单元的操作集合。它必须以原子的方式执行,即:所有的操作要么都做,要么都不做,是一个不可分割的工作单位。事务的性质(
2、ACID)原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability),事务的开始与结束,1.开始事务用“BEGIN TRANSACTION”定义事务的开始2.结束事务 结束事务通常以下两种方式:(1)成功:COMMIT(2)不成功:ROLLBACK,事务的状态 事务的执行状态分为5种:活动状态 部分提交状态 失败状态 中止状态 提交状态,图4.1 事务的状态转换图,4.2事务调度与并发控制,事务的调度事务调度的概念:调度(Schedule):事务的执行次序。串行调度(Serial Schedule):多个事务依次串行执行,且只有当一个
3、事务的所有操作都执行完后才执行另一个事务的所有操作。并行调度(Concurrent Schedule):利用分时的方法处理多个事务。,并发控制 当多个事务中的多个事务并发执行时,有可能无法保证事务之间的隔离性,并破坏数据库的一致性、正确性。因此,DBMS的一个重要任务就是要有一种机制去保证事务在并发的存取和修改数据的时候的完整性不被破坏。并发控制机制就是一种在多用户环境下对数据库进行并发操作进行规范的机制,是衡量DBMS性能的重要标志之一。并发控制能给数据库的操作带来很大好处,最明显的有以下两点:(1)改善系统的资源利用率(2)改善短事务的响应时间,数据的不一致性,经过大量实例分析,发现并发操
4、作的不正确调度可能会带来三种数据不一致性。丢失修改 读“脏”数据 不可重复读,并发操作引起的丢失修改,丢失修改事务T1对数据的修改被事务T2的修改覆盖,并发操作引起的读脏数据,读脏数据事务T1 修改了某数据并写回磁盘,事务T2 读取了同一数据后,T1由于某种原因被撤销,被修改的值复原,此时T2读到的数据与数据库中的数据不一致,T1读C=1C=C*2写回C=2ROLLBACKC恢复为1,T2读C=2,并发操作引起的不可重复读,不可重复读事务T1读取某一数据后,事务T2对其做了修改,当T1按同样条件再读时得到不同的值事务T1读取某些数据后,事务T2删除(或插入)了一些记录,当T1按同样条件再读时发
5、现少(或多)了一些记录,T1读A=1,B=2求A+B=3读A=1,B=4求A+B=5,T2读B=2B=B*2写回B=4,小结,产生上述三类不一致性的主要原因并发操作破坏了事务的隔离性,事务间相互干扰并发控制的主要技术封锁技术(Locking),可串行化准则 假设事务都是串行运行的,一个事务结束(提交或者退回)后,另一个事务才能开始运行,那么就可以认为所有事务的运行结果都是正确的。尽管这些事务假如以不同的顺序运行,可能会对数据库造成不同的影响。以此为判断标准,我们将可串行化的并发调度当作判断事务并发操作的唯一正确性准则。即:假如并发操作调度的结果与按照某种顺序串行执行这些操作的结果相同,就认为并
6、发操作是正确的。,例 并发事务的不同调度策略:假设A,B初值均为2,T1:读B;A=B+1;写回A;T2:读A;B=A+1;写回B,T1,T2,T1,T2,T1,T2,Y=B=2,A=Y+1,X=A=3,写回B(=4),B=X+1,a 串行调度,c 不可串行化的调度,Y=B=2,A=Y+1,写回A(=3),X=A=2,写回B(=3),B=X+1,Y=B=2,A=Y+1,写回A(=3),Lock A,B,X=A=3,写回B(=4),B=X+1,等待,等待,等待,T1,T2,Y=B=3,A=Y+1,写回A(=4),X=A=2,写回B(=3),B=X+1,d 可串行化的调度,b 串行调度,写回A(=
7、3),结果:A=3,B=4,结果:A=4,B=3,结果:A=3,B=3,结果:A=3,B=4,Lock A,B.,ULock A,B,ULock A,B,4.3 封锁管理,封锁机制 1.封锁的定义 所谓封锁指的是事务T对某个数据对象(如关系、记录等)进行操作以前,先请求系统对其加锁,成功加锁之后该事务就对该数据对象有了控制权,在事务T释放它的锁之前,其他的事务不能更新此数据对象,只有事务T对其解锁之后,其他的事务才能更新它。,封锁是实现并发控制的一个重要的技术。,有两种基本的封锁类型:,排它锁(X锁,写锁):若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类
8、型的锁,直到T释放A上的锁共享锁(S锁,读锁):若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁,2.封锁的粒度,封锁的粒度即封锁对象的大小,如逻辑单元:属性、元组、关系、索引、数据库等物理单元:页、块等封锁粒度对并发控制的影响封锁粒度越大,并发度越小,系统封锁开销越小;封锁粒度越小,并发度越高,系统封锁开销越大;,修改属性,修改关系,如何选择封锁粒度:综合考虑系统并发度和并发控制开销,活锁和死锁,活锁举例说明:事务T1封锁某数据后,事务T2请求封锁未获得并等待,而T1释放锁后,事务T3请求封锁并获得,T3释放锁后,事务T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 并发 控制
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6578565.html