简介:
事务(Transaction)是访问并可能更新数据库中各项数据项的一个程序执行单元(unit)。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。
事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。
事务结束有两种,事务中的步骤全部执行时,提交事务。如果其中一个失败,那么将会发生回滚操作,并且撤销之前的所有操作。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。
事务是恢复和并发控制的基本单位。
事务具有四个特性:原子性、一致性、隔离性和持久性。这四个特性通常称为ACID。
原子性(Atomicity)
原子性是指事务是一个不可分割的工作单位,在整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作。
一致性(Consistency)
一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态。也就是说事务前后数据的完整性必须保持一致。
隔离性(lsolation)
隔离性是指一个事务的执行不能有其他事务的干扰,事务的内部操作和使用数据对其他的并发事务是隔离的,互不干扰。
持久性(Durability)
持久性是指一个事务一旦提交,对数据库中数据的改变就是永久性的。此时即使数据库发生故障,修改的数据也不会丢失。接下来其它的操作不会对已经提交了的事务产生影响。
![](https://i-blog.csdnimg.cn/blog_migrate/3a8b17a9821b042f204d7d0a3859333e.jpeg)