交易
交易的概念是用來處理下列情況:資料庫的結果狀態取決於一系列的作業是否全部成功而定。 因為連續的作業可能會修改之前作業的結果,於是交易的概念也就應運而生。 在此種情形下,如果任一個作業失敗,就可能無法確定結果的狀態。
若要解決這項問題,交易會將一系列的作業群組起來,以確保最後結果的完整性。 不是所有作業成功然後認可 (寫入至資料庫),就是整個交易失敗。 取消交易就稱之為復原。 復原可以回復所做的變更,並將資料庫回復至交易前狀態。
例如自動銀行提存交易,如果將錢由 A 帳戶轉帳到 B 帳戶,則從 A 提錢以及存錢至 B 的動作都必須成功的將金額正確處理,否則整筆交易就算失敗。
交易必須有 ACID 屬性,其代表以下含意:
單元性 (Atomicity):交易是原子單位 (Atomic Unit) 的工作,並且只執行一次,工作不是全部完成,就是全部沒做。
一致性 (Consistency):交易維持資料的一致性,將一致的資料狀態轉換至另一個一致的資料狀態。 受交易所繫結的資料意義絕對不會改變。
隔離性 (Isolation):交易是隔離的單位,每個交易會個別發生且不受並行 (Concurrent) 交易的影響。 一個交易絕不應該看見其他交易的中繼階段。
持續性 (Durability):交易是可復原的單位。 如果交易成功,即使系統當機或被關閉,所做的更新都會被保存。 如果交易失敗,系統將保持在認可此交易之前的狀態。
您可以在 OLE DB 中支援交易 (請參閱支援 OLE DB 中的交易) 或在 ODBC 中支援交易 (請參閱交易 (ODBC))。
分散式交易是一種更新分散式資料的交易,也就是說,資料位在一個以上的網路電腦系統上。 如果您要在分散式系統上支援交易,您應該使用 Microsoft .NET Framework,而非 OLE DB 交易支援。