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

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

ID:13023955

大小:90.00 KB

页数:27页

时间:2018-07-20

oracle 事务oracle transaction信息管理与信息系统_学位论文.doc_第1页
oracle 事务oracle transaction信息管理与信息系统_学位论文.doc_第2页
oracle 事务oracle transaction信息管理与信息系统_学位论文.doc_第3页
oracle 事务oracle transaction信息管理与信息系统_学位论文.doc_第4页
oracle 事务oracle transaction信息管理与信息系统_学位论文.doc_第5页
资源描述:

《oracle 事务oracle transaction信息管理与信息系统_学位论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、xx工业大学xxx学院本科毕业设计(论文)ORACLE事务ORACLETRANSACTION系部管理学部专业信息管理与信息系统年级2011级班级名称11信管1班学号15041101031学生姓名xxx指导教师xxx2015年5月目录1ORACLE事务12ORACLETRANSACTION111ORACLE事务事务(Transaction)是数据库区别于文件系统的特性之一。在文件系统中,如果你正把文件写到一半,操作系统突然崩溃了,这个文件就很可能会被破坏。不错,确实还有一些“日报式”(journaled)之类的文件系统,它们能把文件恢复到某个时间点

2、。不过,如果需要保证两个文件同步,这些文件系统就无能为力了,倘若你更新了一个文件,在更新完第二个文件之前,系统突然失败了,就会有两个不同步的文件。这正是数据库中引入事务的主要目的,事务会把数据库从一种一致状态转变为另一种一致状态。这就是事务的任务。在数据库中提交工作时,可以确保要么所有修改都已经保存,要么所有修改都不保存。另外,还能保证实现了保护数据完整性的各种规则和检查。在上一章中,我们从并发控制角度讨论了事务,并说明了在高度并发的数据访问条件下,根据Oracle的多版本控制读一致模型,Oracle事务每次如何提供一致的数据。Oracle中的事

3、务体现了所有必要的ACID特征。ACID是以下4个词的缩写。原子性(atomicity):事务中的所有动作要么都发生,要么都不发生。一致性(consistency):事务将数据库从一种一致状态转变为下一种一致状态。隔离性(isolation):一个事务的影响在该事务提交前对其他事务都不可见。持久性(durability):事务一旦提交,其结果就是永久性的。这里讨论原子性的含义,以及Oracle中原子性对语句有什么影响。首先会介绍COMMIT,SAVEPOINT和ROLLBACK等事务控制语句,并讨论事务中如何保证完整性约束。我们会谈到,如果你原来

4、一直在其他数据库中开发,可能在事务方面养成一些坏习惯(即后面所说的“不好的事务习惯”)。这里还将介绍分布式事务和两段提交(two-phasecommit,2PC)。最后会分析自治事务,指出什么是自治事务以及自治事务所扮演的角色。事务控制语句Oracle中不需要用专门的语句来“开始事务”。事务会在修改数据的第一条语句处隐式开始(也就是得到TX锁的第一条语句)。也可以使用SETTRANSACTION或DBMS_TRANSACTION包来显式地开始一个事务,但是这一步并不是必要的,这与其他的许多数据库不同,因为那些数据库中都必须显式地开始事务。如果发出

5、COMMIT或ROLLBACK语句,就会显式地结束一个事务。24一定要显式地使用COMMIT或ROLLBACK来终止事务;否则,你使用的工异环境就会从中挑一个来结束事务。如果正常地退出SQL*Plus会话,而没有提交或回滚事务,SQL*Plus就会认为你希望提交前面做的工作,并为你完成提交。另一方面,如果你只是退出一个Pro*C程序,就会发生一个隐式的回滚。不要过分依赖这些隐式行为,因为将来这些行为可能会有改变。一定要显式地提交或回滚事务。ORACLE中的事务是原子性的,这说明无非两种情况:构成事务的每条语句都会提交(成为永久),或者所有语句都回

6、滚。这种保护还延伸到单个的语句。一条语句要么完全成功,要么这条语句完全回滚。注意,我说的是“语句”回滚。如果一条语句失败,并不会导致先前已经执行的语句自动回滚。它们的工作会保留,必须由你来提交或回滚。这里谈到了语句和事务是原子性的,在具体介绍其含义之前,先来看看我们可以使用哪些事务控制语句。COMMIT:要想使用这个语句的最简形式,只需发出COMMIT。也可以更详细一些,写为COMMITWORK,不过这二者是等价的。COMMIT会结束你的事务,并使得已做的所有修改成为永久性的(持久保存)。COMMIT语句还有一些扩展用于分布式事务中,允许增加一些

7、有意义的注释为COMMIT加标签(对事务加标签),以及强制提交一个可疑的分布式事务。还有一些扩展,可以让你执行一个异步提交,这实际上违反了持久性原则。我们会在后面粗略介绍并说明其使用时机。ROLLBACK:要想使用这个语句的最简形式,只需发出ROLLBACK。同样地,你也可以更锣嗦一些,写为ROLLBACKWORK,但是二者是等价的。回滚会结束事务,并撤销所有未提交的修改。为此要读取存储在回滚段/undo段中的信息,并把数据库块恢复到事务开始之前的状态(后面我将把回滚段/undo段统称为undo段,OracleDatabasel0g及其后版本中都

8、喜欢用这个词)。SAVEPOINTT:SAVEPOINT允许你在事务中创建一个标记点(markedpoint)。一个事务中可以有多个SA

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

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

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