事务状态
考试要求: 掌握     
知识路径:  > 数据库技术  > 事务管理  > 事务的基本概念  > 事务的基本概念  > 事务的状态


 
       事务是数据库的基本执行单元。事务的执行情况有两种可能:一种情况是事务成功执行,数据库进入一个新的一致状态;另一种情况是事务因为故障或其他原因未能够成功执行,但已经对数据库做了修改。未能成功执行的事务极有可能导致数据库处于不一致状态,这时候就需要对未能成功执行的事务(也称中止事务)造成的变更进行撤销操作(也称回滚ROLLBACK)。如果中止事务造成的变更已经撤销,就称事务已回滚。
       成功完成的事务称为已提交事务。对数据库进行更新的已提交的任务使数据库进入一个新的状态,即使出现系统故障,这个状态必须保持。另一方面,成功提交的事务不能通过中止来撤销而造成的影响,必须采用执行一个称为“补偿事务”的方法来撤销。
       事务的五种状态
       为了更明确地描述事务的执行过程,一般将事务的执行状态分为五种,事务必须处于这五种状态之一。事务各种状态含义说明如下:
       (1)活动状态:事务的初始状态,事务执行时处于这个状态。
       (2)部分提交状态:当操作序列的最后一条语句自动执行后,事务处于部分提交状态。这时,事务虽然已经完全执行,但由于实际输出可能还临时驻留在内存中,在事务成功完成前仍有可能出现硬件故障,事务仍有可能不得不中止。因此,部分提交状态并不等于事务成功执行。
       (3)失败状态:由于硬件或逻辑等错误,使得事务不能继续正常执行,事务就进入了失败状态。处于失败状态的事务必须进行回滚(ROLLBACK)。这样,事务就进入了中止状态。
       (4)中止状态:事务回滚并且数据库恢复到事务开始执行前的状态。
       (5)提交状态:当事务成功完成后,称事务处于提交状态。只有事务处于提交状态后,才能说事务已经提交。
       事务的状态转换
       事务的状态转换如下图所示。
       
       事务的状态转换图
       事务状态转换操作命令如下表所示,可以通过在事务中执行相关操作,实现事务状态的转换。
       
       事务状态转换操作
       需要说明的是,事务进入中止状态后,系统一般有如下两种选择:
       (1)重启事务。当事务中止的原因是软、硬件错误而不是事务内部逻辑错误时,一般采用重启事务的方法。重启事务可以被看成一个新事务。
       (2)杀死事务。这样做通常是因为事务中止的原因是事务内部的逻辑错误,或者是输入错误,也可能是所需数据在数据库中没找到等原因。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有