1、事務概念:
概念:在資料庫中事務是工作的邏輯單元,一個事務是由一個或多個完成一組的相關行為的SQL語句組成,通過事務機制確保這一組SQL語句所作的操作要麼完全成功執行,完成整個工作單元操作,要麼一點也不執行。
主要特性:確保資料庫的完整性。
2、事務的ACID特性
對一組SQL語句操作構成事務,資料庫作業系統必須確保這些操作的原子性,一致性,隔離性,持久性.
1、 原子性(Atomicity)
事務的原子性是指事務中包含的所有操作要麼全做,要麼不做,也就是說所有的活動在資料庫中要麼全部反映,要麼全部不反映,以保證資料庫的一致性。
2、 一致性(Consistency)
事務的一致性是指資料庫在事務操作前和交易處理後,其中資料必須滿足業務的規則約束。
3、 隔離性(Isolation)
隔離性是指資料庫允許多個並發的事務同時對其中的資料進行讀寫或修改的能力,隔離性可以防止多個事務的並發執行時,由於它們的操作命令交叉執行而導致資料的不一致性。
4、 持久性(durability)
事務的持久性是指在交易處理結束後,它對資料的修改應該是永久的。即便是系統在遇到故障的情況下也不會丟失,這是資料的重要性決定的。
3、事務的控制語句
在Oracle資料庫中,沒有提供開始交易處理語句,所有的事務都是隱式開始的,也就是說在oracle中,使用者不可以顯示使用命令來開始一個事務.oracle任務第一條修改資料庫的語句,或者一些要求交易處理的場合都是事務的隱式開始。但是當使用者想要終止一個交易處理時,必須顯示使用commit和rollback語句結束。
根據事務ACID屬性,oracle提供了如下的事務控制語句:
Set transaction 設定事物屬性
Set constrains 設定事物的約束模式
約束模式是指:在事務中修改資料時,資料庫中的約束立即應用於資料,還是將約束延遲到當前事務結束後應用。
Savepoint 在事務中建立一個儲存的點.當交易處理發生異常而復原事務時,可指定交易回復到某儲存點.然後從該儲存點重新執行。
Release savepoint 刪除儲存點
Rollback 復原事務 取消對資料庫所作的任何操作
Commit 提交事務 對資料庫的操作做持久的儲存。
3、1設定事物的屬性:
set transaction語句可用來設定事物的各種屬性。該語句必須放在交易處理的第一個語句.
也就是說,必須在任何insert、update 、delete語句以及其他的交易處理。
Set transaction的語句可以讓使用者對事務的以下屬性進行設定
指定事務的隔離層
規定復原事務所使用的儲存空間
命名事務
備忘:在使用set transaction語句設定屬性時,對於規定復原事務所使用的儲存空間的設定很少使用.對於命名事務也非常簡單,只有在分散式交易處理中才會體現出命名事務的用途.
注意:set transaction只對當前事務有效,事務終止,事務當前的設定將會失效。