事務(wù)的特性:ACID
數(shù)據(jù)庫事務(wù)的四個(gè)基本性質(zhì)(ACID) 
1. 原子性(Atomicity)

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

2. 一致性(Consistency)
在事務(wù)開始以前,數(shù)據(jù)庫處于一致性的狀態(tài),事務(wù)結(jié)束后,數(shù)據(jù)庫也必須處于一致性狀態(tài)。 

拿銀行轉(zhuǎn)賬來說,一致性要求事務(wù)的執(zhí)行不應(yīng)改變A、B 兩個(gè)賬戶的金額總和。如果沒有這種一致性要求,轉(zhuǎn)賬過程中就會發(fā)生錢無中生有,或者不翼而飛的現(xiàn)象。事務(wù)應(yīng)該把數(shù)據(jù)庫從一個(gè)一致性狀態(tài)轉(zhuǎn)換到另外一個(gè)一致性狀態(tài)。 

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

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


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