事務:乙個操作,乙個要執行sql語句,要麼執行,要麼不執行,是乙個不可分割的工作單位。
有如下特性:
a:原子性(atomicity)
c:一致性(consistency)
i:隔離性(isolation)
d:永續性(durability)
先理解資料庫的一致性
參考這篇部落格
考慮如下場景:
公司給員工發工資
1、財務處確認給你發的工資是多少
2、確認公司賬戶有多少資金
3、像銀行發起轉賬申請,銀行扣除學校財務卡上的指定金額
4、銀行向員工工資卡中打入指定金額
5、銀行匯報雙方交易完成
如果執行第3步的時候,突然大斷電,整個電力系統進入癱瘓。待電力系統恢復之後,銀行並不會執行4,5,甚至連1,2,3的操作記錄都對視。此時出現如下問題
1、學校認為,工資已經發出
2、a老師認為,學校還沒有發工資
3、銀行認為,從來就沒有發生過轉賬的事情
其實整個過程可以用乙個詞來描述:資料庫中的資料產生了「不一致性」,即在轉錢的前後要保證錢的總量要一致。
還有要保證資料庫的內部資料結構(如 b 樹索引或雙向鍊錶)都必須是正確的
原子性:因為要滿足要麼執行,要麼不執行,所以事務要麼執行,要麼不執行,是不可再分割的工作單元。
隔離性:多個事務併發訪問時,事務之間是隔離的。
具體的有幾種事務隔離級別,請看資料庫複習之事務隔離級別
有的隔離併發事務所做的修改要和其他併發事務隔離。這是最基本的,如果這都不能保證,銀行存錢就不准了。
乙個事務修改資料,另乙個事務檢視資料時只能檢視到修改前的資料或者修改後的資料,不能看到中間狀態的資料。不然就會讀到髒資料。
完全的隔離就要求序列化,這樣會嚴重影響效能。
永續性:事務一旦提交,對資料庫中資料的改變是永久性的。
資料庫事務ACID
1.原子性 atomicity 原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。2.一致性 consistency 事務必須使資料庫從乙個一致性狀態變換到另外乙個一致性狀態。3.隔離性 isolation 事務的隔離性是指乙個事務的執行不能被其他事務干擾,即乙個事務內部...
資料庫事務 ACID
資料庫事務 acid 1.原子性 atomicity 乙個事務必須被視為乙個不可分割的最小工作單元,整個事務中的所有操作要麼全部提交成功,要麼全部失敗回滾。對於乙個事務來說,不可能只執行其中的一部分操作,這就是事物的原子性。2.一致性 consistency 資料庫總是從乙個一致性的狀態轉換到另外乙...
資料庫事務 ACID
acid,指資料庫事務正確執行的四個基本要素的縮寫。包含 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 乙個支援事務 transaction 的資料庫,必須要具有這四種特性,否則在事務過程 transaction process...