一、 什么是事务:
事务是在数据库中执行的一系列操作单元,这些操作要么全部成功提交,要么全部失败回滚。
二、事务的特点:
- 原子性(Atomicity):事务是一个不可分割的操作单元,要么全部执行成功,要么全部执行失败。如果事务中的任何一部分操作失败,将回滚到事务开始前的状态,保证数据的完整性。
- 一致性(Consistency):事务执行的结果,须使数据从一个一致性状态到另一个一致性状态;
- 隔离性(Isolation):事务的执行互不干扰,任何事务内部操作对其他事务都是隔离的。并发执行的多个事务之间应该互相隔离,以防止数据争用和不一致的问题。
- 持久性(Durability):一旦事务提交成功,它对数据库的改变应永久保存,即使系统发生故障也不会丢失。数据库系统通过将事务的操作记录写入持久存储介质(如磁盘)来保证数据的持久性。
三、一个例子说明事物
假设有一个银行系统,其中有两个账户:账户A和账户B。现在有一个转账操作需要将一定金额从账户A转移到账户B。
在这个转账操作中,可以将其作为一个事务来处理。事务包含以下步骤:
- 开始事务。
- 从账户A扣除一定金额。
- 向账户B添加同样的金额。
- 提交事务。
如果在整个过程中没有出现错误,即成功执行了步骤 2 和步骤 3,并且事务成功提交,那么账户A和账户B的余额将会根据转账操作进行更新,保持总额不变。
然而,如果在执行过程中出现了错误,比如步骤 3 遇到了问题,无法向账户B添加金额,那么事务将会回滚(Rollback),取消之前的步骤,账户A的金额也不会被扣除。