資料庫的ACID特性

2022-09-10 23:51:34 字數 990 閱讀 5924

acid,是指在資料庫管理系統(dbms)中事務所具有的四個特性:原子性(atomicity)、一致性(consistency)、隔離性(isolation,又稱獨立性)、永續性(durability)。

在資料庫系統中,乙個事務是指由一系列資料庫操作組成的乙個完整的邏輯過程。例如銀行轉帳,從原賬戶扣除金額,以及向目標賬戶新增金額,這兩個資料庫操作的總和構成乙個完整的邏輯過程,不可拆分。這個過程被稱為乙個事務,具有acid特性。

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

一致性在事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。

隔離性兩個事務的執行是互不干擾的,乙個事務不可能看到其他事務執行時,中間某一時刻的資料。

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

目前主要有兩種方式實現acid:第一種是write ahead logging,也就是日誌式的方式。第二種是shadow paging。

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

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

資料庫事務ACID特性

資料庫管理系統中事務 transaction 的四個特性 分析時根據首字母縮寫依次解釋 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 所謂事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。執行...

資料庫 事務的特性ACID

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

資料庫的ACID特性解釋

1 牛客網題目 雖然之前看過acid特性,但是應該還是理解不夠到位,再次記錄一下。2 參考文章 資料庫管理系統中事務 transaction 的四個特性 分析時根據首字母縮寫依次解釋 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability...