解析Oracle Database Concepts 12c(3)

Jet_Zhang發表於2017-07-31

事務管理(Transaction Management

Oracle資料庫是一個多使用者資料庫系統,因此Oracle資料庫必須保證多個使用者共同使用時使用者資料不會相互影響。

事務(Transactions)
簡單點說,事務就是包含一個或多個SQL語句的邏輯組合,這個組合具有原子性。所謂原子性就是由一個或多個SQL語句組成的組合要麼一起全部提交,要麼一起全部回滾,不可能出現組合中的一部分SQL提交,一部分SQL回滾的情況。以簡化的銀行轉賬(A轉賬100元給B)為例:
1、A賬戶中減去100元
2、B賬號中增加100元
3、記日誌賬
Oracle資料庫會保證以上3個操作為一個整體,要麼全部成功,要麼全部失敗(回滾)。

併發(Data Concurrency)
另一個對多使用者資料庫系統的要求是有併發控制的能力。這裡所謂的併發是指多個使用者同時訪問同樣的資料。
併發控制是保證資料完整性的重要手段。沒有併發控制,就可能會造成資料的不準確。例如有一個使用者在更新某一行的同時,另一個使用者也在更新該行,這可能就會造成資料的不正確。
等待是實現多個使用者能訪問同樣的資料的一種方法,但是這會造成系統效能的下降。Oracle資料庫採用鎖機制(lock)來實現併發控制。關於鎖機制後續會詳細討論。

資料一致性(Data Consistency)
Oracle資料庫為每個使用者提供一份資料一致性檢視,包括使用者自己事務中的變更和其他使用者已提交的變更。
Oracle資料庫總是保證語句級讀一致性。關於資料一致性後續會再詳細討論。

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

相關文章