事務ACID原則

2021-10-04 22:01:18 字數 835 閱讀 8920

資料庫事務( transaction)是訪問並可能操作各種資料項的乙個資料庫操作序列。事務必須滿足acid原則——即原子性(atomicity)、一致性(consistency)、隔離性(isolation)、永續性(durability)。

原子性指事務是資料庫工作的最小單位,乙個事務中的所有操作要麼全部成功提交,要麼全部失敗回滾。以經典的銀行轉賬情境為例,假設a和b兩個賬戶分別擁有100元,此時a向b轉賬100元。對於資料層面包含兩個操作:

操作1:a賬戶餘額減少100元,賬戶餘額為0元;

操作2:b賬戶餘額增加100元,賬戶餘額為200元

顯然這兩個操作要麼同時成功則轉賬成功,要麼同時失敗則轉賬失敗。此時這兩個操作應在同乙個事務中。

一致性指事務操作不能破壞資料的一致性,資料庫在乙個事務的執行前後都應處於一致性狀態。仍以上述轉賬情境為例:在轉賬事務前後資料庫中的總錢數都應是200元。假設在修改資料的過程中資料庫發生故障(例如宕機)則事務被迫中斷,此時如果未完成的事務中的部分操作已經寫入資料庫則會破壞資料的一致性。

隔離性指資料庫併發情況下,併發的事務直接是隔離的,乙個事務的執行不能被其他事務影響。隔離性比較複雜,在mysql中存在四種隔離級別:read uncommitted、read committed、repeatable read和serializable,不同的隔離級別採用不同的鎖機制實現。對此不太清楚的同學請出門右** 事務的四種隔離級別與髒讀、幻讀、不可重複讀

永續性指一旦事務提交,則其對資料的變更就是永久性的,即使資料庫發生任何故障都不應該對資料造成任何影響。永續性很好理解,如果上述轉賬事務成功前資料庫故障,重啟後a和b賬戶仍應各有100元;反正如果在事務成功後故障,那麼重啟後a和b賬戶應分別擁有0元和200元。

事務特性(ACID)

原子性 是指事務乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。不能夠單獨執行。把一組操作放入事務中 一致性 事務的執行的前後,資料的完整性要得到保證。隔離性 強調的是多個使用者併發訪問資料庫的時候,乙個使用者事務不能被其他使用者的事務所干擾到,多個併發事務之間的資料要相互隔離。解決多...

事務ACID特性

所謂事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。例如,銀行轉帳工作 從乙個帳號扣款並使另乙個帳號增款,這兩個操作要麼都執行,要麼都不執行。資料庫事務必須具備acid特性,acid是atomic 原子性 consistency 一致性 isolation 隔離...

事務ACID特性

所謂事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。例如,銀行轉帳工作 從乙個帳號扣款並使另乙個帳號增款,這兩個操作要麼都執行,要麼都不執行。資料庫事務必須具備acid特性,acid是atomic 原子性 consistency 一致性 isolation 隔離...