天天看點

Database - 資料庫事務ACID

總結

事務管理(ACID),談到事務一般都是以下四點:

原子性(Atomicity)

原子性是指事務是一個不可分割的工作機關,事務中的操作要麼都發生,要麼都不發生。

一緻性(Consistency)

事務前後資料的完整性必須保持一緻。

隔離性(Isolation)

事務的隔離性是多個使用者并發通路資料庫時,資料庫為每一個使用者開啟的事務,不能被其他事務的操作資料所幹擾,多個并發事務之間要互相隔離。

持久性(Durability)

持久性是指一個事務一旦被送出,它對資料庫中資料的改變就是永久性的,接下來即使資料庫發生故障也不應該對其有任何影響

舉個簡單的例子了解以上四點

針對同一個事務

Database - 資料庫事務ACID

這個過程包含兩個步驟

A: 800 - 200 = 600

B: 200 + 200 = 400

原子性表示,這兩個步驟一起成功,或者一起失敗,不能隻發生其中一個動作

針對一個事務操作前與操作後的狀态一緻

Database - 資料庫事務ACID

操作前A:800,B:200

操作後A:600,B:400

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

針對多個使用者同時操作,主要是排除其他事務對本次事務的影響

Database - 資料庫事務ACID

表示事務結束後的資料不随着外界原因導緻資料丢失

如果在操作前(事務還沒有送出)伺服器當機或者斷電,那麼重新開機資料庫以後,資料狀态應該為

A:800,B:200

如果在操作後(事務已經送出)伺服器當機或者斷電,那麼重新開機資料庫以後,資料狀态應該為