特性

  • Atomicity(原子性)

    一个事务必须被视为一个不可分割的最小工作单位,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。

  • Consistency(一致性)

    数据库总是从一个一致性状态转换到另一个一致性状态,事务执行之前和执行之后都必须处于一致性状态。

  • Isolation(隔离性)

    通常来说,一个事务所做的修改在最终提交之前,对其它事务是不可见的。关于事务的隔离性,数据库提供了多种隔离级别。

  • Durability(持久性)

    一旦事务提交,则其所做的修改就会永久保存到数据库中。即便是数据库系统遇到故障的情况下也不会丢失。

并发事务的问题

  • 脏读

一个事务正在对一条记录进行修改,在这个事务完成并提交前, 这条记录的数据就处于不一致状态。这时, 另一个事务也来读取同一条记录,如果不加控制,第二个事务读取了这些“脏”数据,并据此做进一步的处理,就会产生未提交的数据依赖关系。