資料庫中的事物__資料庫

來源:互聯網
上載者:User

事務

概念:在資料中事務是工作的邏輯單元,一個事務是有一個獲多個完成一組的相關行為的Sql語句組成。通過事務機制確保這一組sql語句所作的操作要麼完全執行成功,要麼一點也不執行。

主要特徵:確保資料庫的完整性

事務的ACID特性:

A是事務的原子性:事務中包含的所有操作要麼全做,要麼全不做,也就是說所有的活動在資料中要麼全反映要不全都不反映。

C是事務的一致性:資料庫在事務操作前和交易處理後,其中資料必須滿足業務的規則約束。

I是事務的隔離性:資料庫允許多個並發的事物同時對其中的資料進行讀寫或修改的能力,隔離性可以防止多個事物的並發執行時,由與它們的操作命令交叉執行而導致資料的不一致性

D是事務的持久性:交易處理結束後,它對修改應該是永久的。即使是系統在遇到故障的情況下也不會丟失,這是資料的重要性決定的。

 

資料異常:

隔離性定義了一個事物與其它事物的隔離程度,為了更好的理解隔離層。首先討論一下並發事務對同一個資料庫進行訪問可能發生的情況,在並發事務中總體來說會發生3中情況:

錯讀(髒讀),非重複讀取(不可重複讀取),假讀(幻讀)

髒讀:當一個事物修改資料庫時,另一個事務讀取了該資料,但第一事務由於某種原因取

消對資料修改,使資料返回了原來的狀態,這時第二個事物讀取的資料與資料庫中資料不一致,這就是髒讀。

非重複讀:一個事務讀取資料庫中的資料後,另一個事務則更新了資料,當第一個事務再次讀取其中的資料時,就會探索資料已經發生了改變,這就是非重複讀取。非重複讀取所導致的結果就是一個事務前後兩次讀取的資料不相同。

假讀:如果一個事務基於某個條件讀取資料後,另一個事務則更新了同一個表中的資料,這時第一個事務再次讀取資料時,根據搜尋的條件返回了不同的行,這就是假讀

 

事務中遇到的這些異常與事務的隔離性設定有關,事務的隔離性設定越多,異常就出現的越少,但並發效果就越低,事務的隔離性設定越少,異常出現的越多,並發效果越高。

 

選擇隔離層

   針對3中讀取的資料時產生的不一致現象,在ANSISQL標準92中定義了4個事務的隔離等級.如下圖所示:

隔離層       錯讀|髒讀 非重複讀取|不可重複讀取 假讀|幻讀

READ UNCOMMITTED(非提交讀)  是         是            是

READ COMMITTED(提交讀)    否         是            是

Repeatable READ(可重複讀) 否         否            是

Serializable(串列讀)      否            否            否

 

Oracle支援上述四種隔離層中的兩種:readcommitted 和serializable。除此之外oralce中還定義read only 和 read write隔離層。

 Readcommitted 這是oracle預設的隔離層。

Serializable:設定事物的隔離層位它時,事務與事務之間完全隔開,事務以串列的方式執行,這並不是說一個事務必須結束才能啟動另外一個事務,而是說這些事務的執行的結果於一次執行的事務的結果一致。

 

Read only和 read write當使用read only時,事務中不能有任何修改資料庫中資料的動作陳述式,這包括 insert、update、delete、create語句。Read only是serializable的一個子集,區別是read only 唯讀,而serialzable可以執行DML操作。Read write它是預設設定,該選項表示在事務中可以有訪問語句、修改語句.但不經常使用.

執行語句:

Commit 提交語句;

Rollback 復原事務;

SAVEPOINT語句在當前事務中建立儲存點:

ROLLBACK TO SAVEPOINT 復原到儲存點。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.