freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計算機軟件及應用]并發(fā)控制-文庫吧

2024-10-04 04:09 本頁面


【正文】 200,與數(shù)據(jù)庫內(nèi)容不一致,就是“臟”數(shù)據(jù) 總結一下 ? 并發(fā)操作 會破壞數(shù)據(jù)不一致性 ? 并發(fā)控制就是要用 正確的方式調(diào)度并發(fā)操作 ,使一個用戶事務的執(zhí)行不受其他事務的干擾,從而避免造成數(shù)據(jù)的不一致性 ? 對數(shù)據(jù)庫的應用有時允許某些不一致性,例如有些統(tǒng)計工作涉及數(shù)據(jù)量很大,讀到一些 “ 臟 ” 數(shù)據(jù)對統(tǒng)計精度沒什么影響,可以降低對一致性的要求以減少系統(tǒng)開銷 引導學生分析問題、定義問題 ? DBMS對并發(fā)事務不同的調(diào)度可能會產(chǎn)生不同的結果。 ? 那么什么是正確性的標準呢? ? 直觀上:串行調(diào)度是正確的! ? 執(zhí)行結果等價于串行調(diào)度的調(diào)度也是正確的,稱為可串行化調(diào)度 錯誤出現(xiàn)的原因 ? 產(chǎn)生這些錯誤的 主要原因 是由于違反了事務ACID中的四項原則,特別是隔離性原則。為保證事務并發(fā)執(zhí)行的正確,必須要有一定的調(diào)度手段以保障事務并發(fā)執(zhí)行中一事務執(zhí)行時不受其他事務的影響。并發(fā)控制就是要用正確的方式調(diào)度并發(fā)操作,使一個用戶事務的執(zhí)行不受其他事務的干擾,從而避免造成數(shù)據(jù)的不一致性。 如何設計并發(fā)控制機制 ?并發(fā)控制的主要技術 – 封鎖 (Locking) – 時間戳 (Timestamp) – 樂觀控制法 ?商用的 DBMS一般都采用封鎖方法 什么是封鎖 ? 封鎖就是事務 T在對某個數(shù)據(jù)對象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖 ? 加鎖后事務 T就對該數(shù)據(jù)對象有了一定的控制,在事務 T釋放它的鎖之前,其它的事務不能更新此數(shù)據(jù)對象。 ? 封鎖是實現(xiàn)并發(fā)控制的一個非常重要的技術 基本封鎖類型 ? 一個事務對某個數(shù)據(jù)對象加鎖后究竟擁有什么樣的控制由封鎖的類型決定。 ? 基本封鎖類型 – 排它鎖( Exclusive Locks,簡記為 X鎖) – 共享鎖( Share Locks,簡記為 S鎖) 排它鎖 ?排它鎖又稱為寫鎖 ?若事務 T對數(shù)據(jù)對象 A加上 X鎖,則只允許 T讀取和修改 A,其它任何事務都不能再對 A加任何類型的鎖,直到 T釋放 A上的鎖 ?保證其他事務在 T釋放 A上的鎖之前不能再讀取和修改 A 共享鎖 ?共享鎖又稱為讀鎖 ?若事務 T對數(shù)據(jù)對象 A加上 S鎖,則其它事務只能再對 A加 S鎖,而不能加 X鎖,直到 T釋放 A上的 S鎖 ?保證其他事務可以讀 A,但在 T釋放 A上的 S鎖之前不能對 A做任何修改 鎖的相容矩陣 Y=Yes,相容的請求 N=No,不相容的請求 T1 T2 X S X N N Y S N Y Y Y Y Y 鎖的相容矩陣(續(xù)) 在鎖的相容矩陣中: ? 最左邊一列表示事務 T1已經(jīng)獲得的數(shù)據(jù)對象上的鎖的類型,其中橫線表示沒有加鎖。 ? 最上面一行表示另一事務 T2對同一數(shù)據(jù)對象發(fā)出的封鎖請求。 ? T2的封鎖請求能否被滿足用矩陣中的 Y和 N表示 – Y表示事務 T2的封鎖要求與 T1已持有的鎖相容,封鎖請求可以滿足 – N表示 T2的封鎖請求與 T1已持有的鎖沖突, T2的請求被拒絕 使用封鎖機制解決丟失修改問題 T1 T2 ① Xlock A ② R(A)=16 Xlock A ③ A←A 1 等待 W(A)=15 等待 Commit 等待 Unlock A 等待 ④ 獲得 Xlock A R(A)=15 A←A 1 ⑤ W(A)=14 Commit Unlock A 例: ? 事務 T1在讀 A進行修改之前先對 A加 X鎖 ? 當 T2再請求對 A加 X鎖時被拒絕 ? T2只能等待 T1釋放 A上的鎖后 T2獲得對 A的 X鎖 ? 這時 T2讀到的 A已經(jīng)是T1更新過的值 15 ? T2按此新的 A值進行運算,并將結果值 A=14送回到磁盤。避免了丟失T1的更新。 沒有丟失修改 使用封鎖機制解決不可重復讀問題 T1 T2 ① Slock A Slock B R(A)=50 R(B)=100 求和 =150 ② Xlock B 等待 等待 ③ R(A)=50 等待 R(B)=100 等待 求和 =150 等待 Commit 等待 Unlock A 等待 Unlock B 等待 ④ 獲得XlockB R(B)=100 B←B*2 ⑤ W(B)=200 Commit Unlock B ? 事務 T1在讀 A, B之前,先對 A,B加 S鎖 ? 其他事務只能再對 A, B加 S鎖,而不能加 X鎖,即其他事務只能讀 A, B,而不能修改 ? 當 T2為修改 B而申請對 B的 X鎖時被拒絕只能等待 T1釋放 B上的鎖 ? T1為驗算再讀 A, B,這時讀出的B仍是 100,求和結果仍為 150,即可重復讀 ? T1結束才釋放 A, B上的 S鎖。 T2才獲得對 B的 X鎖 可重復讀 使用封鎖機制解決讀 “ 臟 ” 數(shù)據(jù)問題 T1 T2 Xlock C R(C)=100 C←C*2 W(C)=200 ② Slock C 等待 ② ROLLBACK 等待 (C恢復為 100) 等待 Unlock C
點擊復制文檔內(nèi)容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1