《资料库系统理论与实务-使用Oracl.ppt》由会员分享,可在线阅读,更多相关《资料库系统理论与实务-使用Oracl.ppt(41页珍藏版)》请在三一办公上搜索。
1、資料庫系統理論與實務-使用Oracle,1,第九章異動處理與並行性問題,資料庫系統理論與實務-使用Oracle,2,9-1資料並行性與資料一致性,資料並行性(Data Concurrency)資料一致性(Data Consistency),資料庫系統理論與實務-使用Oracle,3,9-1-1 異動交易的四大特性,單元性(Atomicity)一致性(Consistency)隔離性(Isolation)持續性(Durability),資料庫系統理論與實務-使用Oracle,4,單元性(Atomicity),一個異動交易(Transaction)中包含了數個以上資料庫動作(Actions)。整個異
2、動交易必須視為一個不可分割的單元。也就是說整個異動交易的所有動作必須全部做完,若異動交易的中間過程有任何錯誤產生時,必須撤回(Rollback)到未執行異動交易前的原點,也就是整個異動都不做。,資料庫系統理論與實務-使用Oracle,5,一致性(Consistency),異動交易(Transaction)在處理過程前後,必須使資料庫處理保持一致的狀態,雖然異動交易的過程中未必保持一致性。,資料庫系統理論與實務-使用Oracle,6,隔離性(Isolation),異動交易(Transaction)執行的過程中,所用到的資料或所產生的中間結果,都不能透露給其它異動交易讀取或更改,稱之為異動交易的隔
3、離性。,資料庫系統理論與實務-使用Oracle,7,持續性(Durability),如果異動交易執行過程都完全正常,且異動交易被委付確認(Commit)後,無論事後系統發生錯誤,則當系統排除錯誤,恢復正常時,原異動交易被委付確認的資料仍必須存在。,資料庫系統理論與實務-使用Oracle,8,9-2常見的並行控制問題,遺失更新問題(Lost Update Problem)未委付確認相依問題(Uncommitted Dependency Problem)不一致分析問題(Inconsistent Analysis Problem),資料庫系統理論與實務-使用Oracle,9,遺失更新問題(Lost
4、Update Problem),資料庫系統理論與實務-使用Oracle,10,未委付確認相依問題(Uncommitted Dependency Problem),資料庫系統理論與實務-使用Oracle,11,不一致分析問題(Inconsistent Analysis Problem),資料庫系統理論與實務-使用Oracle,12,9-3排程(Schedule)的概念,序列化排程(Serial Schedule):所謂序列化排程(Serial Schedule)是指一個異動交易(Transaction)緊接著另一個異動交易循序地執行,而且不相互交叉執行。,資料庫系統理論與實務-使用Oracle,
5、13,序列化排程對於資料庫一致性的意義,一個一致性的資料庫經過任何序列化排程運作後,該資料庫還是合乎一致性的。,資料庫系統理論與實務-使用Oracle,14,非序列化排程(Non-serial Schedule),指多個異動交易(Transaction)同時交錯地執行,然而個別異動交易內各動作(Action),仍遵守它在該異動交易內的先後順序。,資料庫系統理論與實務-使用Oracle,15,可序列化排程(Serializable Schedule),若一非序列化排程(Non-serial Schedule),其執行結果與任一個序列化(Serial Schedule)的執行結果相同,則該非序列化
6、排程稱為“可序列化排程”(Serializable Schedule)。,資料庫系統理論與實務-使用Oracle,16,可序列化排程的例子,資料庫系統理論與實務-使用Oracle,17,9-4鎖定(Locks),在多使用者的資料庫(Multi-user Database)中,一般都採取某些資料鎖定(Locks)來解決並行處理(Concurrency)中資料的一致性(Consistency)與整合性(Integrity)問題。,資料庫系統理論與實務-使用Oracle,18,主要的兩種鎖定(Lock),互斥鎖定(Exclusive Lock)共享鎖定(Share Lock),資料庫系統理論與實務-
7、使用Oracle,19,互斥鎖定(Exclusive Lock),它禁止相關資源共享。如果一異動交易(Transaction)以互斥鎖定方式封鎖某資源,則僅有該異動交易(Transaction)被允許更新該資源的資料,直到該異動交易釋放對該資源的鎖定。,資料庫系統理論與實務-使用Oracle,20,共享鎖定(Share Lock),它允許相關資源可以被共享(Share),例如:多個使用者可以讀取(Read)相同的資料。多個異動交易(Transaction)可以對同一資源獲得共享鎖定。,資料庫系統理論與實務-使用Oracle,21,死結的例子,資料庫系統理論與實務-使用Oracle,22,兩種不
8、同層次一致性,敘述層級讀取一致性(Statement-level Read Consistency)異動交易層級讀取一致性(Transaction-level Read Consistency),資料庫系統理論與實務-使用Oracle,23,9-4-1敘述層級讀取一致性,ORACLE 系統通常實施敘述層級讀取一致性,以保證個別查詢所傳回的資料與該查詢開始時一致。因此一個查詢從不會看到查詢過程中其他異動交易所做的委付確認(Commit)的任何更新資料。example,資料庫系統理論與實務-使用Oracle,24,異動交易層級讀取一致性,ORACLE 允許選擇實施異動交易層級讀取一致性,它保證在同
9、一個時間點,同一個異動交易內的所有查詢資料是一致的。因此異動交易層級讀取一致性可以允許重覆性的讀取,仍保證資料的一致性。,資料庫系統理論與實務-使用Oracle,25,兩種保證異動交易層次讀取一致性的方法,唯讀異動交易(Read only Transaction)互斥表鎖定與列鎖定(Exclusive Table and Row Lock),資料庫系統理論與實務-使用Oracle,26,9-5ORACLE 的鎖定機制,ORACLE 會自動地使用不同的鎖定來控制資料的並行存取(Concurrency Access)以防止使用者間的破壞性干擾。ORACLE 系統會自動地鎖定某一資源以防止其他異動交
10、易對同一資源的互斥鎖定(Exclusive Lock)。當某些特定事件(event)發生或異動交易不再需要該資源時,異動交易會自動地解除該鎖定。,資料庫系統理論與實務-使用Oracle,27,ORACLE 鎖定種類,資料鎖定(Data Lock)資料字典鎖定(Dictionary Lock)內部鎖定(Internal Lock)分散式鎖定(Distributed Lock)平行緩衝管理鎖定(Parallel Cache Management Lock),資料庫系統理論與實務-使用Oracle,28,資料鎖定(Data Lock),資料鎖定保護資料。其中包括了表格鎖定與列鎖定。表格鎖定鎖住整個表
11、格,列鎖定鎖定了所選定的列。資料鎖定亦稱為 DML 鎖定(DML Lock),資料庫系統理論與實務-使用Oracle,29,資料字典鎖定(Dictionary Lock),資料字典鎖定保護資料庫物件的結構,例如表格(Table)與視觀表格(View)等的定義。資料字典鎖定亦稱為 DDL 鎖定(DDL Lock)。,資料庫系統理論與實務-使用Oracle,30,內部鎖定(Internal Lock),內部鎖定保護內部資料庫結構,例如:檔案。這類鎖定是完全自動地設定。,資料庫系統理論與實務-使用Oracle,31,分散式鎖定(Distributed Lock),分散式鎖定確保資料或資源在多個不同版
12、本的 ORACLE 平行伺服器中保持資料一致性。,資料庫系統理論與實務-使用Oracle,32,平行緩衝管理鎖定(Parallel Cache Management Lock),平行緩衝管理鎖定是種分散式鎖定,它涵蓋了緩衝區(Buffer)中一個或多個資料區塊(Data Block)。亦稱 PCM Lock。,資料庫系統理論與實務-使用Oracle,33,資料鎖定(Data Lock),資料鎖定保護表格資料,並確保多個使用者平行存取資料時的資料整合性(Data Integrity)。資料鎖定防止相衝突的 DML 和 DDL 操作造成的破壞性干擾。DML 操作能獲得兩種等級的鎖定:特定列鎖定(R
13、ow Locks)與整個表鎖定(Table Locks)。,資料庫系統理論與實務-使用Oracle,34,列鎖定(Row Locks),當某特定列被以下的指令所更新時要實施列鎖定(Row Locks)。列鎖定總是互斥鎖定(Exclusive Lock)。例如:INSERT、UPDATE、DELETE,資料庫系統理論與實務-使用Oracle,35,9-5-3 表鎖定(Table Locks),列共享表鎖定(Row Share Table Lock,RS)列互斥表鎖定(Row Exclusive Table Lock,RX)共享表鎖定(Share Table Lock,S)共享列互斥表鎖定(Sha
14、re Row Exclusive Table Lock,SRX)互斥表鎖定(Exclusive Table Lock,X),資料庫系統理論與實務-使用Oracle,36,列共享表鎖定(Row Share Table Lock,RS),當一異動交易(Transaction)欲企圖更新某特定列時,可設定此種鎖定,以防止其他異動交易更新那些特定列。SELECT FROM 表格名 FOR UPDATE OF;LOCK TABLE 表格名 IN ROW SHARE MODE;,資料庫系統理論與實務-使用Oracle,37,列互斥表鎖定(Row Exclusive Table Lock,RX),此種表鎖定
15、表示該異動交易(Transaction)對某些特定列做過一次或多次更新的動作。INSERTINTO 表格名;UPDATE 表格名;DELETEFROM 表格名;LOCK TABLE表格名 IN ROW EXCLUSIVE MODE;,資料庫系統理論與實務-使用Oracle,38,共享表鎖定(Share Table Lock,S),當執行下列的指令時,會自動設定該表格為共享表鎖定(S):LOCK TABLE IN SHARE MODE;,資料庫系統理論與實務-使用Oracle,39,共享列互斥表鎖定(Share Row Exclusive Table Lock,SRX),它比共享表鎖定(S)具有更多限制,當異動交易(Transaction)執行以下的指令時會自動地設定該表格為共享列互斥表格鎖定(SRX):LOCK TABLE 表格名 IN SHARE ROW EXCLUSIVE MODE;,資料庫系統理論與實務-使用Oracle,40,互斥表格鎖定(Exclusive Table Lock,X),此種為限制最嚴格的表鎖定,它允許獲得此鎖定的異動交易對該表格做存取。當異動交易執行以下的指令時會自動地獲得互斥表鎖定(X):LOCK TABLE 表格名 IN EXCLUSIVE MODE;,資料庫系統理論與實務-使用Oracle,41,表鎖定總結,
链接地址:https://www.31ppt.com/p-5844018.html