在資料庫系統中,事務是工作的離散單位,它可以是修改乙個使用者的賬戶餘額,也可以是庫存項的寫操作。在單使用者、單資料庫環境下執行事務比較簡單,但在分布式環境下,維護多個資料庫的完整性就比較複雜。大多數聯機事務處理系統是在大型計算機上實現的,這是由於它的操作複雜,需要快速的輸入/輸出和完善的管理。如果乙個事務在多個場地進行修改,那就需要管理機制來防止資料重寫並提供同步。另外還需要具有返回失效事務的能力,提供安全保障和提供資料恢復能力。
比如,我們去銀行轉賬,操作可以分為下面兩個環節:
(1)從第乙個賬戶劃出款項。
(2)將款項存入第二個賬戶。
在這個過程中,兩個環節是關聯的。第乙個賬戶劃出款項必須保證正確的存入第二個賬戶,如果第二個環節沒有完成,整個的過程都應該取消,否則就會發生丟失款項的問題。整個交易過程,可以看作是乙個事物,成功則全部成功,失敗則需要全部撤消,這樣可以避免當操作的中間環節出現問題時,產生資料不一致的問題。
資料庫事務是乙個邏輯上的劃分,有的時候並不是很明顯,它可以是乙個操作步驟也可以是多個操作步驟。我們可以這樣理解資料庫事物:對資料庫所做的一系列修改,在修改過程中,暫時不寫入資料庫,而是快取起來,使用者在自己的終端可以預覽變化,直到全部修改完成,並經過檢查確認無誤後,一次性提交並寫入資料庫,在提交之前,必要的話所做的修改都可以取消。提交之後,就不能撤銷,提交成功後其他使用者才可以通過查詢瀏覽資料的變化。
資料庫 事務隔離級別 簡介
在做erp訂單接入倉庫庫存的時候出現了乙個問題。下單會讀取該商品是否有庫存。如果有那麼就下單 減去 可下單庫存,物理庫存不變 沒有則提示庫存不足 在併發情況下就會導致 u1使用者下單編號為1的商品1個 u2使用者也下單編號為1的商品1個。編號為1的商品庫存只有1個。那麼當u1在讀取出資料的時候發現庫...
資料庫核心 事務MVCC簡介
目錄概述 mysql innodb下讀操作分類 一 快照讀 snapshot read 二 當前讀 current read 三 當前讀,快照讀和mvcc的關係 mysql mvcc實現原理 一 innodb引擎的隱式字段 二 undo日誌版本鏈 三 read view 四 可見性比較演算法 結論 ...
資料庫事務
事件是訪問並可能更新各種資料項的乙個程式執行單元。事件由事務開始與事務結束之間執行的全體操作組成。為了保證資料完整性,資料庫系統需要維護事務的以下性質 原子性 atomicity 事務中的操作要麼全部成功,要麼全部失敗。一致性 consistency 事務執行前後要保持資料庫的一致性。隔離性 iso...