事務是資料庫執行的最小單位 不可被分割 ,這個單位裡包含了一系列操作(dml),事務的原子性保證資料要麼同時執行成功 要麼同時執行失敗,簡單來說:資料庫對資料進行操作的時候會將操作寫入日誌(此日誌非傳統的日誌 可能是快取 可能是檔案)進行儲存,如果中間某個事務執行失敗,資料庫會通過該日誌進行回溯,將執行成功的操作進行撤銷,專業術語稱之為(回滾),如果所有的事務都執行成功,可以通過commit將執行成功的操作提交到資料庫進行儲存,專業術語(持久化),資料一旦被持久化 便不可在進行回滾
ps:總結起來一句話 原子性保證事務的同事要麼同時執行成功 要麼同時執行失敗
如果把事務比作是一扇門,a,b,c作為乙個整體穿過這扇門,成功的穿過之後,就變成了 a,b,c;那麼我們來看,事務執行完畢前,abc三者保持了一致性,事務執行完畢之後,abc三者保持了一致性。對於資料庫事務來說,不可能出現abc或者abc等不一致的情況;
那麼我們可以認為:原子性是事務一致性的保證!!
ps:總結起來一句話 在事務執行前後 對於不同的事務讀取同一資料的結果是相同的
簡單來說,事務提交後,資料會真正儲存到資料庫(生公尺煮成熟飯了),就不能回滾了(熟了還能再弄成生公尺??)
ps:總結起來一句話 在事務通過commit提交之後 對於資料庫的資料便會永久生效 不會再有回滾改變的可能
這個特性我先舉個例子:有個浴室(外面無法偷看),假設每次只能進去乙個人,在這個人出來之前,另外乙個人不能進去,那麼已經進去的這個人根本就不用擔心被別人看光,因為浴室裡就他乙個人。但是外邊的其他人就會等不及,顯然浴室不夠用;那麼我們是不是把浴室隔成隔斷間,那是不是很多人能一起進入浴室,使用不同的隔斷間洗澡了~(當然,乙個隔斷間還是只允許乙個人進去)
我們回到資料庫事務,資料庫就想到了乙個辦法,對於併發執行的事務隔離開,相互之前不影響執行!如果有兩個相同的事務,在相同的時間內,執行相同的功能,這時候事務的隔離性起作用了,它會確保每乙個事務在系統中認為只有自己在使用系統。這種屬性有時稱為序列化,為了防止事務操作間的混淆,必須序列化或序列化請求,使得在同一時間僅有乙個請求用於同一資料。通過設定資料庫的隔離級別,可以達到不同的隔離效果(後面的篇章中會講到spring事務的隔離級別和傳播機制)。
ps:總結起來一句話 在不同的事務之間操作是完全獨立的 不同的事務操作不會被其餘的事務進行騷擾
資料庫事務四大特性
事務的 原子性 一致性 分離性 永續性 1 原子性 事務的原子性指的是,事務中包含的程式作為資料庫的邏輯工作單位,它所做的對資料修改操作要麼全部執行,要麼完全不執行。這種特性稱為原子性。事務的原子性要求,如果把乙個事務可看作是乙個程式,它要麼完整的被執行,要麼完全不執行。就是說事務的操縱序列或者完全...
資料庫事務四大特性
資料庫事務是指作為單個邏輯工作單元執行的一系列操作,這些操作要麼全做要麼全不做,是乙個不可分割的工作單位。資料庫事務的四大特性 簡稱acid 是 事務的原子性指的是,事務中包含的程式作為資料庫的邏輯工作單位,它所做的對資料修改操作要麼全部執行,要麼完全不執行。這種特性稱為原子性。例如銀行取款事務分為...
資料庫事務四大特性
事務的 原子性 一致性 分離性 永續性 1 原子性 事務的原子性指的是,事務中包含的程式作為資料庫的邏輯工作單位,它所做的對資料修改操作要麼全部執行,要麼完全不執行。這種特性稱為原子性。事務的原子性要求,如果把乙個事務可看作是乙個程式,它要麼完整的被執行,要麼完全不執行。就是說事務的操縱序列或者完全...