事務的特性:ACID
數據庫事務的四個基本性質(ACID) 
1. 原子性(Atomicity)

事務的原子性是指事務中包含的所有操作要么全做,要么全不做(all or none)。 

2. 一致性(Consistency)
在事務開始以前,數據庫處于一致性的狀態,事務結束后,數據庫也必須處于一致性狀態。 

拿銀行轉賬來說,一致性要求事務的執行不應改變A、B 兩個賬戶的金額總和。如果沒有這種一致性要求,轉賬過程中就會發生錢無中生有,或者不翼而飛的現象。事務應該把數據庫從一個一致性狀態轉換到另外一個一致性狀態。 

3. 隔離性(Isolation)
事務隔離性要求系統必須保證事務不受其他并發執行的事務的影響,也即要達到這樣一種效果:對于任何一對事務T1 和 T2,在事務 T1 看來,T2 要么在 T1 開始之前已經結束,要么在 T1 完成之后才開始執行。這樣,每個事務都感覺不到系統中有其他事務在并發地執行。 

4. 持久性(Durability)
一個事務一旦成功完成,它對數據庫的改變必須是永久的,即便是在系統遇到故障的情況下也不會丟失。數據的重要性決定了事務持久性的重要性。 


事務并發可能存在如下幾個問題:
A)第一類丟失更新(Lost Update):這種問題只存在于不支持事務的數據庫系統中。
B)臟讀(Dirty Read):讀了其它事務沒有提交的事務數據。
C)不可重復讀(non-repeatable read):在同一個事務前后讀到的事務數據不一致。
D)第二類丟失更新(second update problem)【不可重復讀的特殊情況】
E)幻讀(phantom read):重點說的是插入、刪除操作,在讀的過程中,另一個事務可能在插入或者刪除操作。
其中B、C、E三種最為重要。