1. 程式人生 > >【資料庫】事務的概念及其四大特性

【資料庫】事務的概念及其四大特性

概念

事務是一個抽象的概念;是一系列指令(操作)的集合;而這些指令可以訪問或更新資料庫;

四大特性(ACID)

事務有四個特性 :原子性,一致性,隔離性,永續性

  • 原子性 Atomicity
    事務的執行結果,要麼全部成功,要麼全部失敗回滾;不存在中間狀態
    注意:

    • 這裡中間狀態指的是事務執行完成後的結果不可能是中間狀態(即部分成功或部分失敗)
    • 在事務執行過程中是存在部分成功狀態的,只是當在後續的執行過程中,倘若遇到了失敗狀態,那麼之前的部分成功狀態將被回滾,導致整個事務被回滾

    栗子:銀行轉賬
    A有500,B有200
    A轉賬B 300
    最終的結果只有兩個
    要麼轉賬成功,A剩200,B變500


    要麼轉賬失敗,A,B餘額都不變

  • 一致性 Consistency
    事務執行的結果必須是使資料庫從一個一致性狀態變到另一個一致性狀態
    栗子:銀行轉賬
    同樣的栗子
    A有500,B有200
    A轉賬B 300
    最終的結果只有兩個
    要麼轉賬成功,A減去300剩200,B加上300變500
    要麼轉賬失敗,A,B餘額都不變
    不可能存在以下情況

    • 轉賬成功,A減去300剩200,而B只得到200變400或其他情況,這樣在轉賬(即是一個事務)前後,資料就出現了不一致
    • 轉賬失敗,A,B餘額發生變化,資料就出現了不一致

    也就是說,不管轉賬(事務)成功或失敗,A,B的餘額加起來一定是700


    原子性與一致性的分析

    • 原子性
      側重於事務執行過程的完整性(過程要麼全部成功,要麼全部失敗)
    • 一致性側重於事務結果的完整性(不論執行過程是否成功,結果(即資料)不會因過程而發生“ 缺失”)
    • 再使用上面的的轉賬栗子,倘若轉賬成功,但是A,B餘額加起來不是700,那麼這符合了事務的原子性,卻違背了事務的一致性
    • 原子性與一致性是互補的,不可分離

  • 隔離性 Isolation
    各個事務之間是相互獨立,互不影響的
  • 永續性 Durability
    事務提交以後,資料是永久儲存在系統(資料庫)中的,即使發生斷電等故障