数据库事务(Transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。
在数据库系统中,事务是工作的离散单位,它可以是修改一个用户的账户余额,也可以是库存项的写操作。在单用户、单数据库环境下执行事务比较简单,但在分布式环境下,维护多个数据库的完整性就比较复杂。大多数联机事务处理系统是在大型计算机上实现的,这是由于它的操作复杂,需要快速的输入/输出和完善的管理。如果一个事务在多个场地进行修改,那就需要管理机制来防止数据重写并提供同步。另外还需要具有返回失效事务的能力,提供安全保障和提供数据恢复能力。
数据库事务是一个逻辑上的划分,有的时候并不是很明显,它可以是一个操作步骤也可以是多个操作步骤。我们可以这样理解数据库事物:对数据库所做的一系列修改,在修改过程中,暂时不写入数据库,而是缓存起来,用户在自己的终端可以预览变化,直到全部修改完成,并经过检查确认无误后,一次性提交并写入数据库,在提交之前,必要的话所做的修改都可以取消。提交之后,就不能撤销,提交成功后其他用户才可以通过查询浏览数据的变化。
一个数据库事务通常包含了一个序列的对数据库的读/写操作。它的存在包含有以下两个目的:
- 为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
- 当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。
资料来源:
余绮芬 王守平 沈宗惠.英汉计算机网络与通信术语浅解:人民邮电出版社,2000年03月第1版.
高继民主编.Oracle数据库SQL和PL/SQL实例教程:西安电子科技大学出版社,2004年06月第1版.
Jim Gray, Andreas Reuter 著,孟小峰、于戈 等译. 《事务处理:概念与技术》(Transaction Prossessing: Concepts and Techniques). 机械工业出版社. 2004年. ISBN 9787111126416.