oracle 事务oracle transaction信息管理与信息系统学位论文.doc

oracle 事务oracle transaction信息管理与信息系统学位论文.doc

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

xx工业大学 xxx学院 本科毕业设计(论文) ORACLE 事务 ORACLE TRANSACTION 系 部 管理学部 专 业 信息管理与信息系统 年 级 2011 级 班级名称 11信管 1班 学 号 学生姓名 xxx 指导教师 xxx 2015 年 5 月 目 录 TOC \o 1-3 \h \u  HYPERLINK \l _Toc24732 1 ORACLE 事务  PAGEREF _Toc24732 1  HYPERLINK \l _Toc11438 2 ORACLE TRANSACTION  PAGEREF _Toc11438 11   PAGE \* MERGEFORMAT 24 1 ORACLE 事务 事务(Transaction)是数据库区别于文件系统的特性之一。在文件系统中,如果你正把文件写 到一半,操作系统突然崩溃了,这个文件就很可能会被破坏。不错,确实还有一些“日报式”(journaled)之类的文件系统,它们能把文件恢复???某个时间点。不过,如果需要保证两个文件同步,这些文件系统就无能为力了,倘若你更新了一个文件,在更新完第二个文件之前,系统突然失败了,就会有两个不同步的文件。 这正是数据库中引入事务的主要目的,事务会把数据库从一种一致状态转变为另一种一致状态。这就是事务的任务。在数据库中提交工作时,可以确保要么所有修改都已经保存,要么所有修改都不保存。另外,还能保证实现了保护数据完整性的各种规则和检查。 在上一章中,我们从并发控制角度讨论了事务,并说明了在高度并发的数据访问条件下,根据Oracle的多版本控制读一致模型,Oracle事务每次如何提供一致的数据。Oracle中的事务体现了所有必要的ACID特征。ACID是以下4个词的缩写。 原子性(atomicity ):事务中的所有动作要么都发生,要么都不发生。 一致性(consistency):事务将数据库从一种一致状态转变为下一种一致状态。 隔离性(isolation):一个事务的影响在该事务提交前对其他事务都不可见。 持久性(durability):事务一旦提交,其结果就是永久性的。 这里讨论原子性的含义,以及Oracle中原子性对语句有什么影响。首先会介绍COMMIT,SAVEPOINT和ROLLBACK等事务控制语句,并讨论事务中如何保证完整性约束。我们会谈到,如果你原来一直在其他数据库中开发,可能在事务方面养成一些坏习惯(即后面所说的“不好的事务习惯”)。这里还将介绍分布式事务和两段提交(two-phase commit, 2PC)。最后会分析自治事务,指出什么是自治事务以及自治事务所扮演的角色。 事务控制语句 Oracle中不需要用专门的语句来“开始事务”。事务会在修改数据的第一条语句处隐式开始(也就是得到TX锁的第一条语句)。也可以使用SET TRANSACTION或DBMS_TRANSACTION包来显式地开始一个事务,但是这一步并不是必要的,这与其他的许多数据库不同,因为那些数据库中都必须显式地开始事务。如果发出COMMIT或ROLLBACK语句,就会显式地结束一个事务。 一定要显式地使用COMMIT或ROLLBACK来终止事务;否则,你使用的工异环境就会从中挑一个来结束事务。如果正常地退出SQL*Plus会话,而没有提交或回滚事务,SQL*Plus就会认为你希望提交前面做的工作,并为你完成提交。另一方面,如果你只是退出一个Pro*C程序,就会发生一个隐式的回滚。不要过分依赖这些隐式行为,因为将来这些行为可能会有改变。一定要显式地提交或回滚事务。 ORACLE中的事务是原子性的,这说明无非两种情况:构成事务的每条语句都会提交(成为永久),或者所有语句都回滚。这种保护还延伸到单个的语句。一条语句要么完全成功,要么这条语句完全回滚。注意,我说的是“语句”回滚。如果一条语句失败,并不会导致先前已经执行的语句自动回滚。它们的工作会保留,必须由你来提交或回滚。这里谈到了语句和事务是原子性的,在具体介绍其含义之前,先来看看我们可以使用哪些事务控制语句。 COMMIT:要想使用这个语句的最简形式,只需发出COMMIT。也可以更详细一些,写为COMMIT WORK,不过这二者是等价的。COMMIT会结束你的事务,并使得已做的所有修改成为永久性的(持久保存)。COMMIT语句还有一些扩展用于分布式事务中,允许增加一些有意义的注释为COMMIT 加标签(对事务加标签),以及强制提交一个可疑的分布

文档评论(0)

李天佑 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档