ACID資料庫事務正確執行的四個基本要素的縮寫

2022-07-13 01:57:09 字數 1442 閱讀 5088

acid,指資料庫事務正確執行的四個基本要素的縮寫。包含:原子性(atomicity)、一致性(consistency)、隔離性(isolation)、永續性(durability)。乙個支援事務(transaction)的資料庫,必須要具有這四種特性,否則在事務過程(transaction processing)當中無法保證資料的正確性,交易過程極可能達不到交易方的要求。

整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節。事務在執行過程中發生錯誤,會被回滾(rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。

乙個事務可以封裝狀態改變(除非它是乙個唯讀的)。事務必須始終保持系統處於一致的狀態,不管在任何給定的時間併發事務有多少。

也就是說:如果事務是併發多個,系統也必須如同序列事務一樣操作。其主要特徵是保護性和不變性(preserving an invariant),以轉賬案例為例,假設有五個賬戶,每個賬戶餘額是100元,那麼五個賬戶總額是500元,如果在這個5個賬戶之間同時發生多個轉賬,無論併發多少個,比如在a與b賬戶之間轉賬5元,在c與d賬戶之間轉賬10元,在b與e之間轉賬15元,五個賬戶總額也應該還是500元,這就是保護性和不變性

隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。如果有兩個事務,執行在相同的時間內,執行相同的功能,事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。這種屬性有時稱為序列化,為了防止事務操作間的混淆,必須序列化或序列化請求,使得在同一時間僅有乙個請求用於同一資料。

在事務完成以後,該事務對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。

由於一項操作通常會包含許多子操作,而這些子操作可能會因為硬體的損壞或其他因素產生問題,要正確實現acid並不容易。acid建議資料庫將所有需要更新以及修改的資料一次操作完畢,但實際上並不可行。

目前主要有兩種方式實現acid:第一種是write ahead logging,也就是日誌式的方式(現代資料庫均基於這種方式)。第二種是shadow paging。

相對於wal(write ahead logging)技術,shadow paging技術實現起來比較簡單,消除了寫日誌記錄的開銷恢復的速度也快(不需要redo和undo)。shadow paging的缺點就是事務提交時要輸出多個塊,這使得提交的開銷很大,而且以塊為單位,很難應用到允許多個事務併發執行的情況——這是它致命的缺點。

wal 的中心思想是對資料檔案 的修改(它們是表和索引的載體)必須是只能發生在這些修改已經 記錄了日誌之後 -- 也就是說,在日誌記錄沖刷到永久儲存器之後. 如果我們遵循這個過程,那麼我們就不需要在每次事務提交的時候 都把資料頁沖刷到磁碟,因為我們知道在出現崩潰的情況下, 我們可以用日誌來恢復資料庫:任何尚未附加到資料頁的記錄 都將先從日誌記錄中重做(這叫向前滾動恢復,也叫做 redo) 然後那些未提交的事務做的修改將被從資料頁中刪除 (這叫向後滾動恢復 - undo)。

資料庫事務正確執行的四個基本要素 ACID

acid,指資料庫事務正確執行的四個基本要素的縮寫。包含 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 乙個支援事務 transaction 的資料庫,必須要具有這四種特性,否則在事務過程 transaction process...

ACID 資料庫事務正確執行的四個基本要素

acid 資料庫事務正確執行的四個基本要素 acid,指資料庫事務正確執行的四個基本要素的縮寫。包含 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 乙個支援事務 transaction 的資料庫系統,必需要具有這四種特性,否則在...

資料庫事務ACID

1.原子性 atomicity 原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。2.一致性 consistency 事務必須使資料庫從乙個一致性狀態變換到另外乙個一致性狀態。3.隔離性 isolation 事務的隔離性是指乙個事務的執行不能被其他事務干擾,即乙個事務內部...