1. 程式人生 > >事務及回滾

事務及回滾

事務的ACID特性,即原子性、一致性、隔離性、永續性。

1、原子性:事務必須是原子工作單元,對其進行的資料修改,要麼全部執行,要麼全不執行。事務執行的結果必須是使資料庫從一個一致性狀態變到另一個一致性狀態。比如,當資料庫只包含成功事務提交的結果時,就說資料庫處於一致性狀態。如果資料庫系統在執行中發生故障,有些事務尚未完成就被迫中斷,這些未完成事務對資料庫所做的修改有一部分已寫入物理資料庫,這時資料庫就處於一種不正確的狀態,或者說是不一致的狀態。

2一致性:事務在完成時,必須使所有的資料都保持一致狀態,即所有的資料都要發生更改,以保證資料的完整性。

3隔離性:一個事務的執行不能其它事務干擾。即一個事務內部的操作及使用的資料對其它併發事務是隔離的,併發執行的各個事務之間不能互相干擾。

4永續性:一旦事務被提交之後,資料庫的變化中資料的改變就應該是永久性的。接下來的其它操作或故障不應該對其執行結果有任何影響。

不需要顯式使用事務語句開始一個事務,當遇到第一個DML語句時,一個事務開始,在出現以下情況時,事務結束。

(1)當遇到 commit 語句 或 rollback 語句時,將提交或回滾事務。

(2)當用戶退出 Oracle工具時。

(3)當機器失效或系統奔潰時。