基於原部落格而寫的筆記。
是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式更加可靠。乙個邏輯工作單元要成為事務,必須滿足acid(原子性、一致性、隔離性和永續性)屬性。事務是資料庫執行中的乙個邏輯工作單元,由dbms中的事務管理子系統負責事務的處理。
例如,a給b轉賬1000元時存在兩個操作,a賬戶扣款1000元,b賬戶收到1000元,兩者構成了轉賬這個事務。
·兩個操作都成功,a賬戶扣款1000元,b賬戶增加1000元,事務成功。
·兩個操作都失敗,a和b賬戶金額都沒有變,事務失敗。
·原子性(atomic):事務必須是原子工作單元,對於其資料修改,要麼全部都執行,要麼全部都不執行。通常,與某個事務關聯的操作具有共同的目標,並且是相互依賴的。如果系統只執行這些操作的乙個子集,則可能破壞事務的總體目標。原子性消除了系統處理操作子集的可能性。
·一致性(consistency):事務的一致性是指在事務從乙個一致的狀態轉到另乙個一致狀態。這種特性稱為事務的一致性。假如資料庫的狀態滿足所有的完整性約束,就說該資料庫是一致的。
·隔離性(isolation):由併發事務所做的修改必須與任何其它併發事務所做的修改隔離。事務檢視資料是資料所處的狀態,到底 是另乙個事務執行之前的狀態還是中間某個狀態,相互之間存在什麼影響,是可以通過隔離級別的設定來控制的。
·永續性(durability):事務結束後,事務處理的結果必須能夠得到固化,即寫入資料庫檔案中即使機器宕機資料也不會丟失,它對於系統的影響是永久性的。
我們從另外乙個方向來說說,如果不對事務進行併發控制,我們看看資料庫併發操作是會有那些異常情形,有些使我們可以接受的,有些是不能接受的,注意這裡的異常就是特定語境下的,並不一定就是錯誤什麼的。假設有乙個order表,有個字段叫count,作為計數用,當前值為100
事務 Transaction 簡述
一 定義 二 應用場景 設想網上購物的一次交易,其付款過程至少包括以下幾步資料庫操作 正常的情況下,這些操作將順利進行,最終交易成功,與交易相關的所有資料庫資訊也成功地更新。但是,如果在這一系列過程中任何乙個環節出了差錯,例如在更新商品庫存資訊時發生異常 該顧客銀行帳戶存款不足等,都將導致交易失敗。...
事務 Transaction詳解
1 事務概念 一組sql語句操作單元,組內所有sql語句完成乙個業務,如果整組成功 意味著全部sql都實現 如果其中任何乙個失敗,意味著整個操作都失敗。失敗,意味著整個過程都是沒有意義的。應該是資料庫回到操作前的初始狀態。這種特性,就叫 事務 2 為什麼要存在事務?1 失敗後,可以回到開始位置 2 ...
後台 19 事務Transaction
探索android軟鍵盤的疑難雜症 深入 android非同步精髓handler 詳解android主流框架不可或缺的基石 站在原始碼的肩膀上全解scroller工作機制 android多解析度適配框架 1 核心基礎 android多解析度適配框架 2 原理剖析 android多解析度適配框架 3 ...