資料庫事務 ACID

00潤物無聲00發表於2016-10-16

  今天聽了關於Mysql事務的分享,查閱了關於事務的內容。也在思考當問到這個問題的時候應該如何去總結和表達出自己理解的事務

1.是什麼

一句話概括,就是一件事情,要麼完全做完,要麼完全不做。
  資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。

2.事務的特徵
  一個邏輯工作單元要成為事務,必須滿足ACID(原子性、一致性、隔離性和永續性)屬性

原子性(Atomicity)
  原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾

一致性(Consistency)
  一致性是指事務必須使資料庫從一個一致性狀態變換到另一個一致性狀態,也就是說一個事務執行之前和執行之後都必須處於一致性狀態。
  例如:銀行轉賬,A和B總金額是500,不管怎麼轉,中間的操作是怎麼樣的,最後總金額始終是500.一種一致性狀態

隔離性(Isolation)
  併發事務之間互相影響的程度。
  事務檢視資料時資料所處的狀態,要麼是另一併發事務修改它之前的狀態,要麼是另一事務修改它之後的狀態,事務不會檢視中間狀態的資料。
  事務的併發操作可能出現的問題:髒讀,不可重複讀,幻讀

永續性(Duration)
  事務提交後,對系統的影響是永久的。該修改即使出現致命的系統故障也將一直保持。

3.事務語句

 開始事物:BEGIN TRANSACTION
 提交事物:COMMIT TRANSACTION
 回滾事務:ROLLBACK TRANSACTION
 儲存點的名稱和位置:SAVE TRANSACTION 儲存點名稱 
 回滾到儲存點:ROLLBACK TRANSACTION 儲存點名稱


相關文章