數(shù)據(jù)庫系統(tǒng)概論99課件_第1頁
數(shù)據(jù)庫系統(tǒng)概論99課件_第2頁
數(shù)據(jù)庫系統(tǒng)概論99課件_第3頁
數(shù)據(jù)庫系統(tǒng)概論99課件_第4頁
數(shù)據(jù)庫系統(tǒng)概論99課件_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)庫系統(tǒng)概論并發(fā)控制1數(shù)據(jù)庫系統(tǒng)概論內(nèi)容提要并發(fā)控制是數(shù)據(jù)庫管理系統(tǒng)的重要組成部分,通過本章的學(xué)習(xí),應(yīng)重點(diǎn)掌握:并發(fā)控制帶來的新問題封鎖及封鎖協(xié)議并發(fā)調(diào)度的可串行性兩段鎖協(xié)議2數(shù)據(jù)庫系統(tǒng)概論概述在單處理機(jī)系統(tǒng)中,事務(wù)的并行執(zhí)行實(shí)際上是這些并行事務(wù)的并行操作輪流交叉運(yùn)行,稱為交叉并發(fā)方式。在多處理機(jī)系統(tǒng)中,每個(gè)處理機(jī)可以運(yùn)行一個(gè)事務(wù),多個(gè)處理機(jī)可以同時(shí)運(yùn)行多個(gè)事務(wù),實(shí)現(xiàn)多個(gè)事務(wù)真正的并行運(yùn)行,稱為同時(shí)并發(fā)方式。并發(fā)的目的:改善系統(tǒng)的資源利用率改善短事務(wù)的響應(yīng)時(shí)間3數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)不一致性(1)丟失修改:兩個(gè)事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,T2提交的結(jié)果破壞了T1提交的結(jié)果,導(dǎo)致T1的修改被丟失?!皩憽獙憶_突”讀“臟”數(shù)據(jù):事務(wù)T1修改某一數(shù)據(jù),并將其寫回磁盤,事務(wù)T2讀取同一數(shù)據(jù)后,T1由于某種原因被撤銷,這時(shí)T1已修改過的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫中的數(shù)據(jù)不一致,則T2讀到的數(shù)據(jù)就為“臟”數(shù)據(jù),即不正確的數(shù)據(jù)?!白x—寫沖突”5數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)不一致性(2)不可重復(fù)讀:事務(wù)T1讀取數(shù)據(jù)后,事務(wù)T2執(zhí)行更新操作,使T1無法再現(xiàn)前一次的讀取結(jié)果?!白x—寫沖突”產(chǎn)生原因:并發(fā)操作破壞了事務(wù)的隔離性并發(fā)控制的任務(wù):用正確的方式調(diào)度并發(fā)操作,使一個(gè)用戶事務(wù)的執(zhí)行不受其它事務(wù)的干擾,避免造成數(shù)據(jù)的不一致性。并發(fā)控制的主要方法:封鎖6數(shù)據(jù)庫系統(tǒng)概論三種數(shù)據(jù)不一致性T1T2T1T2T1T2讀A=16讀A=50讀B=100求和=150讀C=100C←C*2寫C=200讀A=16讀B=100B←B*2寫B(tài)=200讀C=200A←A-1寫A=15讀A=50讀B=200求和=250ROLLBACKC=100A←A-1寫A=157數(shù)據(jù)庫系統(tǒng)概論封鎖(Locking)(2)X鎖和S鎖的控制方式可有相容矩陣表示。最左邊表示T1已經(jīng)獲得的鎖的類型,最上面表示T2的封鎖請(qǐng)求,-表示沒有加鎖。Y表示相容,請(qǐng)求可以滿足;N表示沖突,請(qǐng)求被拒絕。T1T2XS-XNNYSNYY-YYY9數(shù)據(jù)庫系統(tǒng)概論一級(jí)封鎖協(xié)議加鎖必須遵守一定的規(guī)則,稱為封鎖協(xié)議。一級(jí)封鎖協(xié)議:事務(wù)T在修改數(shù)據(jù)R之前必須先對(duì)其加X鎖,直到事務(wù)結(jié)束才釋放。事務(wù)結(jié)束包括正常結(jié)束(COMMIT)和非正常結(jié)束(ROLLBACK)。一級(jí)封鎖協(xié)議中,如果是讀數(shù)據(jù)不修改,是不需要加鎖的,可防止丟失修改。10數(shù)據(jù)庫系統(tǒng)概論二級(jí)封鎖協(xié)議二級(jí)封鎖協(xié)議:在一級(jí)封鎖協(xié)議基礎(chǔ)上,加上事務(wù)T在讀數(shù)據(jù)R之前必須先對(duì)其加上S鎖,讀完后即可釋放S鎖。在二級(jí)封鎖協(xié)議中,由于讀完數(shù)據(jù)后即可釋放S鎖,所以它不能保證可重復(fù)讀。11數(shù)據(jù)庫系統(tǒng)概論不同級(jí)別的封鎖協(xié)議X鎖S鎖一致性保證操作結(jié)束釋放事務(wù)結(jié)束釋放操作結(jié)束釋放事務(wù)結(jié)束釋放不丟失修改不讀臟數(shù)據(jù)可重復(fù)讀一級(jí)封鎖協(xié)議√√二級(jí)封鎖協(xié)議√√√√三級(jí)封鎖協(xié)議√√√√√13數(shù)據(jù)庫系統(tǒng)概論活鎖若某數(shù)據(jù)對(duì)象加了S鎖,這時(shí)若有其它事務(wù)申請(qǐng)對(duì)它的X鎖,則需等待。但此時(shí)若有其它事務(wù)申請(qǐng)對(duì)它的S鎖,按相容矩陣,應(yīng)可獲準(zhǔn)。如果不斷有事務(wù)申請(qǐng)對(duì)此數(shù)據(jù)對(duì)象的S鎖,以致它始終被S鎖占有,而X鎖的申請(qǐng)遲遲不能獲準(zhǔn)。這種現(xiàn)象叫活鎖。避免活鎖的簡(jiǎn)單方法是采用“先來先服務(wù)”的策略。14數(shù)據(jù)庫系統(tǒng)概論死鎖一個(gè)事務(wù)如果申請(qǐng)鎖而未獲準(zhǔn),則需等待其它事務(wù)釋放鎖。如果事務(wù)中出現(xiàn)循環(huán)等待時(shí),如果不加干預(yù),則會(huì)一直等待下去,這叫死鎖。對(duì)付死鎖的方法:檢測(cè)死鎖,發(fā)現(xiàn)死鎖后處理死鎖防止死鎖15數(shù)據(jù)庫系統(tǒng)概論死鎖的診斷(2)等待圖法:等待圖是一個(gè)有向圖G=(T,U)。T為結(jié)點(diǎn)的集合,每個(gè)結(jié)點(diǎn)表示正在運(yùn)行的事務(wù)U為邊的集合,每條邊表示事務(wù)等待的情況當(dāng)且僅當(dāng)?shù)却龍D中出現(xiàn)回路時(shí),死鎖發(fā)生。當(dāng)運(yùn)行的事務(wù)比較多時(shí),維護(hù)等待圖和檢測(cè)回路的開銷較大,影響系統(tǒng)的性能。方法是周期性的進(jìn)行死鎖檢測(cè)。死鎖檢測(cè)周期的確定用實(shí)驗(yàn)方法確定最佳值。

17數(shù)據(jù)庫系統(tǒng)概論死鎖的解除(1)出現(xiàn)死鎖后,必須由DBMS干預(yù)。處理如下:在循環(huán)等待的事務(wù)中,選一個(gè)事務(wù)作為“犧牲者”,給其它事務(wù)讓路撤銷犧牲的事務(wù),釋放其獲得的鎖及其它資源將釋放的鎖讓給等待它的事務(wù)被犧牲的事務(wù)可以有兩種處理:發(fā)消息給有關(guān)用戶,由用戶向系統(tǒng)再交付該事務(wù)由DBMS重新啟動(dòng)該事務(wù)注:被犧牲的事務(wù)應(yīng)等待一段時(shí)間才能交付系統(tǒng),否則可能再發(fā)生死鎖。18數(shù)據(jù)庫系統(tǒng)概論死鎖的解除(2)選擇哪個(gè)事務(wù)作為犧牲者,由下列幾種選法:選擇最遲交付的事務(wù)作為犧牲者選擇獲得鎖最少的事務(wù)作為犧牲者選擇撤銷代價(jià)最小的事務(wù)作為犧牲者19數(shù)據(jù)庫系統(tǒng)概論死鎖的預(yù)防—順序封鎖法順序封鎖法:預(yù)先對(duì)數(shù)據(jù)對(duì)象規(guī)定一個(gè)封鎖順序,所有事務(wù)都按這個(gè)順序?qū)嵭蟹怄i。缺點(diǎn):數(shù)據(jù)庫中一般是按內(nèi)容訪問,而不是按名訪問,所以很難預(yù)先確定所有的訪問對(duì)象數(shù)據(jù)經(jīng)常變動(dòng),次序也經(jīng)常調(diào)整上述兩種方法用于數(shù)據(jù)庫系統(tǒng)不實(shí)際。21數(shù)據(jù)庫系統(tǒng)概論死鎖的預(yù)防—事務(wù)重執(zhí)(1)事務(wù)重執(zhí):當(dāng)事務(wù)申請(qǐng)鎖而未獲準(zhǔn)時(shí),不是一律等待,而是讓一些事務(wù)撤銷重執(zhí)。為區(qū)別事務(wù)開始執(zhí)行的先后,每個(gè)事務(wù)開始執(zhí)行時(shí),賦予一個(gè)唯一的、隨時(shí)間增長的整數(shù),稱為時(shí)間標(biāo)記,記為ts。如兩個(gè)事務(wù)TA和TB,若ts(TA)<ts(TB),表明TA比TB“年老”事務(wù)重執(zhí)有兩種策略等待—死亡策略擊傷—等待策略22數(shù)據(jù)庫系統(tǒng)概論死鎖的預(yù)防—事務(wù)重執(zhí)(2)等待—死亡策略設(shè)TB持有某對(duì)象數(shù)據(jù)的鎖,當(dāng)TA申請(qǐng)同一數(shù)據(jù)的鎖發(fā)生沖突時(shí),按如下規(guī)則處理:Ifts(TA)<ts(TB)thenTAwaits;else{rollbackTA;/*die*/restratTAwiththesamets(TA);}總是年老的事務(wù)等待年輕的事務(wù)。23數(shù)據(jù)庫系統(tǒng)概論死鎖的預(yù)防—事務(wù)重執(zhí)(4)上述兩種策略中,當(dāng)沖突發(fā)生時(shí),總是以年輕的事務(wù)作為犧牲品。因?yàn)槟贻p的事務(wù)隨著時(shí)間的流逝,總會(huì)變成年老的事務(wù),不致永遠(yuǎn)成為犧牲品。25數(shù)據(jù)庫系統(tǒng)概論并發(fā)調(diào)度的可串行性(1)定義:多個(gè)事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行它們時(shí)的結(jié)果相同,稱這種調(diào)度策略為可串行化的調(diào)度??纱行允遣l(fā)事務(wù)正確性的準(zhǔn)則。按這個(gè)規(guī)則規(guī)定,一個(gè)給定的并發(fā)調(diào)度,當(dāng)且僅當(dāng)它是可串行化的,才認(rèn)為是正確調(diào)度。對(duì)于n個(gè)事務(wù),可有n!中排列次序,即有n!種串行調(diào)度。26數(shù)據(jù)庫系統(tǒng)概論并發(fā)調(diào)度的可串行性(4)可串行化調(diào)度和串行調(diào)度是有區(qū)別的:前者交叉執(zhí)行各事務(wù)操作,在效果上相當(dāng)于事務(wù)的某一串行執(zhí)行后者完全是串行執(zhí)行各事務(wù),失去并發(fā)意義,不能充分利用系統(tǒng)資源DBMS并發(fā)控制的任務(wù)就是保證事務(wù)執(zhí)行的可串行化,比較有效的方法是要求DBMS按一定的封鎖協(xié)議調(diào)度事務(wù),以保證其執(zhí)行可串行化。兩段鎖協(xié)議(2PL)就是保證并發(fā)調(diào)度可串行化的封鎖協(xié)議。29數(shù)據(jù)庫系統(tǒng)概論兩段鎖協(xié)議(1)兩段鎖協(xié)議是指所有事務(wù)必須分兩個(gè)階段對(duì)是數(shù)據(jù)項(xiàng)加鎖和解鎖在對(duì)任何數(shù)據(jù)進(jìn)行讀、寫操作之前,首先要申請(qǐng)并獲得對(duì)該數(shù)據(jù)的封鎖?!獢U(kuò)展階段在釋放一個(gè)封鎖之后,事物不再申請(qǐng)和獲得任何其它封鎖?!湛s階段若并發(fā)執(zhí)行的所有事務(wù)均遵守兩段鎖協(xié)議,則對(duì)這些事務(wù)的任何并發(fā)調(diào)度策略都可是可串行化。(充分條件)(可用反證法證明)30數(shù)據(jù)庫系統(tǒng)概論兩段鎖協(xié)議(2)兩段鎖協(xié)議和一次封鎖法的異同:一次封鎖法要求每個(gè)事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,因此遵守兩段鎖協(xié)議兩段鎖協(xié)議并不要求事務(wù)必須一次將所有要使用的數(shù)據(jù)全部加鎖,因此可能會(huì)發(fā)生死鎖31數(shù)據(jù)庫系統(tǒng)概論封鎖的粒度定義:封鎖對(duì)象的大小。封鎖的對(duì)象:可以是邏輯單元:屬性、屬性值的集合、元組、關(guān)系、索引項(xiàng)、整個(gè)索引、整個(gè)數(shù)據(jù)庫也可以是物理單元:頁(數(shù)據(jù)頁或索引頁)、塊封鎖粒度一系統(tǒng)的并發(fā)度和并發(fā)控制開銷相關(guān)封鎖粒度越大,并發(fā)度越小,系統(tǒng)開銷越小封鎖粒度越小,并發(fā)度較高,系統(tǒng)開銷越大32數(shù)據(jù)庫系統(tǒng)概論多粒度封鎖如果在一個(gè)系統(tǒng)中同時(shí)支持多種封鎖粒度供不同的事務(wù)選擇,這種封鎖方法稱為多粒度封鎖多粒度封鎖,一個(gè)數(shù)據(jù)對(duì)象可能以兩種方式被封鎖:顯式封鎖:應(yīng)事務(wù)的要求直接加鎖于該數(shù)據(jù)對(duì)象隱式封鎖:該數(shù)據(jù)對(duì)象沒有加鎖,而是由于它的上級(jí)被封鎖,應(yīng)此這個(gè)數(shù)據(jù)對(duì)象被隱含地封鎖了為了方便加鎖引起的沖突,引進(jìn)了意向鎖(INTENTIONLOCK)33數(shù)據(jù)庫系統(tǒng)概論意向鎖(1)含義:如果對(duì)一個(gè)結(jié)點(diǎn)加意向鎖,則說明該結(jié)點(diǎn)的下級(jí)結(jié)點(diǎn)正在被加鎖;對(duì)任一結(jié)點(diǎn)加鎖時(shí)必須先對(duì)其上級(jí)結(jié)點(diǎn)加意向鎖。意向共享鎖(IS):如果對(duì)一個(gè)數(shù)據(jù)對(duì)象加IS鎖,表示它的后裔結(jié)點(diǎn)加了或擬(意向)加S鎖意向排它鎖(IX):如果對(duì)一個(gè)數(shù)據(jù)對(duì)象加IX鎖,表示它的后裔結(jié)點(diǎn)加了或擬(意向)加X鎖共享意向排它鎖(SIX):如果對(duì)一個(gè)數(shù)據(jù)對(duì)象加SIX鎖,表示它加了S鎖,再加IX鎖。即SIX=S+IX。如讀整個(gè)關(guān)系,修改其中元組,則該關(guān)系加SIX鎖34數(shù)據(jù)庫系統(tǒng)概論意向鎖(2)各種鎖的相容矩陣T1T2SXISIXSIX-SYNYNNYXNNNNNYISYNYYYYIXNNYYNYSIXNNNNNY-YYYYYY35數(shù)據(jù)庫系統(tǒng)概論意向鎖(3)各種鎖的強(qiáng)度如圖所示偏序關(guān)系X

SIX所謂強(qiáng)度是指它對(duì)其它鎖的排斥程度。SIXS一個(gè)事務(wù)在申請(qǐng)封鎖時(shí),以強(qiáng)所代替弱鎖是安全的;-反之則不然。36數(shù)據(jù)庫系統(tǒng)概論意向鎖(4)在多粒度封鎖中,要對(duì)一個(gè)數(shù)據(jù)對(duì)象加鎖,必須對(duì)這個(gè)數(shù)據(jù)對(duì)象所有上級(jí)加相應(yīng)的意向鎖。申請(qǐng)鎖時(shí),應(yīng)按自上而下的次序申請(qǐng),以便及時(shí)發(fā)現(xiàn)沖突,停止下級(jí)鎖的申請(qǐng)釋放鎖時(shí),應(yīng)按自下而上的次序釋放37數(shù)據(jù)庫系統(tǒng)概論習(xí)題使某個(gè)事務(wù)永遠(yuǎn)處于等待狀態(tài),而得不到執(zhí)行的現(xiàn)象稱為()。A死鎖B活鎖C串行調(diào)度D不可串行調(diào)度對(duì)數(shù)據(jù)對(duì)象施加封鎖,可能會(huì)引起活鎖和死鎖問題。避免活鎖的簡(jiǎn)單方法是采用()的策略。A順序封鎖法B依次封鎖法C優(yōu)先級(jí)高先服務(wù)D先來先服務(wù)習(xí)題1338數(shù)據(jù)庫系統(tǒng)概論mXp#s&v)y0C3F7IaLdPgSjV$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*x-A1D5G8JbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlXo#r%v(y+B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w-z1C4G7JaMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LdOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!t&w-z1D4G7JbMePhTkWoZr$u(x+A2E5H9KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G8JbMeQhTkWoZr%u(x+B2E5H9KcOfRiUmXp#s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D4G8JbNeQhTlWoZr%u(y+B2E6H9KcOfRjUmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfmXp!s&v)z0C4F7IaMdPgSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%u(y+B3E6H9LcOfRjUmYp!s&w)z0C4F7JaMdPhSkVnZq$u*x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTk#r%v(y0B3E6I9LcOgRjUmYp!t&w)z1C4F7JaMePhSkWnZq$u*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u*x+A2E5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IaLdPgSjVnYq!t*wE5H8KcNfQiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUlXp#s&v)y0C3F6IaLdPgSjVnYq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaMdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUq!t*w-A1D4G8JbMeQhTlWoZr%u(x+B2E6H9KcOfRiUmXp!s&v)z0C3F7IaLdPgSkVnYq$t*w-A1D5G8JbNeQhTlWo#r%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A2D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWr%u(y+B2E6H9LcOfRjUmXp!s&w)z0C4F7IaMdPhSkVnZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#s%v(y0B3E6I9LcOgRZq$t*x-A1D5G8KbNeQiTlWo#r%v(y+B3E6H9LcOgRjUmYp!s&w)z1C4F7JaMdPhSkWnZq$u*x-A2D5H8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgSjVmYq!x-A2D5G8KbNfQiTlXo#r%v(y0B3E6I9LcOgRjVmYp!t&w)z1C4G7JaMePhSkWnZr$u*x+A2D5H8KcNfQiUlXo#s%v)y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnu*x+A2D5H8KbNfQiUlXo#s%v(y0B3F6I9LdOgRjVmYq!t&w-z1C4G7JbMePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0C3F6IaLdOgSjVnYq!t*w-z1D4G7JbMeQhTkWoZr$u(x+B2E5H9KcNfRiUmXp#s&v)y0C3F7IePhTkWnZr$u(x+A2E5H8KcNfRiUlXp#s%v)y0B3F6IaLdOgSjVmYq!t*w-z1D4G7JbMeQhTkWoZr$

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論