數據庫系統原理:ACID的作用以及實現原理


  • 數據庫事務:構成單一邏輯工作單元的操作集合

    • 數據庫事務可以包含一個或多個數據庫操作,但這些操作構成一個邏輯上的整體
    • 構成邏輯整體的這些數據庫操作,要么全部執行成功,要么全部不執行
    • 構成事務的所有操作,要么全都對數據庫產生影響,要么全都不產生影響,即不管事務是否執行成功,數據庫總能保持一致性狀態
    • 以上即使在數據庫出現故障以及並發事務存在的情況下依然成立
  • 事務的ACID特性

    • 原子性:事務中的所有操作作為一個整體像原子一樣不可分割,要么全部成功,要么全部失敗。
    • 原子性實現原理:
      image
    • 一致性:事務開始前和結束后,數據庫的完整性約束沒有被破壞,都是合法的數據狀態。比如A向B轉賬,不可能A扣了錢,B卻沒收到。
      image
    • 隔離性:並發執行的事務不會相互影響,其對數據庫的影響和它們串行執行時一樣。
      image
      image
    • 持久性:事務一旦提交,其對數據庫的更新就是持久的。任何事務或系統故障都不會導致數據丟失。
      image
  • 在事務的ACID特性中,一致性是事務的根本追求,而對數據庫一致性的破壞主要來自兩個方面:

    • 事務的並發執行
    • 事務故障或系統故障
  • 如何避免數據庫一致性被破壞

    • 並發控制技術:保證了事務的隔離性,使數據庫的一致性不會因為並發執行被操作
    • 日志恢復技術:保證了事務的原子性,使數據庫的一致性不會因事務或系統故障被破壞。同時使已提交的對數據庫的修改不會因系統崩潰而丟失,保證了事務的持久性。
      image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM