資料庫事務 ACID

2021-08-20 03:48:13 字數 941 閱讀 5417

事務:乙個操作,乙個要執行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...