IT忍者神龜之事務ACID理解

事務概念

概念:事務(Transaction),一般是指要做的或所做的事情。在計算機術語中是指訪問並可能更新數據庫中各種數據項的一個程序執行單元(unit)。
本人WX:kotlinvip

事務的基本要素(ACID)

1、原子性(Atomicity):事務開始後所有操作,要麼全部做完,要麼全部不做,不可能停滯在中間環節。事務執行過程中出錯,會回滾到事務開始前的狀態,所有的操作就像沒有發生一樣。也就是說事務是一個不可分割的整體,就像化學中學過的原子,是物質構成的基本單位。

2、一致性(Consistency):事務開始前和結束後,數據庫的完整性約束沒有被破壞 。比如A向B轉賬,不可能A扣了錢,B卻沒收到。

3、隔離性(Isolation):同一時間,只允許一個事務請求同一數據,不同的事務之間彼此沒有任何干擾。比如A正在從一張銀行卡中取錢,在A取錢的過程結束前,B不能向這張卡轉賬。

4、持久性(Durability):事務完成後,事務對數據庫的所有更新將被保存到數據庫,不能回滾
場景舉例:

銀行轉賬業務圖例解釋ACID

原子性

根據業務需求怎麼才能滿足事務的ACID 請往下看
在這裏插入圖片描述

針對同一個事務流程這個過程包含以下流程:
1:張三賬戶減去 800
2:李四賬戶加上200

原子性表示,這兩個步驟一起成功,或者一起失敗,不能只發生其中一個動作這樣才能滿足原子性。

一致性

在這裏插入圖片描述
操作前張三:1000,B:200
操作後張三:200,B:1000

一致性表示事務完成後,符合邏輯運算

隔離性

在這裏插入圖片描述
上面如圖所示:兩個用戶同時轉賬進行操作
在這裏插入圖片描述
說明:同一時間,只允許一個事務請求同一數據,不同的事務之間彼此沒有任何干擾。比如:張三轉賬給李四業務結束後才能去執行王五轉賬李四的業務反之亦然

持久性

在這裏插入圖片描述
在這裏插入圖片描述
持久性:表示事務結束後的數據不隨着外界原因導致數據丟失
操作前A:1000,B:200
操作後A:200,B:1000
如果在操作前(事務還沒有提交)服務器宕機或者斷電,那麼重啓數據庫以後,數據狀態應該爲
A:1000,B:200
如果在操作後(事務已經提交)服務器宕機或者斷電,那麼重啓數據庫以後,數據狀態應該爲
A:200,B:1000

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章