淺談數據庫的ACID

什么是ACID?

在傳統的關系型數據庫(RDBMS)中,ACID是四個非常重要的性質。所謂的ACID性質,指的是:

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

要理解數據庫的ACID性質,我們首先要明白事務(Transaction)的概念。

事務(Transaction)

所謂的事務,指的就是一個或一些操作組成的序列。對于數據庫來說,這組操作序列要么全都執行,要么全都不執行,是數據庫的一個不可分割的工作單位。

ACID的意義

原子性

原子性指的是一個事務的操作要么全部被執行,要么全部不被執行。這個事務可以什么都不包含,也可以包含一組復雜的操作。但不論是什么樣的事務,在面對系統崩潰,忽然斷電,出現錯誤或者其他異常情形的時候,都不會出現其中的部分操作被執行而另一部分操作未被執行的情況。

一致性

一致性指的是在事務開始前和事務結束后,數據庫的完整性約束沒有破壞。也就是說,事務不能破壞關系數據的完整性及業務邏輯的一致性。

隔離性

隔離性指的是多個事務之間相互隔離。

一個事務在另一個事務完成之前不會讀到其結果。一個事務查看數據狀態時,數據要么處于另一事務修改它之前的狀態,要么處于另一事務修改它之后的狀態,而不會處于中間狀態。

如果兩個事務并發執行,每一個事務都擁有各自完整的數據空間。就好像兩個事務順序執行一樣。如果一個事務需要訪問另一個事務正在寫的數據,則這個事務需要等到另一個事務完成其操作。

持久性

持久性指的是一旦事務完成,其對數據所進行的修改便持久地存在于數據庫中(例如存儲在硬盤上)。同樣的,事務已經完成的狀態也不會再改變。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容