事務的特性

2022-05-05 09:06:07 字數 717 閱讀 3611

事務應該具有4個屬性(acid):

用乙個常用的「a賬戶向b賬號匯錢」的例子來說明如何通過資料庫事務保證資料的準確性和完整性。熟悉關係型資料庫事務的都知道從帳號a到帳號b需要6個操作:

1、從a賬號中把餘額讀出來(500)。

2、對a賬號做減法操作(500-100)。

3、把結果寫回a賬號中(400)。

4、從b賬號中把餘額讀出來(500)。

5、對b賬號做加法操作(500+100)。

6、把結果寫回b賬號中(600)。

保證1-6所有過程要麼都執行,要麼都不執行。一旦在執行某一步驟的過程中發生問題,就需要執行回滾操作。 假如執行到第五步的時候,b賬戶突然不可用(比如被登出),那麼之前的所有操作都應該回滾到執行事務之前的狀態。

在轉賬之前,a和b的賬戶中共有500+500=1000元錢。在轉賬之後,a和b的賬戶中共有400+600=1000元。也就是說,資料的狀態在執行該事務操作之後從乙個狀態改變到了另外乙個狀態。同時一致性還能保證賬戶餘額不會變成負數等。

在a向b轉賬的整個過程中,只要事務還沒有提交(commit),查詢a賬戶和b賬戶的時候,兩個賬戶裡面的錢的數量都不會有變化。

如果在a給b轉賬的同時,有另外乙個事務執行了c給b轉賬的操作,那麼當兩個事務都結束的時候,b賬戶裡面的錢應該是a轉給b的錢加上c轉給b的錢再加上自己原有的錢。

一旦轉賬成功(事務提交),兩個賬戶的裡面的錢就會真的發生變化(會把資料寫入資料庫做持久化儲存)!

事務的特性

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

事務的特性

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

事務的特性

如果乙個資料庫聲稱支援事務的操作,那麼該資料庫必須支援以下四個特性 原子性 atomicity 一次事務中如果要進行多個資料操作,最終的結果要麼所有資料操作都成功,要麼所有資料操作都失敗 例如a轉賬給b100元,最終的結果要求a減少100元,b增加100元,不能出現a減少了但b沒有增加 一致性 co...