數(shù)據(jù)庫原理及應(yīng)用第二版第7章 數(shù)據(jù)庫保護(hù)_第1頁
數(shù)據(jù)庫原理及應(yīng)用第二版第7章 數(shù)據(jù)庫保護(hù)_第2頁
數(shù)據(jù)庫原理及應(yīng)用第二版第7章 數(shù)據(jù)庫保護(hù)_第3頁
數(shù)據(jù)庫原理及應(yīng)用第二版第7章 數(shù)據(jù)庫保護(hù)_第4頁
數(shù)據(jù)庫原理及應(yīng)用第二版第7章 數(shù)據(jù)庫保護(hù)_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 數(shù)據(jù)庫保護(hù)包括數(shù)據(jù)的一致性和并發(fā)控制、安全性、備份和恢復(fù)等內(nèi)容。 事務(wù)是保證數(shù)據(jù)一致性的基本手段,事務(wù)處理技術(shù)包括數(shù)據(jù)庫恢復(fù)技術(shù)和并發(fā)控制技術(shù)。1第7章 數(shù)據(jù)庫保護(hù) 7.1 事務(wù)7.2 并發(fā)控制 7.3 數(shù)據(jù)庫備份與恢復(fù) 27.1 事務(wù)一、事務(wù)基本概念 例如:A帳戶轉(zhuǎn)帳給B帳戶n元錢,這個(gè)活動(dòng)包含兩個(gè)動(dòng)作: 第一個(gè)動(dòng)作:A帳戶 n 第二個(gè)動(dòng)作:B帳戶 n 事務(wù)是用戶定義的數(shù)據(jù)操作系列,這些操作作為一個(gè)完整的工作單元,一個(gè)事務(wù)內(nèi)的所有語句被作為一個(gè)整體,要么全部執(zhí)行,要么全部不執(zhí)行。3 要讓系統(tǒng)知道哪個(gè)動(dòng)作屬于一個(gè)事務(wù),可通過標(biāo)記事務(wù)的開始與結(jié)束來實(shí)現(xiàn)。在不同的事務(wù)處理模型中,事務(wù)的開始標(biāo)記不

2、完全一樣,但事務(wù)的結(jié)束標(biāo)記是一樣的。事務(wù)的結(jié)束標(biāo)記有兩種:一種是正常結(jié)束,用COMMIT(提交)表示,也就是事務(wù)中的操作會(huì)保存到數(shù)據(jù)庫中成為永久的操作;另一種是異常結(jié)束,用ROLLBACK(回滾)表示也就是事務(wù)中的操作被全部撤銷,數(shù)據(jù)庫回到事務(wù)開始之前的狀態(tài)。4二、事務(wù)的特性原子性(Consistency) 指事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中的操 作要么都做,要么都不做。一致性(Atomicity) 指事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個(gè)一致性 狀態(tài)變到另一個(gè)一致性狀態(tài)。隔離性(Isolation) 指數(shù)據(jù)庫中一個(gè)事務(wù)的執(zhí)行不能被其它事務(wù)干擾持久性(Durability) 也稱永久性(Perm

3、anence),指事務(wù)一旦提交, 則其對(duì)數(shù)據(jù)庫中數(shù)據(jù)的改變就是永久的。5三、SQL事務(wù)處理模型隱式事務(wù) 每一條數(shù)據(jù)操作語句都自動(dòng)地成為 一個(gè)事務(wù)。顯式事務(wù) 有顯式的開始和結(jié)束標(biāo)記的事務(wù)61、ISO事務(wù)處理模型 明尾暗頭,即事務(wù)的開始是隱含的,而事務(wù)的結(jié)束有明確標(biāo)記。 例如: UPDATE 支付表 SET 帳戶總額 帳戶總額 nWHERE 帳戶名 AUPDATE 支付表 SET 帳戶總額 帳戶總額 nWHERE 帳戶名 BCOMMIT72、Transact-SQL事務(wù)處理模型 明頭明尾。事務(wù)的開始標(biāo)記是: BEGIN TRANSACTION, 事務(wù)的結(jié)束標(biāo)記為: COMMIT TRANSACTI

4、ONTRAN 和 ROLLBACK TRANSACTIONTRAN例如: BEGIN TRANSACTION UPDATE 支付表 SET 帳戶總額 帳戶總額 nWHERE 帳戶名 AUPDATE 支付表 SET 帳戶總額 帳戶總額 nWHERE 帳戶名 B COMMIT87.2并發(fā)控制 一個(gè)事務(wù)完成后,再開始另一個(gè)事務(wù),這種執(zhí)行方式為串行執(zhí)行;如果DBMS可同時(shí)接受多個(gè)事務(wù),這些事務(wù)在時(shí)間上可重疊執(zhí)行,這種執(zhí)行方式為并發(fā)執(zhí)行。 在單CPU系統(tǒng)中,同一時(shí)間只能有一個(gè)事務(wù)占據(jù)CPU,各個(gè)事務(wù)交叉使用CPU,這種并發(fā)方式稱為交叉并發(fā);在多CPU系統(tǒng)中,多個(gè)事務(wù)可同時(shí)占有CPU,這種并發(fā)方式稱為同時(shí)

5、并發(fā)。9一、并發(fā)控制概述 數(shù)據(jù)庫中的數(shù)據(jù)是一個(gè)共享的資源,因此會(huì)有很多用戶同時(shí)使用數(shù)據(jù)庫中的數(shù)據(jù),也就是在多用戶系統(tǒng)中,可能同時(shí)運(yùn)行著多個(gè)事務(wù),而事務(wù)的運(yùn)行需要時(shí)間和一定的數(shù)據(jù)。那么當(dāng)系統(tǒng)中同時(shí)有多個(gè)事務(wù)在運(yùn)行時(shí),特別是當(dāng)這些事務(wù)是對(duì)同一段數(shù)據(jù)進(jìn)行操作時(shí),彼此之間就有可能產(chǎn)生相互的干擾情況。10并發(fā)操作所帶來的數(shù)據(jù)不一致情況有: 丟失修改、不可重復(fù)讀 讀“臟”數(shù)據(jù)、產(chǎn)生“幽靈”數(shù)據(jù)1、丟失數(shù)據(jù)修改 指兩個(gè)事務(wù)T1和T2讀入同一數(shù)據(jù)并進(jìn)行修改,T2提交的結(jié)果破壞了T1提交的結(jié)果,導(dǎo)致T1的修改被T2覆蓋了。11122、讀“臟數(shù)據(jù)” 指一個(gè)事務(wù)讀取了某個(gè)失敗事務(wù)運(yùn)行過程中的數(shù)據(jù)。133、不可重復(fù)讀

6、 144、產(chǎn)生“幽靈”數(shù)據(jù) 實(shí)際屬于不可重復(fù)讀的范疇。指當(dāng)事務(wù)T1按一定條件從數(shù)據(jù)庫中讀取了某些數(shù)據(jù)記錄后,事務(wù)T2刪除了其中的部分記錄,或者在其中添加了部分記錄,則當(dāng)T1再次按相同條件讀取數(shù)據(jù)時(shí),發(fā)現(xiàn)其中少了(對(duì)刪除)或多了(對(duì)插入)一些記錄。這樣的數(shù)據(jù)對(duì)T1來說就是“幽靈”數(shù)據(jù)或稱“幻影”數(shù)據(jù)。 15二、并發(fā)控制措施 并發(fā)控制的主要方式是封鎖機(jī)制,即加鎖(Locking)。 加鎖就是限制事務(wù)內(nèi)和事務(wù)外對(duì)數(shù)據(jù)的操作。 所謂加鎖就是事務(wù)T在操作某個(gè)數(shù)據(jù)之前,先向系統(tǒng)發(fā)出請(qǐng)求,封鎖其所要使用的數(shù)據(jù)。加鎖后事務(wù)T對(duì)要操作的數(shù)據(jù)具有了一定的控制權(quán),在事務(wù)T釋放它的鎖之前,其他事務(wù)不能操作這些數(shù)據(jù)。1

7、6基本的鎖類型有兩種:排它鎖(也稱為X鎖)和共享鎖(也稱S鎖)。共享鎖:若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加了S鎖,則事務(wù)T可以讀A,但不能修改A,其它事務(wù)只能再對(duì)A加S鎖,而不能加X鎖,直到T釋放了A上的S鎖。排它鎖:若事務(wù)T對(duì)數(shù)據(jù)對(duì)象A加了X鎖,則允許T讀取和修改A,但不允許其它事務(wù)再對(duì)A加任何類型的鎖和進(jìn)行任何操作。17排它鎖和共享鎖的相容矩陣 T2 T1XS無鎖XNONOYESSNOYESYES無鎖YESYESYES18三、封鎖協(xié)議 對(duì)封鎖方式規(guī)定不同的規(guī)則,就形成了各種不同級(jí)別的封鎖協(xié)議。1、一級(jí)封鎖協(xié)議 一級(jí)封鎖協(xié)議是:對(duì)事務(wù)T要修改的數(shù)據(jù)加X鎖,直到事務(wù)結(jié)束(包括正常結(jié)束和非正常結(jié)束)時(shí)才釋放

8、。 一級(jí)封鎖協(xié)議可以防止丟失修改,但不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù)。19t1t2t3 t4事務(wù)T1時(shí)間事務(wù)T2(1)對(duì)A加X鎖 獲得(2)讀A16(3)要對(duì)A加X鎖等待(4)修改AA1 A15t6t7t8 t5(5)釋放A對(duì)X的 鎖(6)(7)(8)(9)等待獲得A對(duì)X的鎖讀A15修改AA4寫回A11釋放A對(duì)X的鎖202、二級(jí)封鎖協(xié)議 二級(jí)封鎖協(xié)議是:一級(jí)封鎖協(xié)議加上事務(wù)T對(duì)要讀取的數(shù)據(jù)加S鎖,讀完后即釋放S鎖。 二級(jí)封鎖協(xié)議除了可以防止丟失修改外,還可以防止讀“臟”數(shù)據(jù)。但在二級(jí)封鎖協(xié)議協(xié)議中,由于事務(wù)T讀完數(shù)據(jù)即釋放S鎖,因此,不能保證可重復(fù)讀數(shù)據(jù)。21t1t2t3t4事務(wù)T1時(shí)間事務(wù)T

9、2(1)對(duì)C加X鎖 獲得(2)讀C50(3)求CC2 寫回C100要對(duì)C加S鎖等待(4)圖66t6t7t8t5(5)回滾(6)釋放C鎖(7)(8)(9)等待等待獲得C的S鎖讀C50釋放C的S鎖223、三級(jí)封鎖協(xié)議 三級(jí)封鎖協(xié)議是:一級(jí)封鎖協(xié)議加上事務(wù)T對(duì)要讀取的數(shù)據(jù)加S鎖,并直到事務(wù)結(jié)束才釋放。 三級(jí)封鎖協(xié)議除了可以防止丟失修改和不讀“臟”數(shù)據(jù)之外,還進(jìn)一步防止了不可重復(fù)讀。 23t1t2t3t4事務(wù)T1時(shí)間事務(wù)T2(1)對(duì)A、B分別 加S鎖 獲得(2)讀A50 B100 求AB150(3)等待(4)讀A50 B100求AB150圖67t6t7t8t5(5)將和值寫入(6)釋放A鎖 釋放B鎖(

10、7)(8)(9)等待等待獲得B的X鎖讀B100寫回B200要對(duì)B加X鎖等待t9釋放對(duì)B的X鎖24三個(gè)封鎖協(xié)議的主要區(qū)別在于什么操作需要申請(qǐng)封鎖,以及何時(shí)釋放鎖。封鎖協(xié)議X鎖(對(duì)寫數(shù)據(jù))S鎖(對(duì)只讀數(shù)據(jù)) 不丟失修改(寫) 不讀臟數(shù)據(jù)(讀)可重復(fù)讀(讀)一級(jí)事務(wù)全程加鎖 不加 二級(jí)事務(wù)全程加鎖 事務(wù)開始加,讀完即放 三級(jí)事務(wù)全程加鎖 事務(wù)全程加鎖 25四、死鎖t1t2t3t4事務(wù)T1時(shí)間事務(wù)T2(1)對(duì)R1加鎖(2)(3)請(qǐng)求對(duì)R2加鎖 等待請(qǐng)求對(duì)R1加鎖等待(4) 等待等待等待對(duì)R2加鎖26解決死鎖問題方法:一類是采取一定措施來預(yù)防死鎖發(fā)生一類是允許發(fā)生死鎖,采用一定手段定期診斷系統(tǒng)中有無死鎖

11、,若有則解除之。27預(yù)防死鎖方法: 一次封鎖法:每個(gè)事務(wù)一次將所有要使用的數(shù)據(jù)全部加鎖。 封鎖范圍大,降低了系統(tǒng)的并發(fā)性順序封鎖法:預(yù)先對(duì)數(shù)據(jù)對(duì)象規(guī)定一個(gè)封鎖順序,所有事務(wù)都按這個(gè)順序封鎖。 難以確定封鎖事務(wù)及其封鎖順序死鎖診斷與解除: 方法與操作系統(tǒng)類似,一般使用超時(shí)法或事 務(wù)等待圖法28五、并發(fā)調(diào)度的可串行性 直觀地說,如果多個(gè)事務(wù)在某個(gè)調(diào)度下的執(zhí)行結(jié)果與這些事務(wù)在某個(gè)串行調(diào)度下的執(zhí)行結(jié)果相同,那么這個(gè)調(diào)度就一定是正確的,因?yàn)樗惺聞?wù)的串行調(diào)度策略一定是正確的調(diào)度策略。 多個(gè)事務(wù)的并發(fā)執(zhí)行是正確的,當(dāng)且僅當(dāng)其結(jié)果與按某一順序的串行執(zhí)行的結(jié)果相同,則我們稱這種調(diào)度為可串行化的調(diào)度。 29例如

12、,假設(shè)有兩個(gè)事務(wù),分別包含如下操作: 事務(wù)T1:讀B;AB1;寫回A; 事務(wù)T2:讀A;BA1;寫回B;假設(shè)A、B的初值均為4, 按T1 T2:結(jié)果為A5,B6; 按T2 T1:結(jié)果為A6,B5。 當(dāng)并發(fā)調(diào)度時(shí),如果執(zhí)行的結(jié)果是這兩者之一,就都是正確的。 30T1T2T1T2T1T2T1T2B加S鎖 B加S鎖 B加S鎖 B加S鎖 YB4 XA4 YB4 YB4 B釋放S鎖 A釋放S鎖 A加S鎖 B釋放S鎖 A加X鎖 B加X鎖 XA4 A加X鎖 AY+1 BX+1 B釋放S鎖 A加S鎖 寫回A(5) 寫回B(4) A釋放S鎖 AY+1 等待 A釋放X鎖 B釋放X鎖 A加X鎖 寫回A(5) 等待

13、A加S鎖 B加S鎖 AY+1 等待 XA5 YB5 寫回A(5) XA5A釋放S鎖 B釋放S鎖 B加X鎖 A釋放S鎖 B加X鎖 A加X鎖 BX+1 B加X鎖 BX+1 AY+1 BX+1 寫回B(6) 寫回A(6)A釋放X鎖 寫回B(6) B釋放X鎖 A釋放X鎖 B釋放X鎖 B釋放X鎖 (a) 串行調(diào)度 (b) 串行調(diào)度(c) 不可串行化調(diào)度 (d) 可串行化調(diào)度 31六、兩段鎖協(xié)議 兩段鎖(簡稱2PL)協(xié)議是指所有事務(wù)必須分為兩個(gè)階段對(duì)數(shù)據(jù)進(jìn)行加鎖和解鎖,內(nèi)容為:在對(duì)任何數(shù)據(jù)進(jìn)行讀、寫操作之前,首先要獲得對(duì)該數(shù)據(jù)的封鎖在釋放一個(gè)封鎖之后,事務(wù)不再申請(qǐng)和獲得任何其他封鎖 兩段鎖協(xié)議是實(shí)現(xiàn)可串行

14、化調(diào)度的充分條件。 32兩段鎖的含義:將每個(gè)事務(wù)分成兩個(gè)時(shí)期:申請(qǐng)封鎖期(開始對(duì)數(shù)據(jù)操作之前)和釋放封鎖期(結(jié)束對(duì)數(shù)據(jù)操作之后),申請(qǐng)期申請(qǐng)要進(jìn)行的封鎖,釋放期釋放所占有的封鎖。在申請(qǐng)期不允許釋放任何鎖,在釋放期不允許申請(qǐng)任何鎖。若某事務(wù)遵守兩段鎖協(xié)議,則其封鎖序列為:事務(wù)過程開始加鎖段分界解鎖段LOCK段UNLOCK段明顯的分為加鎖界所兩個(gè)段t33 SQL Server系統(tǒng)的并發(fā)控制1、SQL Server使用加鎖來控制并發(fā)問題 鎖的類型有: 數(shù)據(jù)庫鎖(Database Lock) 表鎖(Table Lock) 區(qū)域鎖(Extent Lock) 對(duì)整個(gè)區(qū)域(8頁)加鎖 面鎖(Page Loc

15、k) 對(duì)某個(gè)頁面的所有記錄加鎖 關(guān)鍵字鎖(Key Lock) 行鎖(Row Lock)34 SQL Server系統(tǒng)的并發(fā)控制2、SQL Server可以以不同的加鎖模式進(jìn)行加鎖 加鎖模式有: 共享鎖(Shared Lock) 獨(dú)占鎖(Exclusive Lock) 更新鎖(Update Lock) 意向鎖(Intend Lock) 模式鎖(Schema Lock)357.3 數(shù)據(jù)庫備份與恢復(fù)一、數(shù)據(jù)庫故障的種類1、事務(wù)內(nèi)部的故障 有些是可以預(yù)期到的,這樣的故障可通過事務(wù)程序發(fā)現(xiàn)。2、系統(tǒng)故障 指造成系統(tǒng)停止運(yùn)轉(zhuǎn)、系統(tǒng)要重啟的故障。例如,硬件錯(cuò)誤(CPU故障)、操作系統(tǒng)故障、突然停電等。這樣的

16、故障會(huì)影響正在運(yùn)行的所有事務(wù),但不破壞數(shù)據(jù)庫。3、其它故障 介質(zhì)故障或由計(jì)算機(jī)病毒引起的故障或破壞,我們歸為其它故障。36二、數(shù)據(jù)庫備份 數(shù)據(jù)備份是指定期或不定期地對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行復(fù)制,可以將數(shù)據(jù)復(fù)制到本地機(jī)器上,也可以復(fù)制到其它機(jī)器上,備份的介質(zhì)可以是磁帶也可以是磁盤。 在制定備份策略時(shí),應(yīng)考慮如下幾個(gè)方面:1、備份的內(nèi)容 應(yīng)備份數(shù)據(jù)庫中的表(結(jié)構(gòu))、數(shù)據(jù)庫用戶(包括用戶和用戶操作權(quán))、用戶定義的數(shù)據(jù)庫對(duì)象和數(shù)據(jù)庫中的全部數(shù)據(jù)。而且還應(yīng)該備份數(shù)據(jù)庫日志等內(nèi)容。372、備份頻率 確定備份頻率要考慮兩個(gè)因素: 一是存儲(chǔ)介質(zhì)出現(xiàn)故障或其它故障時(shí),允許丟失的數(shù)據(jù)量的大小。 二是數(shù)據(jù)庫的事務(wù)類型(讀多

17、還寫多)以及事務(wù)發(fā)生的頻率(經(jīng)常發(fā)生還是不經(jīng)常發(fā)生)。38三、數(shù)據(jù)庫恢復(fù)1、恢復(fù)策略 (1) 事務(wù)故障的恢復(fù) 事務(wù)故障的恢復(fù)是由系統(tǒng)自動(dòng)完成的,對(duì)用戶是透明的。 恢復(fù)的過程為:反向掃描日志文件并執(zhí)行相應(yīng)操作的逆操作。39(2)系統(tǒng)故障的恢復(fù) 系統(tǒng)故障的恢復(fù)是系統(tǒng)在重啟時(shí)自動(dòng)完成的,不需用戶干預(yù)。 恢復(fù)過程為:正向掃描日志文件,找出故障發(fā)生前已提交的事務(wù),將其重做;同時(shí)找出故障發(fā)生時(shí)未完成的事務(wù),并撤消這些事務(wù)。40(3)介質(zhì)故障的恢復(fù) 恢復(fù)的方法是首先重裝數(shù)據(jù)庫,使數(shù)據(jù)庫管理系統(tǒng)能正常運(yùn)行,然后利用介質(zhì)損壞前對(duì)數(shù)據(jù)庫已做的備份或利用鏡像設(shè)備恢復(fù)數(shù)據(jù)庫。412、恢復(fù)方法利用備份技術(shù)利用事務(wù)日志利

18、用鏡像技術(shù) 所謂鏡像就是在不同的設(shè)備上同時(shí)存有兩份數(shù)據(jù)庫,把其中的一個(gè)設(shè)備稱為主設(shè)備,把另一個(gè)稱為鏡像設(shè)備。主設(shè)備與鏡像設(shè)備互為鏡像關(guān)系。每當(dāng)主數(shù)據(jù)庫更新時(shí),DMBS自動(dòng)把更新后的數(shù)據(jù)復(fù)制到另一個(gè)鏡像設(shè)備上,保證主設(shè)備上的數(shù)據(jù)庫與鏡像設(shè)備上的數(shù)據(jù)庫一致。42應(yīng)用1應(yīng)用1應(yīng)用1應(yīng)用1 鏡像 update復(fù)制readreadread應(yīng)用1應(yīng)用1應(yīng)用1應(yīng)用1update復(fù)制readreadread 鏡像 (a)備份(b)恢復(fù)43SQL Server的恢復(fù)技術(shù) 1、定期對(duì)整個(gè)數(shù)據(jù)庫進(jìn)行轉(zhuǎn)儲(chǔ) 轉(zhuǎn)儲(chǔ)是數(shù)據(jù)庫恢復(fù)中采用的基本技術(shù)。 圖 轉(zhuǎn)儲(chǔ)和恢復(fù)442、建立“日志”文件 一般的恢復(fù)策略是:定期地將數(shù)據(jù)庫內(nèi)容轉(zhuǎn)儲(chǔ)到脫機(jī)裝置上來形成副本,同時(shí)對(duì)每次轉(zhuǎn)儲(chǔ)后新發(fā)生的改變一一記錄。日志文件就是用來記錄對(duì)數(shù)據(jù)庫每一次更新活動(dòng)的文件。這樣,即使聯(lián)機(jī)的數(shù)據(jù)庫存儲(chǔ)設(shè)備中的信息被破壞,DBA也可以很快地利用這些副本和日志文件使原狀態(tài)得以恢復(fù)。 453、數(shù)據(jù)庫恢復(fù) 轉(zhuǎn)儲(chǔ)和日志文件是恢復(fù)數(shù)據(jù)庫的有效手段。 若數(shù)據(jù)庫已被破壞,則先裝入最近一次備份的數(shù)據(jù)庫,然后利用日志文件執(zhí)行REDO(重做)操作。具體過程如下圖所示。 圖 利用轉(zhuǎn)儲(chǔ)和日志文件恢復(fù)數(shù)據(jù)庫46 若數(shù)據(jù)庫未被破壞,但某些數(shù)據(jù)不正確,則不必進(jìn)行

溫馨提示

  • 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)論