第7章數(shù)據(jù)庫(kù)系統(tǒng)的恢復(fù)和并發(fā)控制技術(shù)_第1頁(yè)
第7章數(shù)據(jù)庫(kù)系統(tǒng)的恢復(fù)和并發(fā)控制技術(shù)_第2頁(yè)
第7章數(shù)據(jù)庫(kù)系統(tǒng)的恢復(fù)和并發(fā)控制技術(shù)_第3頁(yè)
第7章數(shù)據(jù)庫(kù)系統(tǒng)的恢復(fù)和并發(fā)控制技術(shù)_第4頁(yè)
第7章數(shù)據(jù)庫(kù)系統(tǒng)的恢復(fù)和并發(fā)控制技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

7.1事務(wù)的概念7.2數(shù)據(jù)庫(kù)恢復(fù)技術(shù)7.3數(shù)據(jù)庫(kù)并發(fā)控制7.4基于封鎖的并發(fā)控制技術(shù)第7章數(shù)據(jù)庫(kù)系統(tǒng)的恢復(fù)和并發(fā)控制技術(shù)7.1事務(wù)的概念事務(wù):是一個(gè)不可分割的操作序列,該操作序列要么全做,要么全不做。事務(wù)和程序事務(wù)的開(kāi)始與結(jié)束隱式控制顯式控制強(qiáng)調(diào):事務(wù)和程序是兩個(gè)概念。一個(gè)程序中可以包含多個(gè)事務(wù)。隱式控制:由DBMS按缺省規(guī)定自動(dòng)劃分。顯式控制:

BEGINTRANSACTION

[事務(wù)開(kāi)始]COMMIT

[事務(wù)提交,重新改寫數(shù)據(jù)庫(kù)]ROLLBACK

[事務(wù)提交,發(fā)生錯(cuò)誤撤消]BEGINTRANSACTIONINSERTINTOS(S#,Sname,Sage,Sdept)VALUES(‘10002’,’李娜’,18,‘計(jì)算機(jī)’)COMMIT例如:

BEGINTRANSACTIONDELETEFROMSWHERES#=‘10002’;DELETEFROMSCWHERES#=‘10002’;ROLLBACK7.1事務(wù)的概念事務(wù)的ACID特性AtomicityConsistencyIsolationDurability1、原子性(Atomicity):

事務(wù)是不可分割的工作單位2、一致性(Consistency)事務(wù)提交后,數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。3、隔離性(Isolation)在事務(wù)完成之前,它對(duì)數(shù)據(jù)庫(kù)產(chǎn)生的結(jié)果不能被其它事務(wù)引用。4、持續(xù)性(Durability)一旦事務(wù)執(zhí)行成功(提交),其對(duì)數(shù)據(jù)庫(kù)產(chǎn)生的效果永久有效。事務(wù)的性質(zhì)(ACID)7.1事務(wù)的概念事務(wù)管理功能保證事務(wù)的ACID特性事務(wù)ACID特性可能遭到破壞的原因:多個(gè)事務(wù)并行運(yùn)行時(shí),多個(gè)事務(wù)中的操作交叉執(zhí)行;事務(wù)正在執(zhí)行時(shí),被強(qiáng)迫終止。數(shù)據(jù)庫(kù)的恢復(fù)和并發(fā)控制7.2數(shù)據(jù)庫(kù)恢復(fù)硬件故障、軟件故障、操作失誤、惡意破壞等,導(dǎo)致事務(wù)運(yùn)行的非正常中斷,甚至破壞數(shù)據(jù)庫(kù),造成數(shù)據(jù)丟失數(shù)據(jù)庫(kù)恢復(fù):把數(shù)據(jù)庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一個(gè)已知的正確狀態(tài)7.2數(shù)據(jù)庫(kù)恢復(fù)

一、數(shù)據(jù)庫(kù)的故障種類事務(wù)內(nèi)部故障系統(tǒng)故障介質(zhì)故障計(jì)算機(jī)病毒一、數(shù)據(jù)庫(kù)的故障種類事務(wù)內(nèi)部故障銀行轉(zhuǎn)帳業(yè)務(wù):從帳號(hào)甲將一筆金額轉(zhuǎn)入帳號(hào)乙BEGINTRANSACTION

讀取帳號(hào)甲的余額BALANCE; BALANCE=BALANCE–AMOUNT;

寫回BALANCE;

if(BALANCE<0)then{ROLLBACK;} else{

讀取帳號(hào)乙的余額BALANCE1; BALANCE1=BALANCE1+AMOUNT;

寫回BALANCE1;

COMMIT;}一、數(shù)據(jù)庫(kù)的故障種類事務(wù)內(nèi)部故障非預(yù)期的事務(wù)內(nèi)部故障:運(yùn)算溢出、違約處理辦法:強(qiáng)行回滾ROLLBACK該事務(wù),即事務(wù)撤銷(UNDO操作)一、數(shù)據(jù)庫(kù)的故障種類系統(tǒng)故障系統(tǒng)停機(jī),需要重啟。如CPU故障、OS故障、DBMS代碼錯(cuò)誤、系統(tǒng)斷電影響正在運(yùn)行的事務(wù),但不會(huì)破壞數(shù)據(jù)庫(kù)處理辦法:(1)UNDO所有未完成的事務(wù);(2)REDO所有已提交的事務(wù)一、數(shù)據(jù)庫(kù)的故障種類介質(zhì)故障硬故障:磁盤損壞、磁頭碰撞、瞬間強(qiáng)磁場(chǎng)干擾等出現(xiàn)概率小、破壞性非常大計(jì)算機(jī)病毒破壞系統(tǒng)、修改數(shù)據(jù)一、數(shù)據(jù)庫(kù)的故障種類各類故障的影響數(shù)據(jù)庫(kù)本身被破壞數(shù)據(jù)庫(kù)沒(méi)有被破壞,但數(shù)據(jù)可能不正確如何恢復(fù)呢?冗余兩個(gè)關(guān)鍵問(wèn)題:

1如何建立冗余數(shù)據(jù)

2如何利用冗余數(shù)據(jù)實(shí)施數(shù)據(jù)庫(kù)恢復(fù)7.2數(shù)據(jù)庫(kù)恢復(fù)

二、數(shù)據(jù)庫(kù)恢復(fù)技術(shù)冗余二、數(shù)據(jù)庫(kù)恢復(fù)技術(shù)如何建立冗余數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)儲(chǔ)登錄日志文件數(shù)據(jù)轉(zhuǎn)儲(chǔ)DBA定期地將整個(gè)數(shù)據(jù)庫(kù)復(fù)制到其它外存上保存的過(guò)程后備副本/后援副本(BACKUP)數(shù)據(jù)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ):在系統(tǒng)空閑的時(shí)候進(jìn)行,轉(zhuǎn)儲(chǔ)期間不允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。優(yōu)點(diǎn):簡(jiǎn)單、保證副本和數(shù)據(jù)庫(kù)數(shù)據(jù)的一致性;缺點(diǎn)需等待。動(dòng)態(tài)轉(zhuǎn)儲(chǔ):轉(zhuǎn)儲(chǔ)期間允許對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作優(yōu)點(diǎn):效率高;缺點(diǎn)是不能保證副本和數(shù)據(jù)庫(kù)數(shù)據(jù)的一致性,必須記錄轉(zhuǎn)儲(chǔ)期間各事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改活動(dòng)(日志文件)兩種轉(zhuǎn)儲(chǔ)方式:海量轉(zhuǎn)儲(chǔ):每次轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫(kù)中的全部數(shù)據(jù)增量轉(zhuǎn)儲(chǔ):每次轉(zhuǎn)儲(chǔ)上一次轉(zhuǎn)儲(chǔ)后更新過(guò)的數(shù)據(jù)

兩種轉(zhuǎn)儲(chǔ)狀態(tài)動(dòng)態(tài)轉(zhuǎn)儲(chǔ)靜態(tài)轉(zhuǎn)儲(chǔ)

兩種轉(zhuǎn)儲(chǔ)方式海量轉(zhuǎn)儲(chǔ)動(dòng)態(tài)海量轉(zhuǎn)儲(chǔ)靜態(tài)海量轉(zhuǎn)儲(chǔ)增量轉(zhuǎn)儲(chǔ)動(dòng)態(tài)增量轉(zhuǎn)儲(chǔ)靜態(tài)增量轉(zhuǎn)儲(chǔ)二、數(shù)據(jù)庫(kù)恢復(fù)技術(shù)登錄日志文件用來(lái)記錄事務(wù)對(duì)數(shù)據(jù)庫(kù)的更新操作的文件兩種格式的日志文件:(1)以記錄為單位的日志文件(2)以數(shù)據(jù)塊為單位的日志文件例如:以記錄為單位的日志文件 各個(gè)事務(wù)的開(kāi)始標(biāo)記 各個(gè)事務(wù)的結(jié)束標(biāo)記 各個(gè)事務(wù)的所有更新操作日志記錄:事務(wù)標(biāo)識(shí)操作類型操作對(duì)象更新前的舊值更新后的新值二、數(shù)據(jù)庫(kù)恢復(fù)技術(shù)日志文件的作用:進(jìn)行事務(wù)故障恢復(fù)和系統(tǒng)故障恢復(fù),并協(xié)助后備副本進(jìn)行介質(zhì)故障恢復(fù)。事務(wù)故障和系統(tǒng)故障恢復(fù)必須用日志文件;在動(dòng)態(tài)轉(zhuǎn)儲(chǔ)方式中必須建立日志文件,并結(jié)合后備副本和日志文件對(duì)數(shù)據(jù)庫(kù)進(jìn)行有效的恢復(fù);靜態(tài)轉(zhuǎn)儲(chǔ)時(shí)也可建立日志文件二、數(shù)據(jù)庫(kù)恢復(fù)技術(shù)登記日志文件的原則先來(lái)先登記原則:嚴(yán)格按照并發(fā)事務(wù)執(zhí)行的時(shí)間順序登記;先寫日志文件原則:必須先寫日志文件,后寫數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)鏡像:自動(dòng)將數(shù)據(jù)庫(kù)中的全部數(shù)據(jù)或關(guān)鍵數(shù)據(jù)復(fù)制到另外一張盤上。應(yīng)用1應(yīng)用2應(yīng)用3應(yīng)用4update復(fù)制readreadread應(yīng)用1應(yīng)用2應(yīng)用3應(yīng)用4update恢復(fù)readread(a)(b)read鏡像鏡像缺點(diǎn):降低系統(tǒng)效率四、數(shù)據(jù)庫(kù)恢復(fù)策略1.事務(wù)故障的恢復(fù)2.系統(tǒng)故障的恢復(fù)3.介質(zhì)故障的恢復(fù)對(duì)于不同的故障類型要采用不同的恢復(fù)策略P1717.3并發(fā)控制多用戶數(shù)據(jù)庫(kù)系統(tǒng)事務(wù)執(zhí)行方式串行執(zhí)行:ACID無(wú)破壞,效率低并發(fā)執(zhí)行:ACID可能破壞,效率高交叉并發(fā):InterleavedConcurrency同時(shí)并發(fā):SimultaneousConcurrency一、并發(fā)操作引起的問(wèn)題丟失修改不可重復(fù)讀讀“臟”數(shù)據(jù)封鎖協(xié)議7.3并發(fā)控制例:銀行中,C賬戶上原有存款500元,現(xiàn)有兩位顧客同時(shí)給此賬戶存款,分別運(yùn)行下面兩個(gè)事務(wù):T1:READ(C),C=C+100,WRITE(C);T2:READ(C),C=C+200,WRITE(C);運(yùn)行過(guò)程可能如下:(1)先執(zhí)行事務(wù)T1,然后執(zhí)行事務(wù)T2(2)先執(zhí)行事務(wù)T2,然后執(zhí)行事務(wù)T1(3)事務(wù)T1和事務(wù)T2并發(fā)執(zhí)行讀出C,C=500讀出C,C=500C=C+100,C=600把C寫到數(shù)據(jù)庫(kù)C=C+200,C=700把C寫到數(shù)據(jù)庫(kù)C:600C:700C:500T1的運(yùn)行T2的運(yùn)行事務(wù)T1事務(wù)T2讀出C,C=500C=C+100C=600讀出C,C=500C=C+200C=700丟失修改事務(wù)T1事務(wù)T2

讀出A=50

讀出B=100

求和=150

讀出B=100B=B*2WRITE(B)

讀出A=50

讀出B=200

求和=250(驗(yàn)算不對(duì))不可重復(fù)讀三種不可重復(fù)讀讀不一致T1讀A,T2修改A,T1讀A刪除幻影T1讀取元組集合A,T2刪除部分元組,T1讀取元組集合A插入幻影T1讀取元組集合A,T2插入一些元組,T1讀取元組集合A不可重復(fù)讀事務(wù)T1事務(wù)T2

讀出C=100C=C*2WRITE(C)

讀出C=200

ROLLBACKC恢復(fù)為100讀“臟”數(shù)據(jù)T1修改A,T2讀A,T1撤銷修改導(dǎo)致問(wèn)題的原因丟失修改、不可重復(fù)讀、讀“臟”數(shù)據(jù)原因:并發(fā)操作破壞了事務(wù)的隔離性是否可以找到并發(fā)操作的合理調(diào)度方式,從而避免三類問(wèn)題?1、事務(wù)的表示方法:

Ri(X)表示事務(wù)Ti的讀X操作;

Wi(X)表示事務(wù)Ti的寫X操作。例:事務(wù)T1(Read(B);A=B+1;write(A))

事務(wù)T2(Read(A);B=A+1;write(B))

可以表示成:

T1:R1(B)W1(A)T2:R2(A)W2(B)二、調(diào)度的可串行性R1(X)R1(Y)W1(Y)符號(hào)→表示先于(<),即R1(X)先于W1(Y)執(zhí)行,R1(Y)先于W1(Y)執(zhí)行,而R1(X)和R1(Y)的先后次序無(wú)關(guān)緊要。2、沖突操作定義:如果兩個(gè)操作來(lái)自不同的事務(wù),它們對(duì)同一數(shù)據(jù)單位進(jìn)行操作,并且其中至少有一個(gè)是寫操作,則稱這兩個(gè)操作是相互沖突的或沖突操作。例:事務(wù)T0:W0(X)W0(Y)W0(Z)

事務(wù)T1:R1(X)R1(Z)W1(X)

則在這兩個(gè)事務(wù)中有沖突操作:R1(X)與W0(X)

W1(X)與W0(X)

R1(Z)與W0(Z)調(diào)度:對(duì)于沖突操作不能同時(shí)執(zhí)行,哪個(gè)先執(zhí)行,哪個(gè)后執(zhí)行。3、調(diào)度:事務(wù)執(zhí)行的次序。設(shè)τ={T1,T2,…Tn}是一事務(wù)集,τ的一個(gè)調(diào)度S是一擬序集(∑,<s)其中:1)

∑說(shuō)明S執(zhí)行的操作正是T1,T2,…Tn

的操作。

2)<s說(shuō)明調(diào)度S遵守每個(gè)事務(wù)的操作的內(nèi)部執(zhí)行次序

3)每對(duì)沖突操作的執(zhí)行次序由S決定。R1(X)R1(Z)W1(X)S1=W0(X)W0(Y)W0(Z)S1=({W0(X),W0(Y)

,W0(Z),R1(X),R1(Z)

,W1(X)},{W0(X)<R1(X),W0(Z)<R1(Z),R1(X)<W1(X),R1(Z)<W1(X)})S1=({W0(X),W0(Y)

,W0(Z),R1(X),R1(Z)

,W1(X)},{W0(X)<R1(X),W0(Z)<R1(Z),R1(X)<R1(Z)

,R1(X)<W1(X),R1(Z)<W1(X)})S1=({W0(X),W0(Y)

,W0(Z),R1(X),R1(Z)

,W1(X)},{W0(X)<R1(X),W0(Z)<R1(Z),R1(Z)<R1(X)

,R1(X)<W1(X),R1(Z)<W1(X)})4、串行調(diào)度:如果在一個(gè)調(diào)度中,各個(gè)事務(wù)不交叉執(zhí)行,而順序地串行執(zhí)行,這個(gè)調(diào)度被稱為串行調(diào)度。定義:如果調(diào)度S中的任意兩個(gè)事務(wù)Ti和Tj,如果Ti的所有操作都先于Tj的所有操作,或者相反,則稱S為串行調(diào)度。注意:在串行調(diào)度中每一個(gè)事務(wù)都是在下一個(gè)事務(wù)開(kāi)始執(zhí)行之前提交。因此,串行調(diào)度沒(méi)有并發(fā)性,故每一個(gè)串行調(diào)度都是一個(gè)正確的執(zhí)行。5、并發(fā)調(diào)度:如果在一個(gè)調(diào)度中,各個(gè)事務(wù)交叉地執(zhí)行,這個(gè)調(diào)度稱為并發(fā)調(diào)度。6、可串行化的調(diào)度:如果一個(gè)事務(wù)集的并發(fā)調(diào)度與某一串行調(diào)度是等價(jià)的,則稱該并發(fā)調(diào)度是可串行化的。7、串行化定理定理:一個(gè)調(diào)度S是可串行化的,當(dāng)且僅當(dāng)它的串行圖是無(wú)環(huán)的。串行圖:設(shè)S是若干事務(wù){(diào)T1,T2,…,Tn}的一個(gè)調(diào)度,S的串行圖SG(S)是一個(gè)有向圖,其構(gòu)成規(guī)則如下:1)圖中的結(jié)點(diǎn)表示事務(wù)2)如果Oi和Oj是沖突操作,且Oi先于Oj執(zhí)行,則在圖中有一條邊Ti→Tj。R1(X)W1(X)R3(X)W3(Z)R2(X)W2(Y)W1(Y)T2T1T3R1(X)W1(X)R3(X)W3(X)R2(X)W2(Y)W1(Y)T2T1T3例:8、等價(jià)的串行調(diào)度:如果SG(S)是無(wú)環(huán)的,則S等價(jià)于SG(S)的任一拓?fù)渑判颉2T1T3拓?fù)渑判驗(yàn)椋篢2,T1,T3T1T2T3拓?fù)渑判驗(yàn)椋篢1,T3,T2

或?yàn)椋篢1,T2,T3

拓?fù)渑判颍簭臒o(wú)入弧的節(jié)點(diǎn)開(kāi)始遞歸去除W0(X)W0(Y)W0(Z)R1(X)R1(Z)W1(X)R3(Z)W3(Y)W3(Z)R4(X)R4(Y)R4(Z)R2(X)W2(Y)T0T1T2T3T4調(diào)度S的串行圖拓?fù)渑判驗(yàn)椋篢0,T2,T1,T3,T4或?yàn)椋篢0,T2,T3,T1,T41、封鎖:事務(wù)T在對(duì)數(shù)據(jù)進(jìn)行操作之前,先向系統(tǒng)申請(qǐng)對(duì)其進(jìn)行加鎖,獲得鎖后不允許其它事務(wù)更新該數(shù)據(jù),直到事務(wù)T釋放該數(shù)據(jù)上的鎖。2、封鎖的類型排它鎖(又稱寫鎖,簡(jiǎn)稱X鎖)若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上X鎖,則其它事務(wù)不能在A上加任何類型的鎖,此時(shí),只允許事務(wù)T讀取和修改A,直到T釋放A上的鎖。共享鎖(又稱讀鎖,簡(jiǎn)稱S鎖)若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加上S鎖,則其它事務(wù)也可在A上加S鎖,但不能加X(jué)鎖,事務(wù)T和其它事務(wù)只能讀取A,但不能修改A。7.4、基于封鎖的并發(fā)控制技術(shù)3、封鎖協(xié)議封鎖級(jí)別加鎖放鎖防止丟失修改保證可重復(fù)讀不讀“臟”數(shù)據(jù)一級(jí)事務(wù)T在修改數(shù)據(jù)A之前必須先對(duì)其加X(jué)鎖事務(wù)結(jié)束才釋放X鎖可防止不能保證不能保證二級(jí)一級(jí)封鎖協(xié)議+事務(wù)T在讀取數(shù)據(jù)A之前必須對(duì)其加S鎖讀完后即可釋放S鎖可防止不能保證能保證三級(jí)一級(jí)封鎖協(xié)議+事務(wù)T在讀取數(shù)據(jù)A之前必須對(duì)其加S鎖事務(wù)結(jié)束才釋放S鎖可防止能保證能保證一級(jí)封鎖協(xié)議例XlockARead(A)A=10A=A-5Write(A)CommitUnlockAXlockARead(A)A=5A=A-5Write(A)CommitUnlockA等待等待等待等待獲得XlockA事務(wù)T1事務(wù)T2沒(méi)有丟失修改READ(C,D)M=C+DREAD(C,D)M=C+DREAD(C,D)C=C+10D=D+10事務(wù)T1事務(wù)T2不可重復(fù)讀Write(D)Write(C)XlockCXlockDUnlockCUnlockD二級(jí)封鎖協(xié)議例READ(C,D)M=C+DREAD(C,D)C=C+10D=D+10事務(wù)T1事務(wù)T2防止讀“臟”數(shù)據(jù)Write(D)Write(C)XlockCXlockDUnlockCUnlockDRollBackSlockCSlockD等待等待等待獲得SlockC獲得SlockDUnlockCUnlockDREAD(C,D)M=C+DREAD(C,D)C=C+10D=D+10事務(wù)T1事務(wù)T2不可重復(fù)讀Write(D)Write(C)XlockCXlockDUnlockCUnlockDSlockCSlockDUnlockCUnlockD等待獲得XlockC獲得XlockDREAD(C,D)M=C+DSlockCSlockDUnlockCUnlockD等待獲得SlockC獲得SlockDCommitCommitCommit三級(jí)封鎖協(xié)議例READ(C,D)M=C+DREAD(C,D)C=C+10D=D+10事務(wù)T1事務(wù)T2可重復(fù)讀Write(D)Write(C)XlockCXlockDUnlockCUnlockDREAD(C,D)M=C+DSlockCSlockDUnlockCUnlockD等待獲得XlockC獲得XlockD等待CommitCommit活鎖:事務(wù)T1,T2申請(qǐng)數(shù)據(jù)對(duì)象A,T1先給A加鎖,T1釋放A上的鎖后,事務(wù)T3又給A加鎖,T2等待,這樣,A始終被其他事務(wù)封鎖,事務(wù)T2可能長(zhǎng)時(shí)間得不到A,這種情況稱為活鎖。避免活鎖的方法:采用先來(lái)先服務(wù)的原則。死鎖:事務(wù)T1已經(jīng)封鎖A,而又想申請(qǐng)封鎖B,而此時(shí)事務(wù)T2已經(jīng)封鎖B,而又想申請(qǐng)封鎖A,這樣,T1等待T2釋放B,而T2等待T1釋放A,使得T1、T2均無(wú)法繼續(xù)執(zhí)行下去,這種情況稱為死鎖。LOCKA…LOCKB…LOCKB…LOCKA…

1)某一事務(wù)在對(duì)數(shù)據(jù)進(jìn)行讀、寫

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論