1. 程式人生 > >轉載:oracle事務的ACID特性

轉載:oracle事務的ACID特性

pan 操作 個數 comm ora com 管理系統 物理 更新數據

事務具有四個特征(ACID):
原子性( Atomicity )
指整個數據庫事務是不可分割的工作單位。只有使據庫中所有的操作執行成功,才算整個事務成功;事務中任何一個SQL語句執行失敗,那麽已經執行成功的SQL語句也必須撤銷,數據庫狀態應該退回到執行事務前的狀態。
一致性( Consistency )
事務執行的結果必須是使數據庫從一個一致性狀態變到另一個一致性狀態。因此當數據庫只包含成功事務提交的結果時,就說數據庫處於一致性狀態。如果數據庫系統 運行中發生故障,有些事務尚未完成就被迫中斷,這些未完成事務對數據庫所做的修改有一部分已寫入物理數據庫,這時數據庫就處於一種不正確的狀態,或者說是 不一致的狀態。
隔離性( Isolation )

一個事務的執行不能與其它事務互相幹擾。即一個事務內部的操作及使用的數據對其它並發事務是隔離的,並發執行的各個事務之間不能互相幹擾。
事務鎖的概念:數據庫管理系統采用鎖機制來實現事務的隔離性。當多個事務同時更新數據庫中相同的數據時,只允許持有鎖的事務能更新該數據,其他事務必須等待,直到前一個事務釋放了鎖,其他事務才有機會更新該數據。
持續性( Durability )
也稱永久性,指一個事務一旦提交,它對數據庫中的數據的改變就應該是永久性的。接下來的其它操作或故障不應該對其執行結果有任何影響。
這四個特性簡稱為 ACID 特性。

事務的操作

Session(會話):表示一個唯一的登陸用戶。在Oracle中,每一個登陸到數據庫上的用戶都會自動的分配一個 Session,即:每一個session都表示不同的用戶,而每一個session都有自己獨立事務。
每個Session的事務處理操作都可以使用兩個命令:
commit:提交事務。只有執行了commit 操作之後,更新操作才真正寫入數據庫,而沒有 commit之前的所有更新操作都會保存在事務事務緩沖區中。
rollback:回退事務。如果發現更新操作有問題,則可以使用 rollback 恢復所有更新操作退回到執行事務前的狀態。

事務的隔離性( Isolation )
相同數據被某個session獲得,則該數據的執行權被占據,其他的session不能操作。如果有其他session請求操作該數據,則只有等待獲得該數據執行權的session提交操作或者回滾操作後。後來的session才能獲得該數據的執行權。

轉載:oracle事務的ACID特性