事務的特性

2021-09-23 05:52:01 字數 1196 閱讀 1832

如果乙個資料庫聲稱支援事務的操作,那麼該資料庫必須支援以下四個特性:

原子性(atomicity)

一次事務中如果要進行多個資料操作,最終的結果要麼所有資料操作都成功,要麼所有資料操作都失敗

例如a轉賬給b100元,最終的結果要求a減少100元,b增加100元,不能出現a減少了但b沒有增加

一致性(consistancy)

一致性就是資料庫中的事務操作要合乎邏輯

例如a轉賬給b100元,最終的結果要求a減少100元,b增加10元,此時事務提交成功(滿足了原子性),但不合乎邏輯(不滿足事務一致性)

隔離性(isolation)

隔離性指的是多個事務併發訪問資料庫時,比如同時操作同一條資料,資料庫會對資料上鎖,若乙個獲得鎖的事務更新操作沒有提交,其他的事務無法運算元據,多個併發事務之間要相互隔離

永續性(durability)

永續性指的是事務一旦提交了,對資料的更改是永久性的,即使資料庫系統故障也不會丟失事務的提交操作

事務的四大特性簡稱acid。

事務如果沒有隔離性會發生的問題

1.更新丟失

第一類:事務a撤銷時,把已經提交的事務b的更新資料覆蓋了

第二類:事務a提交時覆蓋事務b的更新資料,導致事務b的操作無效

解決方法:對行加鎖,只允許併發乙個更新事務

2.髒讀

髒讀指的是在乙個事務處理過程中讀取了另乙個事務未提交的資料

解決方法:在乙個事務提交前,任何其他事務不可讀取其修改過未提交的值

3.不可重複讀

乙個事務同時對一行資料讀取兩次,讀取的資料不一致。

解決方法:只有在修改事務完全提交後才可讀取

不可重複讀和髒讀的區別:髒讀是讀取了另乙個事務未提交的資料,不可重複讀是先讀取了另乙個事務提交前的資料,後讀取的提交後的資料。

在某些情況下,不可重複讀並不是問題,以最後提交的資料為準

4.虛讀(幻讀)

同乙個事務中兩次統計一張資料表得到的資料不一致,第二次讀增加一資料行

解決方法:在事務操作完成資料處理前,任何其他事務都不可新增新資料

幻讀和不可重複讀的區別:

不可重複讀是乙個事務兩次讀取同一條資料的結果不一致

幻讀是乙個事務兩次統計一張資料表的統計結果不一致

事務的特性

事務具有四個特徵 原子性 atomicity 一致性 consistency 隔離性 isolation 和持續性 durability 這四個特性簡稱為 acid 特性。1 原子性 事務是資料庫的邏輯工作單位,事務中包含的各操作要麼都做,要麼都不做 2 一致性 事 務執行的結果必須是使資料庫從乙個...

事務的特性

事務 transaction 是併發控制的單位,是使用者定義的乙個操作序列。這些操作要麼都做,要麼都不做,是乙個不可分割的工作單位。通過事務,sql server能將邏輯相關的一組操作繫結在一起,以便伺服器保持資料的完整性。事務通常是以begin transaction開始,以commit或roll...

事務的特性

事務的隔離性 如果乙個資料庫聲稱支援事務的操作,那麼該資料庫必須要具備以下四個特性 一次事務中如果進行多個資料操作的業務,最終的結果要麼所有操作都成功,要麼所有操作都失敗。一致性就是資料表中的資料更新要求合乎邏輯的特性,滿足了原子性不一定滿足一致性 例如 a轉賬給b,轉了100元,最終的結果要求 a...