事務的四大特性及隔離級別

2021-09-18 04:00:16 字數 1455 閱讀 6508

一、事務的作用:

事務管理對於企業級應用而言至關重要,它保證了使用者的每一次操作都是可靠的,即便出現了異常的訪問情況,也不至於破壞後台資料的完整性。就像銀行的自動提款機atm,通常atm都可以正常為客戶服務,但是也難免遇到操作過程中及其突然出故障的情況,此時,事務就必須確保出故障前對賬戶的操作不生效,就像使用者剛才完全沒有使用過atm機一樣,以保證使用者和銀行的利益都不受損失。

二、事務的四大特性:特性

見解原子性(atomicity)

表示事務執行過程中的任何失敗都將導致事務所做的任何修改失效,因此事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何影響。

一致性(consistency)

表示乙個事務執行之前和執行之後都必須處於一致性狀態,當事務執行失敗時,所有被該事務影響的資料都應該恢復到事務執行前的狀態。

隔離性(isolation)

表示當多個使用者併發訪問資料庫時,比如操作同一張表時,資料庫為每乙個使用者開啟的事務,不能被其他事務的操作所干擾,多個併發事務之間要相互隔離。

永續性(durability)

表示乙個事務一旦被提交了,那麼對資料庫中的資料的改變就是永久性的,即便是在資料庫系統遇到故障的情況下也不會丟失提交事務的操作。

總的說就是:要麼全部執行成功,要麼撤銷不執行。

通俗的理解,事務是一組原子操作單元,從資料庫角度說,就是一組sql指令,要麼全部執行成功,若因為某個原因其中一條指令執行有錯誤,則撤銷先前執行過的所有指令。

三、事務的隔離級別:名稱

級別none

jdbc驅動不支援事務

read uncommitted (讀未提交)

允許髒讀、不可重複讀和幻讀

read committed (讀已提交)

禁止髒讀,但允許不可重複讀和幻讀

repeatable read (可重複讀)

禁止髒讀和不可重複讀,單執行幻讀

serializable (序列化)

禁止髒讀、不可重複讀和幻讀

後記:隔離級別的設定只對當前鏈結有效。對於使用mysql命令視窗而言,乙個視窗就相當於乙個鏈結,當前視窗設定的隔離級別只對當前視窗中的事務有效;對於jdbc運算元據庫來說,乙個connection物件相當於乙個鏈結,而對於connection物件設定的隔離級別只對該connection物件有效,與其他鏈結connection物件無關。

事務的四大特性和隔離級別

事務,其定義是應用程式中一系列不可分割的操作,就是一組可以完成某個業務的 集合,在關聯式資料庫中,事務可以是一條sql語句,或者一組sql語句,亦或整個程式。其中事務有四個特徵,必須同時滿足這四個特徵才是乙個完整的事務。即事務的acid特性 原子性 atomicity 即事務是資料庫的不可分割單元,...

事務的概念 四大特性 隔離級別

首先,說說什麼事務 transaction 事物就是乙隻運算元據庫的動作集合 處理步驟要麼全部成功 要麼全部失敗 如果一步一步都執行完成 我們稱之為失誤已提交 如果中間有一步執行失敗 失誤必須被回滾 資料庫事務的隔離級別有4種,由低到高分別為read uncommitted read committ...

事務的四大特性和隔離級別

在資料庫操作中,一項事務 transaction 是由一條或多條運算元據庫的 sql 語句組成的乙個不可分割的工作單元,這些操作要麼都完成,要麼都取消。接下來將圍繞事務的特性 併發問題以及隔離級別進行講解。事務的定義很嚴格,它必須同時滿足四個特性,即原子性 一致性 隔離性和永續性,也就是人們俗稱的 ...