事務ACID屬性與隔離級別

2021-09-19 21:20:55 字數 1186 閱讀 3558

資料庫領域中的事務指的是一系列對資料庫的操作集合,是資料庫管理系統(dbms)定義的乙個執行單位。事務的作用體現在兩個方面:

當然以上兩條是事務理論上應該持有的特性,但是實際應用過程中,由於業務需求的不同或配置方式不同,事務對以上兩個方面的滿足程度也不盡相同。

事務是 dbms 定義的乙個邏輯概念,其作為乙個執行單元,內部包含了一系列資料庫操作。但是並非所有的資料庫操作序列都可以被歸納為事務,可以通過四個屬性來描述事務:

note:原子性和一致性約束的內容不同,事務中的操作,全部執行或全部不執行是原子性約束,一致性要求的是資料庫完整性約束條件不被破壞,例如在

事務所能體現出的作用就是通過其所具有的屬性定義的,隔離性保證了資料庫的併發訪問中,多個事務之間彼此隔離,避免相互影響;原子性則保證了即使事務執行失敗,仍然能夠將資料庫恢復到執行前狀態;一致性則是在資料庫操作執行異常時,維護健康的關係約束條件不被破壞掉。永續性則是保證資料的修改被記錄到持久化裝置上,不受系統異常或裝置斷電的影響。

在實際應用中,對資料庫的併發訪問是必然的,如何在多個事務的同時操作下保證每個業務流都能獲取正確的結果,依靠的就是 dbms 提供的不同程度的隔離級別。ansi/iso sql 定義的標準隔離級別如下:

髒讀指的是,事務讀取到的資料可能是不正確、不合理或者處於非法狀態的資料,例如在事務

不可重複讀指的是,對於同乙個事務的前後兩次讀取操作,讀取到的內容不同。例如在事務

幻讀指的是,事務中前後相同的查詢語句,返回的結果集不同。例如在事務

鎖的使用是為了在併發環境中保持每個業務流處理結果的正確性,這樣的概念在計算機領域中很普遍,但是都必須要基於乙個前提,或者稱之為約定:在執行操作前,首先嘗試去獲取鎖,獲取成功則可以執行,若獲取失敗,則不執行或等待重複獲取。因為無論任何型別的操作,有沒有鎖都不影響程式本身的執行流程,但只有遵從這個約定才能體現出其價值。就像紅綠燈並不影響車輛本身的行駛能力,只有宣告所有個體皆遵守相同的規則,所以一切才變得有序。當然在資料庫的併發環境下,隔離程度越高,也就意味著併發程度越低,所以各個資料庫中一般設定的都是乙個折中的隔離級別。

事務的ACID與隔離級別

事務是應用程式中一系列嚴密的操作,所有操作必須一起成功完成,否則在每個操作中進行的更改都會被撤銷。事務具有四個特徵 1.原子性 atomicity 事務是資料庫的邏輯工作單位,事務中包含的各操作要麼都完成,要麼都不完成。2.一致性 consistency 事務執行的結果必須是使資料庫從乙個一致性狀態...

事務的ACID特性與隔離級別

事務所提供的安全保證,通常由眾所周知的首字母縮略詞acid來描述,acid代表原子性 atomicity 一致性 consistency 隔離性 isolation 和永續性 durability 乙個事務是乙個不可分割的工作單位,其中的操作要麼都做,要麼都不做。特徵是能夠在錯誤時終止事務,丟棄該事...

事務的特性ACID 隔離級別

1.事務特性acid 1.1 事務的四大特性 1 原子性 atomicity 事務包裝的一組sql,要麼都執行成功,要麼都失敗。這些操作是不可分割的。2 一致性 consistency 資料庫的資料狀態是一致的。3 永續性 durability 事務成功提交之後,對於資料庫的改變是永久的。哪怕資料庫...