网站大量收购闲置独家精品文档,联系QQ:2885784924

oracle事务与并发控制.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
oracle事务与并发控制.ppt

2012年9月 南阳理工学院.软件学院.数据库教研室 第13章 事务与并发控制 软件学院 教学安排 事务概述 事务的并发控制 封锁 1. 事务概述 事务(Transaction) 一组数据库操作的集合,这些操作由一组相关的SQL语句组成,事务是数据库系统中执行的一个独立工作单位,它是由用户定义的一个或多个语句(只能是DML语句)构成的一组操作序列。它们是一个有机的整体,要么全部成功执行,要么全部不执行。 事务是数据库并发控制和恢复技术的基本单位。 一个事务可以是一组SQL语句、一条SQL语句或整个程序,一个应用程序可以包括多个事务。 事务的开始与结束可以由用户显式控制。如果用户没有显式地定义事务,则由DBMS按照缺省规定自动划分事务。 (2) 事务的特征 事务是由有限的数据库操作序列组成,但并不是任意的数据库操作序列都能成为事务,为了保护数据的完整性,一般要求事务具有以下四个特征。 原子性(Atomicity) 一个事务是一个不可分割的工作单位,事务在执行时,应该遵守“要么不做,要么全做”(Nothing of All)的原则,即不允许完成部分的事务。即使因为故障而使事务未能完成,它执行的部分结果也要被取消。 一致性(Consistency) 事务对数据库的作用是数据库从一个一致状态转变到另一个一致状态。所谓数据库的一致状态是指数据库中的数据满足完整性约束。例如,在银行中,“从账号A转移资金额R到账号B”是一个典型的事务,这个事务包括两个操作,从账号A中减去资金额R和在账号B中增加资金额R,如果只执行其中一个操作,则数据库处于不一致状态,帐务会出现问题。也就是说,两个操作要么全做,要么全不做,否则就不能成为事务。可见事务的一致性与原子性是密切相关的。 (2) 事务的特征 隔离性(Isolation) 如果多个事务并发地执行,应象各个事务独立执行一样,一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的。并发控制就是为了保证事务间的隔离性。 持久性(Durability) 持久性指一个事务一旦提交,它对数据库中数据的改变就应该是持久的,即使数据库因故障而受到破坏,DBMS也应该能够恢复。 事务上述四个性质的英文术语的第一个字母为A、C、I、D,因此,这四个性质又称为事务的ACID准则。 (3)事务控制语句 在Oracle中,没有提供开始事务语句,所有的事务都是隐式开始的。也就是说,在Oracle中,用户不可以显式使用命令开始一个事务。Oracle认为第一条修改的语句,或者一些要求事务处理场合都是事务隐式的开始。 当用户想要终止一个事务处理语句时,必须显式地使用COMMIT和ROLLBACKY语句结束。 (3)事务控制语句 在ORACLE中,事务的语句如下: SET TRANSACTION -- 设置事务的属性 SET CONSTRAINS -- 在事务中设置约束模式 SAVEPOINT -- 设置保存点 RELEASE SAVEPOINT –- 清除保存点 COMMIT -- 提交事务 ROLLBACK -- 回滚事务 2.并发控制 数据库并发性的含义 事务具有一致性,即事务对数据库的作用将数据库从一个一致状态转变到另一个—致状态。显然,如果多个事务按顺序执行,一个事务完全结束后,另一个开始执行,这种执行方式称为串行执行,则数据库的一致性仍然保持。 如果一个事务有时执行计算,有时进行输入/输出执行,有时需要通信,则事务串行执行,系统有些资源可能会闲置;有时,较短的事务会较长时间等待长事务的执行。 为了充分利用系统资源,又能改善对事务响应时间,应该允许多个事务在时间上交叉执行、并发地存取数据库,这种执行方式称为并发存取。当允许多个事务并发存取数据库时,如果不加以控制就有可能存取和存储不正确数据,从而破坏数据库的—致性。为此,DBMS必须提供并发控制机制。 2.并发控制 并发控制 前面讨论的完整性是保证各个事务本身能得到正确的数据,只考虑一个用户使用数据库的情况,但实际上数据库中有许多用户。并发性就是多个用户同时存取数据库时,采用一定的措施让多个用户并行执行,且保持数据库中数据的一致性,不会产生错误数据。这就是并发控制的主要目的。 并发操作与数据的不一致性 当同一数据库系统中有多个事务并发运行时,如果不加以适当控制,可能产生数据的不一致性。 丢失更新(Lost Update 污读(Dirty Read) 不可重读(Unrepeatable Read) 2.并发控制 丢失更新(Lost Update) 当两个事务T1和T2读入

文档评论(0)

czy2014 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档