資料庫事務正確執行的四個基本要素

chenfeng發表於2016-09-26
ACID是資料庫事務正確執行的四個基本要素的縮寫,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性(Durability)。一個支援事務(Transaction)的資料庫系統,必需要具有ACID特性,否則在事務過程(Transaction processing)當中無法保證資料的正確性,交易過程極可能達不到交易方的要求。

原子性(Atomicity)
– 事務的所有操作,要麼全部完成,要麼全部不完成,不會結束在某個中間環節。
 一致性(Consistency)
– 事務開始之前和事務結束之後,資料庫的完整性限制未被破壞。
隔離性(Isolation)
– 當多個事務併發訪問資料庫中的同一資料時,所表現出來的相互關係。
永續性(Durability)
– 事務完成之後,事務所做的修改持久化儲存,不會丟失。


1.原子性 
整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。

2. 一致性 
在事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。

3. 隔離性 
隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。如果有兩個事務,執行在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。
這種屬性有時稱為序列化,為了防止事務操作間的混淆,必須序列化或序列化請求,使得在同一時間僅有一個請求用於同一資料。

4. 永續性 
在事務完成以後,該事務所對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。
由於一項操作通常會包含許多子操作,而這些子操作可能會因為硬體的損壞或其他因素產生問題,要正確實現ACID並不容易。ACID建議資料庫將所有需要更新以及修改的資料一次操作完畢,但實際上並不可行。
目前主要有兩種方式實現ACID:第一種是Write ahead logging,也就是日誌式的方式。第二種是Shadow paging。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2125599/,如需轉載,請註明出處,否則將追究法律責任。

相關文章