数据库事务( transaction) 是指作为一个逻辑工作单元执行的一系列数据库操作,这些操作要么全部成功,要么全部失败,是一个不可分割的工作单元。
事务是在事务开始和事务结束之间执行的一系列数据库操作。
事务的目的是确保数据库操作的一致性和完整性,以及提供对并发访问的隔离性和恢复能力。
事务具有四个核心特性,也被称为ACID特性:
原子性(Atomicity):事务中的操作要么全部成功,要么全部失败,不存在部分成功的情况。如果事务失败,系统会回滚到事务开始前的状态,保证数据的一致性。
一致性(Consistency):事务执行前后,数据库必须保持一致性状态。这意味着事务必须使数据库从一个一致性状态变换到另一个一致性状态。如果事务成功提交,系统中的数据将处于有效状态;如果事务失败,系统中的数据将回滚到事务开始前的状态。
例如,在转账操作中,转账前后的账户余额总和应该保持不变。
隔离性(Isolation):并发执行的多个事务之间应该相互隔离,互不干扰。
每个事务都应该感知不到其他事务的存在,以避免数据的不一致和并发访问的问题。隔离级别可以控制事务之间的隔离程度。
持久性(Durability):一旦事务提交成功,对数据库的修改应该永久保存,即使系统发生故障或重启。
系统应该能够恢复到事务提交后的状态,保证数据的持久性。
这四个特性被称为ACID特性,是保证数据库事务正确执行的基本要素。
通过这些特性,可以确保数据库操作的一致性、完整性和可靠性。