數據庫的四大事務特性

        首先我們需要清楚,所謂數據庫事務就是一串連續的數據庫操作動作,是數據庫執行過程中的一個邏輯單位。通俗來說,就是一串增刪查改的集合。對於每一個數據庫事務,它把數據庫從一個一致的狀態轉換到另一個一致的狀態,比如數據庫操作前是一個點,數據庫操作後是一個點,我們只管這兩個點的狀態,而兩點之間的連線上的狀態我們不管因爲他們可能對我們想要的結果產生影響。


1. 第一個特性 原子性

        假如我們有個方法中對一個屬性進行了N次的更新,但是執行到一半的時候有一個語句有問題出現了異常,這樣就可能使得我們上面所說的操作後的點與我們預先的點不同,這不是我們想要的,所以原子性要求你這個方法要麼全部執行成功,要麼你就別執行。


2. 第二個特性 一致性

        一致性保證了只有事務操作前和事務操作後這兩個狀態,不存在中間態。原子性規定方法中的操作都執行或者都不執行,但並沒有說要所有操作一起執行(一起更新那就亂套了,要哪個結果?),所以操作的執行也是有先後順序的,那我們要是在執行一半時查詢了數據庫,那我們會得到中間的更新的屬性?答案是不會的,一致性規定事務提交前後只存在兩個狀態,提交前的狀態和提交後的狀態,絕對不會出現中間的狀態。


3. 第三個特性 隔離性

        事務的隔離性基於原子性和一致性,每一個事務可以併發執行,但是他們互不干擾,但是也有可能不同的事務會操作同一個資源,這個時候爲了保持隔離性會用到鎖方案。


4. 第四個特性 持久性

        當一個事務提交了之後那這個數據庫狀態就發生了改變,哪怕是提交後剛寫入一半數據到數據庫中,數據庫宕機(死機)了,那當你下次重啓的時候數據庫也會根據提交日誌進行回滾,最終將全部的數據寫入。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章