一、事務
1.1、概述
????????事務是數據庫操作的基本單元,它是指邏輯上的一組操作,要么都成功,要么都失敗。典型場景:轉賬,例如Jack給Rose轉賬1000元,轉賬成功:Jack賬戶的余額少1000元,Rose賬戶余額多1000元,轉賬失敗:Jack和Rose賬戶的金額都不變。
1.2、事務的四大特性
原子性:原子性是指事務是一個不可分割的工作單位,事務中的操作要么全部成功,要么全部失敗;
一致性:
????????事務必須使數據庫從一個一致性狀態變換到另外一個一致性狀態。換一種方式理解就是:事務按照預期生效,數據的狀態是預期的狀態,舉例說明:Jack向Rose轉1000元,轉賬前和轉賬后的數據是正確的狀態(兩個賬戶的總金額是不變的),這就叫一致性。如果出現Jack的賬戶余額少了1000元,而Rose的賬戶余額沒有增加1000元,這就沒有達到數據 一 致性;
隔離性:隔離性是指多個用戶并發訪問數據庫時,數據庫為每一個用戶開啟的事務,不能被其他事務的操作數據所干擾,多個并發事務之間要相互隔離;
持久性:持久性是指一個事務一旦被提交,它對數據庫中數據的改變就是永久性的,接下來即使數據庫發生故障也不應該對其有任何影響;
1.3、事務的傳播行為
事務的傳播行為指的是一個事務方法被另一個事務方法調用時,這個事務方法應該如何進行。事務的傳播行為至少發生在兩個事務方法的嵌套調用中才會出現。