跟小博老師一起學習資料庫 ——ACID規則

weixin_33670713發表於2017-04-24

現代的資料庫基本都支援多使用者的併發操作,為保證操作過程中資料的正確性,一定要包含原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、永續性(Durability),簡稱為ACID原則

3692575-3320222c1b4c81e9

l原子性

事務由若干SQL語句構成,執行過程極有部分SQL發生錯誤。原子性指當發生錯誤時,把以執行成功SQL操作撤銷,就當什麼事情也沒有發生過。

比如我們在儲存一張出存單時,一般分成三步。先向出庫表插入訂單摘要資料,再儲存商品明細到訂單專案表,接著減少商品表的對應商品庫存資料量,這三個操作都成功才能視為操作成功。

如第一、二步操作成功,但減少庫存時發生了錯誤而沒有減少庫存數量,必須自動把第一、二步操作取消,否則就產生了無效資料,原子效能做到。

l一致性

當同時時刻併發了多個事務,必須保證系統的一致性。

比如系統中A商品現有庫存為100,三個帳戶同時對A進行操作,張三對A商品出庫50,李四對A入庫20,趙六對A商品出庫10,系統A庫存的最終資料應是60。

l隔離性

所謂的隔離性是指一個事務正在操作某些資料時,另一個事務也要操作此資料,必須等第一個事務完成後第二個事務能繼續執行。

例如你從A帳戶在轉帳1000元到B帳戶,在這個交易還沒完成的情況下,查詢B帳戶是看不到新加的1000元的。

l永續性

事務一旦操作成功,資料以儲存到了儲存介質,就算系統重啟、掉電也不會丟失,除非儲存介質發生了物理損壞。

ACID是資料庫事務正確執行的4個基本要素,現代資料庫都遵循這些規則,否則極有可能產生無效資料。

相關文章