標籤:style 一致性 rac isolation 失敗 sql commit abi mic
事務具有四個特徵(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特性