事務是單個邏輯工作單元,要麼全部做完,要麼全部不做,事務由兩種狀態,乙個提交乙個回滾。
事務由四個特性acid,原子性、一致性、隔離性和永遠性。
(1) 原子性
事務的原子性指的是,事務中包含的程式作為資料庫的邏輯工作單位,它所做的對資料修改操作要麼全部執行,要麼完全不執行。這種特性稱為原子性。
事務的原子性要求,如果把乙個事務可看作是乙個程式,它要麼完整的被執行,要麼完全不執行。就是說事務的操縱序列或者完全應用到資料庫或者完全不影響資料庫。這種特性稱為原子性。
假如使用者在乙個事務內完成了對資料庫的更新,這時所有的更新對外部世界必須是可見的,或者完全沒有更新。前者稱事務已提交,後者稱事務撤消(或流產)。dbms必須確保由成功提交的事務完成的所有操縱在資料庫內有完全的反映,而失敗的事務對資料庫完全沒有影響。
(2) 一致性
事務的一致性指的是在乙個事務執行之前和執行之後資料庫都必須處於一致性狀態。這種特性稱為事務的一致性。假如資料庫的狀態滿足所有的完整性約束,就說該資料庫是一致的。
一致性處理資料庫中對所有語義約束的保護。假如資料庫的狀態滿足所有的完整性約束,就說該資料庫是一致的。例如,當資料庫處於一致性狀態s1時,對資料庫執行乙個事務,在事務執行期間假定資料庫的狀態是不一致的,當事務執行結束時,資料庫處在一致性狀態s2。
(3) 分離性
分離性指併發的事務是相互隔離的。即乙個事務內部的操作及正在操作的資料必須封鎖起來,不被其它企圖進行修改的事務看到。
分離性是dbms針對併發事務間的衝突提供的安全保證。dbms可以通過加鎖在併發執行的事務間提供不同級別的分離。假如併發交叉執行的事務沒有任何控制,操縱相同的共享物件的多個併發事務的執行可能引起異常情況。
dbms可以在併發執行的事務間提供不同級別的分離。分離的級別和併發事務的吞吐量之間存在反比關係。較多事務的可分離性可能會帶來較高的衝突和較多的事務流產。流產的事務要消耗資源,這些資源必須要重新被訪問。因此,確保高分離級別的dbms需要更多的開銷。
(4)永續性
永續性意味著當系統或介質發生故障時,確保已提交事務的更新不能丟失。即一旦乙個事務提交,dbms保證它對資料庫中資料的改變應該是永久性的,耐得住任何系統故障。永續性通過資料庫備份和恢復來保證。
永續性意味著當系統或介質發生故障時,確保已提交事務的更新不能丟失。即對已提交事務的更新能恢復。一旦乙個事務被提交,dbms必須保證提供適當的冗餘,使其耐得住系統的故障。所以,永續性主要在於dbms的恢復效能。
事務及其特性ACID
事務是一組單元化的操作,這組操作可以保證要麼全部成功,要麼全部失敗 只要有乙個失敗的操作,就會把其他已經成功的操作回滾 一般所說的資料庫事務,它是訪問並可能更新資料庫中各種資料項的乙個程式執行單元,由乙個有限的資料庫操作序列構成。當事務被提交給了dbms 資料庫管理系統 則dbms 資料庫管理系統 ...
SQL及其事務 特性
sql structured query language 結構化查詢語言 sql是在關係型資料庫上執行資料操作,檢索及維護所使用的標準語言,可以用來查詢資料,操縱資料,定義資料,控制資料 所有資料庫都是用相同或相似的語言 mysql中的事務 資料庫中執行sql語句的最小工作單元,保證事務中的多條s...
Spring事務特性及其傳播行為詳解
行為解釋 對應的註解使用 propagation required 預設 以事務執行,當前有事務則加入事務,無事務則建立事務 transactional propagation propagation.required propagation supports 支援事務執行,如果沒有事務則以非事務執...