数据库第11章并发控制

数据库第11章并发控制

ID:39711963

大小:237.51 KB

页数:94页

时间:2019-07-09

数据库第11章并发控制_第1页
数据库第11章并发控制_第2页
数据库第11章并发控制_第3页
数据库第11章并发控制_第4页
数据库第11章并发控制_第5页
资源描述:

《数据库第11章并发控制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11章并发控制11并发控制多事务执行方式(1)事务串行执行每个时刻只有一个事务运行,其他事务必须等到这个事务结束以后方能运行不能充分利用系统资源,发挥数据库共享资源的特点并发控制(续)多事务执行方式(2)交叉并发方式(interleavedconcurrency)事务的并行执行是这些并行事务的并行操作轮流交叉运行是单处理机系统中的并发方式,能够减少处理机的空闲时间,提高系统的效率并发控制(续)多事务执行方式(3)同时并发方式(simultaneousconcurrency)多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务真正的并

2、行运行最理想的并发方式,但受制于硬件环境并发控制(续)事务并发执行带来的问题对多用户并发存取同一数据的操作不加控制可能会存取和存储不正确的数据,破坏事务的隔离性和数据库的一致性DBMS必须提供并发控制机制并发控制机制是衡量一个DBMS性能的重要标志之一11并发控制11.1并发控制概述11.2并发操作的调度11.3封锁11.4死锁和活锁11.5Oracle的并发控制11并发控制11.1并发控制概述11.2并发操作的调度11.3封锁11.4死锁和活锁11.5Oracle的并发控制11.1并发控制概述1.并发控制的单位——事务2.并发操作与数据的不一致性一、事务事务(Tran

3、saction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务和程序是两个概念在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序一个应用程序通常包含多个事务事务是恢复和并发控制的基本单位事务(续)定义事务的两种方式显式方式事务的开始由用户显式控制或DBMS自动隐含事务结束由用户显式控制隐式方式当用户没有显式地定义事务时,由DBMS按缺省规定自动划分事务事务(续)显式定义事务1.事务开始BEGINTRANSACTION事务(续)显式定义事务(续)2.事务结束(1)COMMIT事务正常结束提交事务的所有操作使

4、事务中所有对数据库的更新永久生效(保存在物理数据库中)。事务(续)显式定义事务(续)2.事务结束(2)ROLLBACK事务异常终止回滚事务的所有操作在事务运行的过程中发生了某种故障,事务不能继续执行系统将事务中对数据库的所有已完成的更新操作全部撤消,滚回到事务开始时的状态事务(续)事务的ACID特性:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)1.原子性事务是数据库的逻辑工作单位事务中包括的诸操作要么都做,要么都不做2.一致性事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性

5、状态:数据库中只包含成功事务提交的结果不一致状态:数据库中包含失败事务的结果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库中一致性(续)一致性与原子性是密切相关的。例:银行转帐:从帐号A中取出一万元,存入帐号B。定义一个事务,该事务包括两个操作第一个操作是从帐号A中减去一万元第二个操作是向帐号B中加入一万元这两个操作要么全做,要么全不做全做或者全不做,数据库都处于一致性状态。如果只做一个操作则用户逻辑上就会发生错误,少了一万元,这时数据库就处于不一致性状态。3.隔离性一个事务的执行不能被其他事务干扰一个事务

6、内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。4.持续性持续性也称永久性(Permanence)一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。事务的特性(续)保证事务ACID特性是事务处理的重要任务。破坏事务ACID特性的因素多个事务并行运行时,不同事务的操作交叉执行DBMS必须保证多个事务的交叉运行不影响这些事务ACID特性,特别是原子性和隔离性事务在运行过程中被强行停止DBMS必须保证被强行终止的事务对数据库和其他事务没有任何影响这些就是DBMS中恢复机制和并发控制机

7、制的责任。二、并发操作与数据的不一致性什么是数据的不一致性例:飞机订票系统中的一个活动序列:1)甲售票员读出某航班的机票余额A,设A=162)乙售票员读出同一航班的机票余额A,也为163)甲售票点卖出一张机票,修改机票余额A←A-1,所以A=15,把A写回数据库4)乙售票点也卖出一张机票,修改机票余额A←A-1,所以A=15,把A写回数据库结果:卖出两张机票,但数据库中机票余额只减少1。这种情况称为数据库的不一致性。并发控制概述(续)产生原因由甲乙两个售票员并发操作引起在并发操作情况下,对甲、乙两个事务的操作序列的调度是随机的若按上面的调

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。