1. 程式人生 > >資料庫事務的四大特性ACID

資料庫事務的四大特性ACID

資料庫事務是指作為單個邏輯工作單元執行的一系列操作,這些操作要麼全做要麼全不做,是一個不可分割的工作單位。

資料庫事務的四大特性(簡稱ACID)是: 

(1) 原子性(Atomicity)

事務的原子性指的是,事務中包含的程式作為資料庫的邏輯工作單位,它所做的對資料修改操作要麼全部執行,要麼完全不執行。這種特性稱為原子性。

例如銀行取款事務分為2個步驟(1)存摺減款(2)提取現金。不可能存摺減款,卻沒有提取現金。2個步驟必須同時完成或者都不完成。

(2)一致性(Consistency)    

事務的一致性指的是在一個事務執行之前和執行之後資料庫都必須處於一致性狀態。這種特性稱為事務的一致性。假如資料庫的狀態滿足所有的完整性約束,就說該資料庫是一致的。

例如完整性約束a+b=10,一個事務改變了a,那麼b也應隨之改變。

(3)分離性(亦稱獨立性Isolation)

分離性指併發的事務是相互隔離的。即一個事務內部的操作及正在操作的資料必須封鎖起來,不被其它企圖進行修改的事務看到。假如併發交叉執行的事務沒有任何控制,操縱相同的共享物件的多個併發事務的執行可能引起異常情況。

(4)永續性(Durability)

永續性意味著當系統或介質發生故障時,確保已提交事務的更新不能丟失。即一旦一個事務提交,DBMS保證它對資料庫中資料的改變應該是永久性的,即對已提交事務的更新能恢復。永續性通過資料庫備份和恢復來保證。