事務四大特性理解,什麼是髒資料、髒讀、不可重複讀、幻覺讀

lvxiangan發表於2018-12-28

什麼是事務?

事務指的是邏輯上的一組操作,這組操作要麼全部發生,要麼全部失敗。

舉例 : 張三和李四 進行 轉賬的操作  

張三向轉賬李四 1000元  張三餘額-1000元  李四餘額+1000元

不應該出現的是  在轉賬過程中由於一些意外,使張三的餘額減去了1000元, 而李四並沒有收到這筆錢。  使用事務來進行管理。  必須一起成功或者一起失敗

事務四大特性(ACID)

  • 原子性:是指事務一個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。 不能夠單獨執行。 把一組操作放入事務中
  • 一致性:事務的執行的前後,資料的完整性要得到保證。
  • 隔離性:強調的是多個使用者併發訪問資料庫的時候,一個使用者事務不能被其他使用者的事務所干擾到,多個併發事務之間的資料要相互隔離。  解決多個使用者對同一個資料進行操作, 資料庫會有 事務的 隔離級別來進行解決。
  • 永續性:一個事務一旦被提交,它對資料庫中資料的改變就是永久性,即使資料庫發生故障也不應該對其有任何影響。

 什麼是髒資料,髒讀,不可重複讀,幻覺讀

  •     髒讀: 指當一個事務正在訪問資料,並且對資料進行了修改,而這種修改還沒有提交到資料庫中,這時,另外一個事務也訪問這個資料,然後使用了這個資料。因為這個資料是還沒有提交的資料, 那麼另外一個事務讀到的這個資料是髒資料,依據髒資料所做的操作可能是不正確的。
  • 不可重複讀: 指在一個事務內,多次讀同一資料。在這個事務還沒有結束時,另外一個事務也訪問該同一資料。 那麼,在第一個事務中的兩次讀資料之間,由於第二個事務的修改,那麼第一個事務兩次讀到的資料可能是不一樣的。這樣就發生了在一個事務內兩次讀到的資料是不一樣的,因此稱為是不可重複讀。
  • 幻覺讀: 指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的資料進行了修改,這種修改涉及到表中的全部資料行。同時,第二個事務也修改這個表中的資料,這種修改是向表中插入一行新資料。那麼,以後就會發生操作第一個事務的使用者發現表中還有沒有修改的資料行,就好象發生了幻覺一樣。

相關文章