在ADO.NET中使用事務保護資料的完整性(1)

來源:互聯網
上載者:User
ado|資料 在ADO.NET中使用事務保護你資料的完整性

Christa May 2004

小結: 當修改資料時,事務是維護資料完整性的一個關鍵特徵. 縱覽一下事務及其重要性,接下來學習如何在你的應用中使用事務保護資料.

內容

介紹

事務剖析

事務在ADO.Net中

實施事務

總結

介紹

大多數企業資料庫為了在資料修改時保證資料的完整性而提供了事務這樣一個特徵. 維護資料的完整性目的是保證組織依賴資料的品質; 畢竟, 當你產生報表或進行一些資料驅動的處理, 你希望知道你操作的資料是正確的.

一個成功的事務必須通過”ACID”測試, 它必須如此:

· 原子性 – 所有在事務中的表述或者執行正確, 或者它們全部復原. 所有操作集合代表或完成或失敗, 而不會是剩下部分, 損壞你的資料.

· 一致性 – 所有通過事務接觸的資料在邏輯上保持一致狀態. 例如, 存貨數量在一個消耗的表中, 這兒有相關的訂單消費存貨. 因此存貨不能丟失.

· 孤立性 – 事務必須在沒有幹擾別的並發事務時或被別的並發事務幹擾的情況下影響數. 這就阻止事務在沒有授權資訊的情況下改變資料. 大部分資料庫使用上鎖保證事務的孤立性.

· 持久性 – 通過事務修改的資料是永久的, 並且會持續到系統失敗.

經典的例子是提交訂單和訂單系統 – 你已經檢查了顧客的信譽等級, 建立了訂單記錄, 建立了訂單條目, 消費訂單條目從庫存中, 建立運輸請求, 等等. 如果這些步驟中的一步或多步失敗, 其餘的將失敗, 你可以在一個孤立的,不可靠的庫存數量,或其它的記錄表格中結束資料的不一致性. 正確的使用事務阻止這種可能發生的情形. 這對於你們的DBA, 你們的公司, 和你的工作的安全性都有好處.

這就是說,記住在有必要的去使用事務. 管理事務會增加系統的開銷. 使用事務也會增加系統中鎖(或其它獨立機制,依賴資料庫)的範圍, 會導致並發問題. 考慮這些情況封裝到事務當中作為一個原子單元執行, 考慮在執行環境下產生的後果, 考慮部分完成時會發生什麼.

事務可以使用各種原生資料庫的SQL變數在伺服器端實施, , 也可以使用ado.net在應用中調用. 本文章使用ado.net資料提供對象實施資料庫事務. 我將以事務剖析為開始並且看它們是如何和你的資料庫互動的. 然後看一下.Net Framework 提供的類是如何協助你在資料讀取代碼中實現和管理事務的, 已經它們一些使用的通常情境.


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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