oracle 事务处理机制探究

oracle 事务处理机制探究

ID:5984308

大小:28.50 KB

页数:7页

时间:2017-12-30

oracle 事务处理机制探究_第1页
oracle 事务处理机制探究_第2页
oracle 事务处理机制探究_第3页
oracle 事务处理机制探究_第4页
oracle 事务处理机制探究_第5页
资源描述:

《oracle 事务处理机制探究》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、ORACLE事务处理机制探究  摘要:在ORACLE数据库中,为了确保数据的完整性和一致性,提供了事务处理机制。该文详细阐述了事务处理的运行机制和实现方法,最后用实例说明事务处理的整个过程,为程序员提供了一个用事务处理来保证数据正确统一的方法。关键词:事务处理;提交;回滚;保存点中图分类号:TP311文献标识码:A文章编号:1009-3044(2013)15-3466-02在ORACLE的PL/SQL程序设计过程中,经常会使用DML语句来操作数据库,怎么才能确保数据库不会因为意外或者误操作损坏数据呢,以员工管理系统为例,其中有一张部门表和一张员工表,当我们删除

2、某个部门时,应该先删除这个部门所有的员工,如果员工表没有删除成功而部门表中成功删除,就破坏了数据,造成数据库统计错误。同样的道理,添加员工时,如果这个员工的部门不存在而添加成功,也会造成统计错误,使数据库的数据变得混乱,影响此系统的正常运行,ORACLE为了确保数据的完整性和一致性,所以引入了事务处理的机制。1事务处理详述7是由多个SQL语句组合成一起组成的逻辑工作单元,它负责执行一系列对数据的操作。这些对数据库的所有操作如果全部成功完成,则永久更新,否则,只要有一条SQL语句执行失败,就不会更新当前数据,而会回滚到执行前的状态。这样,就能使数据库保持完整性和

3、一致性,不会产生错误的数据。事务处理所组成的逻辑工作单元为了保证数据的一致性,那么其中每一个逻辑工作单位就必须要满足ACID属性,即原子性、一致性、隔离性和持久性。1.1原子性原子性其实就是对事务的一个完整性操作,就好比一段顺序执行的程序,要么全部执行完成,要么不执行。如果执行到中途遇到错误,则停止并且回到执行前的状态。例如在个人帐户管理中,A帐户支出500元给B帐户,那么A帐户就应该减少500元,B帐户就应该增加500元,这个操作要么全部执行成功,要么都不成功,这样来确保这个事务是一个原子工作单位。1.2一致性事务的一致性是指在事务完成的时候,对数据的相关操

4、作在受影响的数据表的数据都会同时进行更新,保持数据的一致状态。就如在刚才的例子当中,A帐户和B帐户在数据库中每个表中的状态都会同时发生改变,来保持数据的完整性。1.3隔离性7不同事务之间的运行是互不干扰的,是完全隔离执行的,一个事务不会看到另一个事务发生的状态,也看不到中间状态的数据。事务查看到的只能是数据修改前或或务执行成功更新后的状态。就如刚才的事例,要么看到A帐户到B帐户支出前的数据或者成功支出后的数据,对于A帐户支出后,B帐户没有执行完成的状态是看不到的。这就是事务的隔离性。1.4持久性事务的持久性是指如果一个事务已经成功提交后,数据库中的数据就会成功

5、更新,这种更新会永久的保存,即使系统遇到故障甚至机器崩溃,也不会影响数据库的状态。2提交事务(COMMIT)在事务处理过程中,使用COMMIT语句会提交并结束一个事务处理。当执行COMMIT语句后,数据库的事务处理主要做了两项工作:第一是将所有对数据库的操作永久性的写入数据库,其他的用户可以立即看到对数据库所做的所有变化;第二是对于本事务的所有锁定以及事务所占用的所有资源都会被自动的释放出来,并且将此事务标记为已完成。3回滚事务(ROLLBACK)7事务的回滚就是取消已执行的操作,并且回到操作前的状态。例如在前面的例子中,A帐户成功执行了支出500元的操作,但

6、遇了一些错误或问题,B帐户并没有增加金额,这是回滚就会撤消刚才的操作,回到A帐户支出前的数据,并且终止事务的执行。事务的回滚一般也是有两种情况:第一是数据的误删除或误更改来使用回滚撤消;第二是事务程序中设置的异常被触发,使用回滚恢复到数据初始状态。4事务的保存点(SAVEPOINT)事务的保存点主要用于回滚部分事务。因为在一个很大的PL/SQL程序设计过程中,如果执行了很多的语句,使用回滚是非常占用时间和资源的。保存点可以在一个很大的程序中将一个事务分成很多语句块,将每一块设置为一个保存点,一旦程序发生错误,就会回滚到最近的保存点。在不可能发生错误的情况下,保

7、存点很有用。在很少出现错误的情况下使用保存点回滚部分事务,比让每个事务在更新之前测试更新的有效性更为有效。更新和回滚操作代价很大,因此只有在遇到错误的可能性很小,而且预先检查更新的有效性的代价相对很高的情况下,使用保存点才会非常有效。5设置事务属性(SETTRANSACTION)SETTRANSACTION主要是用来设置一个事务的只读或只写的属性,建立隔离的级别以及为当前的事务分配一个特写的回滚段。它必须是事务处理中的第一条语句,而且只能出现一次。6事务处理的实例解析7下面的PL/SQL程序演示了事务的提交、回滚和保存点的实际使用方法。程序中使用了一个疗养院信

8、息管理系统的科室表(DEPT)和疗养员

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

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

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