1. 程式人生 > 實用技巧 >資料庫複習(一) 2020.12.17

資料庫複習(一) 2020.12.17

技術標籤:資料庫學習

學而不思則罔,思而不學則殆。     ---老洋(孔子的學生)

Spring事務管理

1、什麼是事務(Transaction)?

一句話概括:它是sql語句的集合, 是一個整體, 它很乾脆:要麼做,要麼不做。
image-20201213100151863

2、事物的:四大特性(講解)

1、原子性(Atomicity)
	1、整個事務中的所有操作,要麼全部完成,要麼全部不完成,不可能停滯在中間某個環節。
	2、事務在執行過程中發生錯誤,會被回滾(Rollback)到事務開始前的狀態,就像這個事務從來沒有執行過一樣。
	比如:12306買票, 選擇+付款(是一個整體), 哪個環節出現錯誤,都會回滾RollBack
	
2、一致性(Consistency)
	1、一個事務可以封裝狀態改變(除非它是一個只讀的)。
	2、事務必須始終保持系統處於一致的狀態,不管併發事務有多少。
	比如:12306買票,如果12306只提供100張票,不管多少個人同時買,或同時退,100張票不會變成101張,也不會變成99張。
	     票的總數(自始至終)是不會變的,這叫一致性。
	
	
3、隔離性(Isolation)
	1、隔離狀態執行事務,使它們好像是系統在給定時間內執行的唯一操作。
	2、如果有兩個事務,執行在相同的時間內,執行相同的功能。
	   事務的隔離性將確保每一事務在系統中認為只有該事務在使用系統。
	3、這種屬性有時稱為序列化,為了防止事務操作間的混淆,必須序列化或序列化請求,使得在同一時間僅有一個請求用於同一資料。
	比如:12306買票, 多個人同時買(同一張票)
	     只有(最先付款成的人)獲得(這張票),
	     其他人 都會(被隔離)在外,顯示(付款失敗),此票已賣。
	
4、永續性(Durability)
	1、在事務完成以後,該事務對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。
	比如:12306買票,當(選擇+付款)這個總體(成功完成), 那麼該(操作資訊)會被寫入資料庫
	     也就是(這張表:已出售的資訊)寫入了資料庫, 中途不會被(回滾),因為此事務已完成。
	     有人可能會疑問:退票呢? 退票是另一個(事務的開啟了), 退票前,購票(這個事物)已完成了的。