事務的隔離性
如果乙個資料庫聲稱支援事務的操作,那麼該資料庫必須要具備以下四個特性:
一次事務中如果進行多個資料操作的業務,最終的結果要麼所有操作都成功,要麼所有操作都失敗。
一致性就是資料表中的資料更新要求合乎邏輯的特性,滿足了原子性不一定滿足一致性
例如:a轉賬給b,轉了100元,最終的結果要求:a的賬戶減少
100,b的賬戶增加100,不能出現a減少了,但是b沒增加的。
隔離性是當多個使用者併發訪問資料庫時,比如同時操作一條資料,資料庫為每乙個使用者開啟的事務(為該資料上鎖,其他事務在上乙個事務操作完畢之前是不能運算元據的),不能被其他事務的操作所干擾,多個併發事務之間要相互隔離。
永續性是指乙個事務一旦被提交了,那麼對資料庫中的資料的改變就是永久性的,即便是在資料庫系統遇到故障的情況下也不會丟失提交事務的操作。
1.更新丟失
如果多個使用者運算元據,基於同乙個查詢結構對錶中的記錄進行修改,那麼後修改的記錄將會覆蓋前面修改的記錄,前面的修改就丟失掉了,這就叫做更新丟失。這是因為系統沒有執行任何的鎖操作(沒有隔離性),因此併發事務並沒有被隔離下來。
2.髒讀
髒讀是指在乙個事務處理過程中讀取了另乙個事務未提交的資料(即將回滾的資料)。
3.不可重複讀
乙個事務對同一行資料重複讀取兩次,但是卻得到了不同的結果。事務a讀取第乙個資料後,事務b對其做了修改,當事務a再次讀該資料時得到與前一次不同的值。
**解決辦法:**如果只有在修改事務完全提交之後才可以讀取資料,則可以避免該問題。
不可重複讀和髒讀的區別是:髒讀詩某乙個事務讀取了另乙個事務
未提交的髒資料(即將回滾的資料),而不可重複讀則是讀取了前
一事務提交(更新)的資料。
4.虛度(幻讀)
同一事務中兩次統計一張資料表的資料得到的結果不一致,第二次讀會增加一行資料。例如:a事務第一次統計了所有員工的薪資之和為10000,但是事務還沒有結束,因為還要讀取第二次,但是在此期間事務b向表中增加了一條員工資訊,並且薪資是1000,此時事務a第二次再去統計薪資結果是:11000,最終事務a兩次統計的結果不一致,這就叫做虛讀。
幻讀和不可重複讀的區別?
* 不可重複讀:描述的是乙個事務兩次讀取同一條資料,發現兩次讀
取的資料結果不一致。
* 幻讀(虛讀):描述的也是乙個事務兩次統計某張資料表的時
候,』發現統計的結果不一致。
事務的特性
事務具有四個特徵 原子性 atomicity 一致性 consistency 隔離性 isolation 和持續性 durability 這四個特性簡稱為 acid 特性。1 原子性 事務是資料庫的邏輯工作單位,事務中包含的各操作要麼都做,要麼都不做 2 一致性 事 務執行的結果必須是使資料庫從乙個...
事務的特性
事務 transaction 是併發控制的單位,是使用者定義的乙個操作序列。這些操作要麼都做,要麼都不做,是乙個不可分割的工作單位。通過事務,sql server能將邏輯相關的一組操作繫結在一起,以便伺服器保持資料的完整性。事務通常是以begin transaction開始,以commit或roll...
事務的特性
如果乙個資料庫聲稱支援事務的操作,那麼該資料庫必須支援以下四個特性 原子性 atomicity 一次事務中如果要進行多個資料操作,最終的結果要麼所有資料操作都成功,要麼所有資料操作都失敗 例如a轉賬給b100元,最終的結果要求a減少100元,b增加100元,不能出現a減少了但b沒有增加 一致性 co...