1. 程式人生 > >“事務”的個人理解,特性

“事務”的個人理解,特性

事務:就是一系列的動作,這些動作要麼一起完成,要麼都不完成。

舉例1:轉賬500,A賬戶扣錢500,B賬戶增加500,兩個操作,如果其中一個沒有完成,那麼的話,要麼500塊憑空消失,要麼無緣無故多了500。這顯然是錯誤的。

舉例2:購買書籍,書籍只剩下1本,A跟B幾乎同時購買書籍,但是A比B稍微快一點點,那麼A會發出update語句,書籍數目減1變為0,且成功購買書籍,同時B也發出update語句,書籍減1變為-1,此時因為沒有事務控制,所以兩者都成功更新書籍數目,顯然這是不正常的,所以需要事務控制。

 

事務的四個特性:

  • 原子性:操作這些指令時,要麼全部執行成功,要麼全部不執行。只要其中一個指令執行失敗,所有的指令都執行失敗,資料進行回滾,回到執行指令前的資料狀態。
  • 一致性:事務的執行使資料從一個狀態轉換為另一個狀態,但是對於整個資料的完整性保持穩定。
  • 隔離性:在該事務執行的過程中,無論發生的任何資料的改變都應該只存在於該事務之中,對外界不存在任何影響。只有在事務確定正確提交之後,才會顯示該事務對資料的改變。其他事務才能獲取到這些改變後的資料。
  • 永續性:當事務正確完成後,它對於資料的改變是永久性的。