浅谈数据库的ACID

什么是ACID?

在传统的关系型数据库(RDBMS)中,ACID是四个非常重要的性质。所谓的ACID性质,指的是:

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 一致性(Duration)

要理解数据库的ACID性质,我们首先要明白事务(Transaction)的概念。

事务(Transaction)

所谓的事务,指的就是一个或一些操作组成的序列。对于数据库来说,这组操作序列要么全都执行,要么全都不执行,是数据库的一个不可分割的工作单位。

ACID的意义

原子性

原子性指的是一个事务的操作要么全部被执行,要么全部不被执行。这个事务可以什么都不包含,也可以包含一组复杂的操作。但不论是什么样的事务,在面对系统崩溃,忽然断电,出现错误或者其他异常情形的时候,都不会出现其中的部分操作被执行而另一部分操作未被执行的情况。

一致性

一致性指的是在事务开始前和事务结束后,数据库的完整性约束没有破坏。也就是说,事务不能破坏关系数据的完整性及业务逻辑的一致性。

隔离性

隔离性指的是多个事务之间相互隔离。

一个事务在另一个事务完成之前不会读到其结果。一个事务查看数据状态时,数据要么处于另一事务修改它之前的状态,要么处于另一事务修改它之后的状态,而不会处于中间状态。

如果两个事务并发执行,每一个事务都拥有各自完整的数据空间。就好像两个事务顺序执行一样。如果一个事务需要访问另一个事务正在写的数据,则这个事务需要等到另一个事务完成其操作。

持久性

持久性指的是一旦事务完成,其对数据所进行的修改便持久地存在于数据库中(例如存储在硬盘上)。同样的,事务已经完成的状态也不会再改变。

你可能感兴趣的:(浅谈数据库的ACID)