oracle資料庫事物四大特性

達芬奇的夢發表於2017-04-28

RDBMS(關係型資料庫管理系統的英文縮寫)所具有的4個重要特性:原子性、一致性、隔離性、永續性,用英文頭字母表示為ACID。

原子性:要麼完全做,要麼完全不做。例如:一個事務執行刪除1000個記錄的SQL,執行到999後錯誤,那麼事務終止(回滾)。簡單點就是王八考試成績為59.5分,最終的結果就是不及格。只是資料庫把不及格和及格的操作分為0分(rollback)和100分(commit)兩種。

永續性:王八往銀行存入1塊錢,20年後王八希望查詢這1塊錢是什麼時候存的,銀行工作人員不能把這1塊的記錄刪掉或忽略掉。那麼oracle可以檢索到所有已提交的事務,透過資料庫恢復機制實施,採用先行寫的方式,在資料寫入磁碟的資料檔案前,先把事務寫入到磁碟的重做日誌。

隔離性:關係型資料庫的特點是併發性,實際中,會有很多不同的使用者對錶進行插入、刪除、修改操作,因此在一個事務提交前不能看到其它相關事務所更改的內容,所以每個事務都是隔離的,oracle透過併發性控制來支援。

一致性:舉個例子,王八又去銀行辦理手續,他希望把儲蓄賬戶裡面的1塊錢取出,然後存入支票賬戶,那麼銀行工作人員不能夠直接把1塊錢存入支票賬戶,王八不可能變成2塊錢,銀行不允許這樣的操作,oracle也不例外。再舉個oracle的例子:使用者希望刪除部門ID A,但僱員表中有一個僱員屬於部門A,那麼oracle不允許刪除部門A。

 

事務併發性控制:所有使用者所看到的資料必須是一致的,維護一個單使用者的資料庫一致性非常的簡單,但是實際中會有許多不同的使用者會修改、刪除、插入資料到一張表中,那麼併發性就會帶來資料不一致的問題,所以oracle採用一種鎖定的機制來保持資料的一致性。一個事務修改一張表時,oracle將鎖定整張表,這樣一個事務的操作不會影響到其他事務。在併發性控制下,就像使用者一個接一個的處理事務,oracle犧牲了併發性,為了最大的提高併發性oracle使用的鎖定是最小限制方式。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31444259/viewspace-2138184/,如需轉載,請註明出處,否則將追究法律責任。

相關文章