事務(wù)是并發(fā)控制的單位,是我們自己定義的一個操作序列。這些操作要么都做,要么都不做,是一個分
割的工作單位。通過事務(wù),能將邏輯相關(guān)的一組操作綁定在一起,以便服務(wù)器保持?jǐn)?shù)據(jù)的完整性。
如:銀行轉(zhuǎn)賬,A用戶賬戶扣完錢后出現(xiàn)異常,導(dǎo)致B用戶未能收到錢,此時不能正常開啟事務(wù),數(shù)據(jù)庫中
數(shù)據(jù)不會發(fā)現(xiàn)變化,AB賬號余額不變。
事務(wù)通常是以BEGIN TRANSACTION開始,以COMMIT或ROLLBACK結(jié)束。
COMMIT表示提交,即提交事務(wù)的所有操作。具體地說就是將事務(wù)中所有對數(shù)據(jù)庫的更新寫回到磁盤上的物理數(shù)據(jù)庫中去,事務(wù)正常結(jié)束。
??ROLLBACK表示回滾,即在事務(wù)運行的過程中發(fā)生了某種故障,事務(wù)不能繼續(xù)進行,系統(tǒng)將事務(wù)中對數(shù)據(jù)庫的所有以完成的操作全部撤消,滾回到事務(wù)開始的狀態(tài)。
事務(wù)的四大特性
1、原子性
事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么全做,要么全不做。
2、一致性
事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。一致性與原子性是密切相關(guān)
的。一般來說修改、添加、刪除操作是需要開啟事務(wù)的,因為它們改變了數(shù)據(jù)庫,而查詢是不需要開啟事務(wù)
的,因為對數(shù)據(jù)庫沒影響。
3、隔離性
一個事務(wù)的執(zhí)行不能被其他事務(wù)干擾。
4、持續(xù)性/永久性
一個事務(wù)一旦提交,它對數(shù)據(jù)庫中數(shù)據(jù)的改變就應(yīng)該是永久性的。事務(wù)對數(shù)據(jù)庫的改動其實就是將游離
態(tài)與瞬時態(tài)的數(shù)據(jù)庫變成持久態(tài)的數(shù)據(jù)存入數(shù)據(jù)庫。