事务管理与并发控制.ppt事务处理与并发控制单世民概述事务是数据库系统为保证数据一致性提出的。在具有较为完整功能的数据库系统中,事务管理都是必须支持的特性。同时,为了充分地利用数据库资源,数据库系统需要允许用户同时访问数据库资源,即进行所谓的并发操作。然而,并发操作会带来一定的数据不一致性,为避免数据不一致性对数据库系统的破坏,需要处理好并发性问题。事务事务是数据库区别于文件系统的特性之一。所谓事务,就是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。事务的特征原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)数据库中引入数据库的主要目的就是:事务会把数据库从一种一致状态转变为另一种一致状态。MITMITWORK,MIT会结束你的事务,并使得已做的所有修改成为永久性的(持久保存)。ROLLBACK完整形式是ROLLBACKWORK,二者等价。ROLLBACK会结束你的事务,并撤销正在进行的所有未提交的修改,把数据库块恢复到事务开始之前的状态。事务控制语句SAVEPOINTSAVEPOINT允许你在事务中创建一个标记点。一个事务中可以有多个SAVEPOINT。ROLLBACKTO<SAVEPOINT>此语句和SAVEPOINT命令配合使用,可以把事务回滚到标记点,而不回滚在此标记点之前的任何工作。SETTRANSACTION此语句允许你设置不同的事务属性,比如事务的隔离级别以及事务是只读的还是可读写的。事务控制语句Oracle中的一个重要概念就是没有“开始事务处理”的语句。用户不能显式地开始一个事务处理。事务处理会隐式地开始与第一条修改数据的语句,或者一些要求事务处理的场合。MIT或ROLLBACK,就会显式地结束一个事务。ROLLBACKTOSAVEPOINT命令不会结束事务!事务控制语句作为开发人员,mit或rollback显式终止用户的事务处理,否则用户正在使用的工具或环境就将为用户选择其中的一种方式。例如,如果用户没有进行提交或回滚就退出了用户的SQL*Plus会话,那么SQL*Plus就会认为用户希望提交用户工作。无论用户是否想要提交工作,系统都会为用户进行提交。无论事务处理的规模如何,提交都是非常快速的操作。事务的特征-原子性Oracle中事务的执行存在两种情况:构成事务的每条语句都会提交所有语句都回滚Oracle的这种保护可以延伸到单个的语句,即一个语句要么完全成功,要么这条语句完全回滚。事务原子性的级别语句级原子性过程级原子性事务级原子性事务的特征-原子性语句级原子性语句所导致的任何副作用(例如触发器操作)都会被认为是该语句的一部分。为了得到语句级原子性,Oracle隐式地在每个数据库调用外面包了一个SAVEPOINT。形式化表现如下例:SAVEPOINTstatement1; deletefromcardwherecid=2;Iferrorthenrollbacktostatement1;SAVEPOINTstatement2; deletefromcardwherecid=8;Iferrorthenrollbacktostatement2;事务的特征-原子性过程级原子性Oracle把客户提交的代码块认为是“语句”。特别的,PL/SQL匿名块也会被当作是语句。事务级原子性
事务管理与并发控制 来自淘豆网www.taodocs.com转载请标明出处.