- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
资料库系统理论与实务-使用Oracle
資料庫系統理論與實務-使用Oracle 第九章 異動處理與並行性問題 9-1 資料並行性與資料一致性 資料並行性(Data Concurrency) 資料一致性(Data Consistency) 9-1-1 異動交易的四大特性 單元性(Atomicity) 一致性(Consistency) 隔離性(Isolation) 持續性(Durability) 單元性(Atomicity) 一個異動交易(Transaction) 中包含了數個以上資料庫動作(Actions)。 整個異動交易必須視為一個不可分割的單元。也就是說整個異動交易的所有動作必須全部做完,若異動交易的中間過程有任何錯誤產生時,必須撤回(Rollback) 到未執行異動交易前的原點,也就是整個異動都不做。 一致性(Consistency) 異動交易(Transaction) 在處理過程前後,必須使資料庫處理保持一致的狀態,雖然異動交易的過程中未必保持一致性。 隔離性(Isolation) 異動交易(Transaction) 執行的過程中,所用到的資料或所產生的中間結果,都不能透露給其它異動交易讀取或更改,稱之為異動交易的「隔離性」。 持續性(Durability) 如果異動交易執行過程都完全正常,且異動交易被委付確認(Commit) 後,無論事後系統發生錯誤,則當系統排除錯誤,恢復正常時,原異動交易被委付確認的資料仍必須存在。 9-2 常見的並行控制問題 遺失更新問題(Lost Update Problem) 未委付確認相依問題(Uncommitted Dependency Problem) 不一致分析問題 (Inconsistent Analysis Problem) 遺失更新問題(Lost Update Problem) 未委付確認相依問題(Uncommitted Dependency Problem) 不一致分析問題 (Inconsistent Analysis Problem) 9-3 排程(Schedule) 的概念 序列化排程(Serial Schedule):所謂序列化排程(Serial Schedule) 是指一個異動交易(Transaction) 緊接著另一個異動交易循序地執行,而且不相互交叉執行。 序列化排程對於資料庫一致性的意義 一個一致性的資料庫經過任何序列化排程運作後,該資料庫還是合乎一致性的。 非序列化排程(Non-serial Schedule) 指多個異動交易(Transaction) 同時交錯地執行,然而個別異動交易內各動作(Action),仍遵守它在該異動交易內的先後順序。 可序列化排程(Serializable Schedule) 若一非序列化排程(Non-serial Schedule),其執行結果與任一個序列化(Serial Schedule)的執行結果相同,則該非序列化排程稱為“可序列化排程”(Serializable Schedule)。 可序列化排程的例子 9-4 鎖定(Locks) 在多使用者的資料庫(Multi-user Database) 中,一般都採取某些資料鎖定(Locks) 來解決並行處理(Concurrency) 中資料的一致性(Consistency) 與整合性(Integrity) 問題。 主要的兩種鎖定(Lock) 互斥鎖定(Exclusive Lock) 共享鎖定(Share Lock) 互斥鎖定(Exclusive Lock) 它禁止相關資源共享。如果一異動交易(Transaction) 以互斥鎖定方式封鎖某資源,則僅有該異動交易(Transaction) 被允許更新該資源的資料,直到該異動交易釋放對該資源的鎖定。 共享鎖定(Share Lock) 它允許相關資源可以被共享(Share),例如:多個使用者可以讀取(Read) 相同的資料。多個異動交易(Transaction) 可以對同一資源獲得共享鎖定。 死結的例子 兩種不同層次一致性 敘述層級讀取一致性(Statement-level Read Consistency) 異動交易層級讀取一致性(Transaction-level Read Consistency) 9-4-1 敘述層級讀取一致性 ORACLE 系統通常實施敘述層級讀取一致性,以保證個別查詢所傳回的資料與該查詢開始時一致。因此一個查詢從不會看到查詢過程中其他異動交易所做的委付確認(Commit) 的任何更新資料。 example 異動交易層級讀取一致性 ORACLE 允許選擇實施異動交易層級讀取一致性,它保證在同一個時間點,同一個異動交易內的所有查詢資料是一致的。因此異動交易層級
文档评论(0)