前面我們已經分析了因為原子性並不能保證事務在乙個時間點上完成,而是在乙個時間片上完成,所以不能作為一致性的充分條件.詳細的分析,可以參考:
那麼原子性,加上隔離性可以推導出一致性嗎? 下面我們通過乙個例子來分析下這個問題.
場景如下
a是老闆,需要給員工b, c發工資. a賬戶裡面有100元,需要給2員工,每人20元工資.
如果只有隔離性,和原子性那麼操作結果如下.
時間戳事務1
事務2t1
a減少20
t2b新增20
a減少20
t3提交(a=80, b=20)
c新增20
t4提交(a=80, c=20)
因為隔離性,t2時間點,雖然a已經減少了20元,但是並沒有提交,所以事務2讀到的a依然擁有100元(如果讀取的是80,那就問題大了,屬於讀取髒資料).
在這裡如果沒有特別的處理,就會導致事務2提交後在t4時間點a有80元, b 和 c各有20元,總額120元,很明顯資料不一致了,t1時間點,總額只有100元.
通過上面這個例子也就可以很容易的發現了,原子性和隔離性不能保證一致性.
資料庫隔離性
事務的特性 原子性 一致性 隔離性 永續性 多事務同時執行的時候,可能會出現的問題 髒讀 不可重複讀 幻讀 事務隔離級別 讀未提交 讀提交 可重複讀 序列化 不同事務隔離級別的區別 讀未提交 乙個事務還未提交,它所做的變更就可以被別的事務看到 讀提交 乙個事務提交之後,它所做的變更才可以被別的事務看...
資料庫事務的 隔離原子永續性
主要知識點總結記住這些技術不是主要的目標,能夠知道每乙個功能在應用程式當中起到的作用才是重要的。事務的概念 隔離 回滾 三大性質保證 事務的隔離的保證和加鎖 事務執行期間不要進行使用者互動 沒有封閉事務的使用者互動 1.使用者通過乙個事物先讀取想要的資訊,比如當前該航班的機票數量。讀取完之後事務立馬...
資料庫的ACID(原子性 一致性 隔離性與永續性)
資料庫管理系統中事務 transaction 的四個特性 分析時根據首字母縮寫依次解釋 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 durability 所謂事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。執行...