資料庫 資料庫併發事務導致的五大問題

2021-09-25 10:27:43 字數 768 閱讀 8543

關於事務

資料庫事務是資料庫管理系統執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。

資料庫事務通常包含了乙個序列對資料庫的讀/寫操作。包含有以下兩個目的:

為資料庫操作序列提供了乙個從失敗者中恢復到正常狀態的方法,同時提供了資料庫即使在異常狀態下仍能保持一致性的方法;

當多個應用程式在併發訪問資料庫時,可以在這些應用程式之間提供乙個隔離方法,以防止彼此的操作互相干擾。

事務(transaction)是併發控制的基本單位。所謂事務,它是乙個操作序列,這些操作要麼都執行,要麼都不執行,它是乙個不可分割的工作單位。

例子:某人要在商店使用電子貨幣購買100元的商品,其中至少包括兩個操作——該人賬戶減少100元 & 商店賬戶增加100元,這兩個操作構成整個事務,支援事務的資料庫管理系統(transactional dbms)就是要確保這兩個事務都能完成,或者一起取消,否則就會出現100元憑空消失的情況。

資料庫事務擁有acid特性:

資料庫併發事務導致的五大問題

兩類更新問題 & 三類讀問題

第一類丟失更新

a事務撤銷時,把已經提交的b事務的更新資料覆蓋了。

第二類丟失更新

a事務提交時,把已經提交的b事務的更新資料覆蓋了。

髒讀讀到未提交更新的資料。

不可重複讀

讀到已經提交更新的資料,但乙個事務範圍內兩個相同的查詢卻返回了不同的資料。

幻讀讀到了另乙個事務已提交的插入資料。

資料庫事務隔離級別

資料庫併發事務

比如有乙個方法a,在a的內部有兩次同樣的select查詢,但是在兩次select之間方法b對資料庫進行了修改,那麼查詢到的a兩次查詢到的內容是否一致呢,這其實就是資料庫的 不可重複讀 幻讀 問題 這裡用spring hibernate mysql實驗,如果方法a不在事務環境下執行,那麼查詢到的兩次結...

五大主流資料庫比較

一 開放性 1.sql server 只能在windows上執行,沒有絲毫的開放性,作業系統的系統的穩定對資料庫是十分重要的。windows9x系列產品是偏重於桌面應用,nt server只適合中小型企業。而且windows平台的可靠性,安全性和伸縮性是非常有限的。它不象unix那樣久經考驗,尤其是...

資料庫五大約束

所謂約束,其實就是一種保障,比如乙個屬性新增了主鍵約束,那麼就強制保障了它的唯一性和非空性,請帶著這樣正確的理解去閱讀後文。資料庫有五大約束,分別是 主鍵約束的要求是 唯一,非空 因此主鍵不需要 也不能再設定唯一約束了。另外,主鍵可以設定自動增長,而且,主鍵不一定是自動增長的,但自動增長的一定是主鍵...