你用支付寶去去超市買東西,100塊錢轉給超市,其實這是兩步:
- 第一步,在支付寶數據庫中你的賬戶減去100;
- 第二步,在超市的支付寶賬戶上加上100元,交易完成;
但是如果第一步完成了,還沒執行第二步的時候,停電了會發生什么呢?
會發生,你的賬戶減少了100塊,超市的賬戶金額沒變,這不就出現問題了,不得打架了嗎?
為了解決這個數據一致性問題,數據庫事務應運而生。
數據庫事務是指一個邏輯單元執行的一系列操作,一個邏輯工作單元必須有四個屬性,稱為 ACID(原子性、一致性、隔離性和持久性)屬性
-
原子性(Atomicity):事務作為一個整體被執行,包含在其中的對數據庫的操作要么全部被執行,要么都不執行。
-
一致性(Consistency):事務應確保數據庫的狀態從一個一致狀態轉變為另一個一致狀態。 一致狀態的含義是數據庫中的數據應滿足完整性約束。
-
隔離性(Isolation):多個事務並發執行時,一個事務的執行不應影響其他事務的執行。
-
持久性(Durability):已被提交的事務對數據庫的修改應該永久保存在數據庫中