資料庫中事務是什麼意思?

2021-08-14 21:02:30 字數 1568 閱讀 3960

什麼是事務?我們知道,資料庫是乙個面向多使用者的共享機制,因此資料庫管理系統應當具備併發控制和封鎖機制,保證資料庫系統的正常執行。但是當多個使用者訪問資料庫的時候,如果每乙個使用者程式乙個乙個的序列執行,則每一時刻只有乙個使用者執行對資料庫的操作,其他使用者必須等待,這樣的話會嚴重影響資料庫資源的使用。所以資料庫管理系統必有能夠保證多個使用者同時使用資料庫。但是這樣會出現以下三個主要異常問題:

髒讀資料:當第乙個使用者修改資料時,第二個使用者在第乙個使用者沒有確認修改之前讀取了該資料,這時可能會出現髒讀現象。如果第乙個使用者確認了修改,第二個使用者檢索不到資料庫中所修改的資料,有時這種現象也稱為丟失修改。

不可重複讀:當某乙個使用者對某一行資料進行第一次讀取過程後,另外乙個使用者對該資料進行了修改,從第乙個使用者的角度來看,如果再次讀取原先的資料會發現與前次不同,這就是不可重複讀現象。

發生幻象:當第乙個使用者檢查某張表的時候,沒有發現某個值x,但是在該使用者還沒操作完成之前,另外乙個使用者插入了乙個x值,結果,導致第乙個使用者認為資料庫沒有x值,而實際上資料庫有這個值x。這就是幻象。

使用者之間相互干擾,出現的以上問題,後果不堪設想。因此資料庫系統採用事務的概念來解決這個問題。

事務是一系列作為乙個邏輯單元來執行的操作集合。它是資料庫維護資料一致性的單位,它將資料庫從一致狀態轉變為新的一致狀態,說的簡單一點就是,如果一組處理步驟要麼全部發生要麼一步也不執行,我們稱該組處理步驟為乙個事務。這樣就保證了資料始終一致的狀態,不至於破壞資料的完整性、可靠性。乙個事務執行以後,dbms會自動檢查資料庫中資料的一致性。

確保資料的一致性是保證資料庫裡面的資料正確反映現實世界的前提。舉個例子大家可能就清楚了,比如乙個銀行要將一筆錢從a->b;對資料庫中的操作主要有兩個步驟:一是從a賬戶中減去這筆錢;二是把b賬戶中的錢增加一筆。其實這兩個步驟操作就是乙個邏輯單元,就是乙個操作集合,就是乙個事務。這就要求兩個步驟操作同步執行,要麼它們都操作成功,要麼都操作失敗。如果乙個操作失敗,整個事務也就失敗了,並且已經執行的操作都會被撤消,也就是回滾到先前的狀態。

sqlserver啟動事務有三種模式:

自動提交:在自動提交模式下,每乙個sql語句就是乙個事務(也就是乙個操作),語句執行完成以後,事務也就完成了,這時在這模式下,sqlserver自動結束事務。sqlserver為每個單獨的語句提供這種事務模式,以保證資料的一致性。sqlserver的預設方式就是這種方式。但是如果是一組語句操作,要想使用事務模式就得採用下面的方式了。

顯式:當明確事務開始和結束的點時,所使用的就是顯式事務模式。   開始事務語句:begin transaction;結束事務語句:commit(成功提交)、rollback(事務失敗)。

隱式:無論何時使用某些sql語句,sqlserver就會隱式的啟動乙個事務。在這裡他也把每乙個sql語句當作乙個事務,只不過這種模式負責啟動事務,而自動提交模式負責提交事務,也就是結束事務。

舉例說明如:begin transaction update_a  //開始事務

update biao set a=2000

rollback transaction  update_a  //結束事務

上面的情況是在sql查詢分析器中執行的,可以虛擬兩個使用者,同時對biao進行訪問,乙個更新資料,乙個查詢資料,兩個使用者訪問時間交叉。

uma是什麼意思 UMA是什麼意思?

展開全部 uma 不明生物 是636f707962616964757a686964616f31333431376537動畫 進化戰記 betterman 中的一類人造怪物的統稱,是生命工學食料研究所 b.p.l.所長梅崎博士製造出來 協助他利用阿尼瑪斯之花 大量製造蛋白質 具有驚人攻擊性的怪物。阿拉...

是什麼意思?

meta是html中的元標籤,其中包含了對應html的相關資訊,客戶端瀏覽器或伺服器端的程式會根據這些資訊進行處理。http equiv類似於http的頭部協議,它回應給瀏覽器一些有用的資訊,以幫助正確和精確地顯示網頁內容。content 內容型別 重要!這個網頁的格式是文字的,網頁模式 chars...

In 是什麼意思

函式引數型別前 in 代表什麼 在visual c 中屬於sal批註,是為了編譯系統在分析 時發現缺陷用的 表示是乙個輸入引數。可以定義乙個 in 的巨集,這個巨集什麼都不做,就是形如這樣的。define in void fun int in x 等同於 void fun int x 但是他給出了引...