一、概念
資料庫事務中的四大特性(acid):
a:原子性(atomicity),乙個事務(transaction)中的所有操作,要麼全部完成,要麼全部不完成,不會結束在中間某個環節。
事務在執行過程中發生錯誤,會被回滾(rollback)到事務開始前的狀態,就像這個事務從未執行過一樣。
就像你買東西要麼交錢收貨一起都執行,要麼發不出貨,就退錢。
c:一致性(consistency),一致性是指事務使得系統從乙個一致的狀態轉換到另乙個一致狀態。
比如資料庫崩潰後重啟,此時資料庫處於不一致的狀態,此時資料庫必須做crash recovery操作,大致步驟如下:
a、通過日誌redo(重演所有執行成功但是未寫入到磁碟的操作)
b、再對到資料庫崩潰前沒有執行完成的事務進行undo(撤銷所有執行了一部分,但是有一部份還沒有執行完成,且尚未提交的操作,保證事務的原子性)
c、crash recovery結束後,資料庫恢復了一致性,可以繼續工作
i:隔離性(isolation),指的是在併發環境中,當不同的事務同時操縱相同的資料時,每個事務都有各自的完整資料空間。
由併發事務所做的修改必須與任何其他併發事務所做的修改隔離。事務檢視資料更新時,資料所處的狀態要麼是另一事務修改它之前的狀態,要麼是另一事務修改它之後的狀態,事務不會檢視到中間狀態的資料。
打個比方,你買東西這個事情,是不影響其他人的。
d:永續性(durability),指的是只要事務成功結束,它對資料庫所做的更新就必須永久儲存下來。
即使發生系統崩潰,重新啟動資料庫系統後,資料庫還能恢復到事務成功結束時的狀態。
打個比方,你買東西的時候需要記錄在賬本上,即使老闆忘記了那也有據可查。
二、理解
1、原子性並不能完全保證一致性。在多個事務並行進行的情況下,即使保證了每乙個事務的原子性,仍然可能導致資料不一致的結果。
例如,事務1需要將100元轉入帳號a:先讀取帳號a的值,然後在這個值上加上100。但是,在這兩個操作之間,另乙個事務2修改了帳號a的值,為它增加了100元。那麼最後的結果應該是a增加了200元。但事實上,%20事務1最終完成後,帳號a只增加了100元,因為事務2的修改結果被事務1覆蓋掉了。
資料庫事務四大特性(ACID)
1 原子性 atomicity 原子性是指乙個事物內所有操作共同組成乙個原子包,要麼全部成功,要麼全部失敗回滾。也就是說事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何影響。2 一致性 consistency 資料庫事物的一致性就規定了事物提交前後,永遠只可能存在事物提交...
資料庫中事務的四大特性(ACID)
原子性 atomicity 原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾,因此事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何影響。一致性 consistency 一致性是指事務必須使資料庫從乙個一致性狀態變換到另乙個一致性狀態,也就是說乙個事務執行之前和執...
資料庫中事務的四大特性(ACID)
如果乙個資料庫聲稱支援事務的操作,那麼該資料庫必須要具備以下四個特性 原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾,這和前面兩篇部落格介紹事務的功能是一樣的概念,因此事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何影響。一致性是指事務必須使資料庫從乙個一致性...