什麼是事務,事務有哪些特性
事務是區別於數據庫和文件系統的重要特性之一,事務會把數據庫從一種一致狀態轉換爲另外一種一致性狀態,可以確保要麼沒做,要麼全都做了,嚴格滿足ACID特性
什麼是ACID 以及如何實現ACID?
1、原子性
概念解釋
最常見的是轉賬業務,例如A 給B轉100塊,
第一步A賬號減100,
第二步B賬號加100。
原子性要保證的就是這倆步要麼都做,要麼都不做。
如何實現
可以通過undo log實現
2、一致性
事務前後要保證完整性約束沒有破壞,這很好理解, 不能說我修改了數據後,數據庫的框架約束都變了,還有王法麼?還有法律麼?完整性約束就是數據完整性約束是在表和字段上強制執行的數據檢驗規則,爲了防止不規範的數據進入數據庫。詳細點擊完整性約束
3、隔離性(併發控制)
其實就是線程安全性 可以通過加鎖來解決這個問題
如果無法保證隔離性會怎麼樣?
OK,假設A賬戶有200元,B賬戶0元。A賬戶往B賬戶轉賬兩次,金額爲50元,分別在兩個事務中執行。如果無法保證隔離性,會出現下面的情形
如圖所示,如果不保證隔離性,A扣款兩次,而B只加款一次,憑空消失了50元,依然出現了數據不一致的情形!
4、持久性
事務提交後,數據可以一直保留下來
參考
https://kuqin.com/article/14734.html