數據庫 ACID

ACID是指一個事務本質上有四個特色:數據庫

Atomicity:原子性服務器

Consistency:一致性併發

Isolation:隔離性異步

Durablilty:耐久性spa

 

原子性blog

原子性是指事務是一個不可分割的工做單位,事務中的操做要麼都發生,要麼都不發生事務

例如A向B轉200元ci

 若是A轉成功,B也必須成功,不然都不成功,這就是所謂的要麼都成功,要麼都不成功it

 

一致性io

事務先後保持處於一致的狀態,無論在任何給定的時間併發事務有多少

一致性具備如下特色:

  • 若是一個操做觸發其餘輔助操做(級聯、觸發器),這些輔助操做也必須成功,不然整個事務交易失敗
  • 若是系統是由多個節點組成,一致性規定全部的變化必須傳播到全部節點(多主複製),若是從站節點異步更新,那麼咱們打破一致性規則,系統成爲「最終一致性」。
  • 一個事務是數據狀態的切換,所以,若是事務併發對個,系統也必須串行執行這些事務操做。

操做前:A:800,B:200

操做後:A:600,B:400

操做前與操做後的狀態一致,一致性表示事務完成後,符合邏輯運算

 

隔離性

事務的隔離性是指當多個用戶併發訪問數據庫時,數據庫爲每個用戶開啓的事務,不能被其餘事務的操做數據所幹擾,即多個事務之間要互相隔離。

針對兩個事物同時進行,其中一個事物讀取到的是另一個事務提交以前的數據,A與C同時向B轉錢,B的初始錢數都是200

當A向B轉過錢以後的狀態

A=800-200=600

B=200+200=400

當C向B轉過錢以後的狀態

C = 1000-100=900

B=200+100=300

兩個事物的對B的狀態是隔離的,不受其餘事務的影響。

 

 

持久性

事務的持久性是指一個事務一旦被提交,這個事務對數據庫裏的數據的改變將是永久的,接下來即便數據庫發生故障也不該該對其有任何

 操做前:A:800,B:200

操做後:A:600,B:400

若是在操做前(事務尚未提交)服務器宕機或者斷電,那麼重啓數據庫之後,數據狀態應該爲:

A:800,   B:200

若是在操做前(事務已經提交)服務器宕機或者斷電,那麼重啓數據庫之後,數據狀態應該爲:

A:600,   B:400

相關文章
相關標籤/搜索