欢迎投稿

今日深度:

Oracle 事务处理,oracle事务处理

Oracle 事务处理,oracle事务处理


  事务是又一系列语句构成的逻辑工作单元,通常是为了完成一定业务逻辑而将一条或者多条语句 “封装” 起来,使它们与其他语句之间出现一个逻辑上的便捷,并形成相对独立的一个工作单元。

  一、事务概述

    当使用事务修改多个数据表时,如果在处理的过程中出现了某种错误,例如系统死机或者出现其他等情况,则返回结果是全部数据均没有被保存。

    对事务处理的结果只有两种:

      一种是在事务处理的过程中,如果发生了某种错误则整个事务全部回滚,使所有对数据的修改全部撤销,事务对数据库的操作是单步执行的,当遇到错误时可以随时地回滚;

      另一种是如果没有发生任何错误且每一步的执行都成功,则整个事务全部被提交。

    从而可以看出,有效地使用事务不但可以提高数据的安全性,而且还可以增强数据的处理效率。

    事务包含 4 种重要的属性,被统称为 ACID (原子性、一致性、隔离性和持久性),一个事务必须通过 ACID。

    (1)原子性(Atomic):  事务是一个整体的工作单元,事务对数据库所做的操作要么全部执行,要么全部取消。假如某条语句执行失败,则所有语句全部回滚。

    (2)一致性(ConDemoltent):  事务在完成时,必须使所有的数据都保持一致状态。在相关的数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。如果事务成功,则所有数                                                                   据将变成一个新的状态;如果事务失败,则所有数据将处于开始之前的状态

    (3)隔离性(Isolated):   由事务所作的修改必须与其他事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务                                                          不会查看中间状态的数据。

    (4)持久性(Durability):  当事务提交后,对数据库所做的修改就会永久保存下来。

 

 

  二、操作事务

    Oracle 11g 中的事务是隐式自动开始的,它不需要用户显示地执行开始事务语句。但对于事务的结束处理,则需要用户进行指定的操作,通常在以下情况时, Oracle 认为一个事务结束了。

    (1) 执行 commit 语句提交事务。

    (2) 执行 rollback  语句撤销事务。

    (3) 执行一条数据定义语句,如果 create、drop 和 alter 等语句。如果该语句执行成功,那么 Oracle 系统会自动执行 commit 命令;否则, Oracle 系统会自动执行 rollback 命令。

    (4) 执行一个数据控制语句,比如 grant、revoke 等控制命令,这种操作执行完毕, Oracle 系统会自动执行 commit 命令。

    (5) 正常地断开数据库的连接、正常地退出 SQL*Plus 环境,则 Oracle 系统会自动执行 commit 命令;否则, Oracle 系统会自动执行 rollback 命令。

    总结: Oracle 结束一个是事务归根结底是那么执行 commit 命令,要么执行 rollback 命令。

    1、提交事务(commit语句)

     提交事务是指把堆数据库进行的全部操作持久性地保存到数据库中,这种操作使用 commit 语句来完成。在使用该语句提交事务时,Oracle 系统内部会安装如下顺序进行处理。

    (1)在回滚段内记录当前事务以提交,并且声称一个唯一的系统编号(SCN),并且声称一个唯一的系统编号(SCN),以唯一表示这个事务。

    (2)启动后台的日志文件写入程序(LGWR),将 SGA 区的重做日志缓冲区中的数据和当前事务的 SCN写入重做日志文件中。

    (3) Oracle 服务器开始释放事务处理所使用的系统资源。

    (4) 显示通知,告诉用户事务以及成功提交。

    2、回滚事务(Rollback语句)

      回滚事务是指撤销对数据库进行的全部操作,Oracle 利用回滚段来存储修改前的数据,通过重做日志来记录对数据所做的修改。如果要回滚整个事务,Oracle 系统内部将会执行如下操作:

    (1)使用回滚段中的数据撤销对数据库所做的修改。

    (2)Oracle 后台服务进程释放掉事务所使用的系统资源。

    (3)显示通知,告诉用户事务成功回滚。

     Oracle 不仅允许回滚整个未提交的事务,还允许回滚事务的一部分,可以通过设置“保存点” 来完成。在事务的执行过程中,用户可以通过建立保存点讲一个较长的失误分隔为几部分。这样用户就可以有选择地回滚到某个保                 存点,并且该保存点之后的操作都将被取消。

www.htsjk.Com true http://www.htsjk.com/oracle/24857.html NewsArticle Oracle 事务处理,oracle事务处理 事务是又一系列语句构成的逻辑工作单元,通常是为了完成一定业务逻辑而将一条或者多条语句 封装 起来,使它们与其他语句之间出现一个逻辑上的便捷...
相关文章
    暂无相关文章
评论暂时关闭