基于通用數(shù)據(jù)庫(kù)訪問引擎的數(shù)據(jù)變化捕獲方法_第1頁(yè)
基于通用數(shù)據(jù)庫(kù)訪問引擎的數(shù)據(jù)變化捕獲方法_第2頁(yè)
基于通用數(shù)據(jù)庫(kù)訪問引擎的數(shù)據(jù)變化捕獲方法_第3頁(yè)
基于通用數(shù)據(jù)庫(kù)訪問引擎的數(shù)據(jù)變化捕獲方法_第4頁(yè)
基于通用數(shù)據(jù)庫(kù)訪問引擎的數(shù)據(jù)變化捕獲方法_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、基于通用數(shù)據(jù)庫(kù)訪問引擎的數(shù)據(jù)變化捕獲方法      2,3,4.總參第六十一研究所;北京; 100039;) 摘要:本文給出了能夠適應(yīng)三層結(jié)構(gòu)的,跨平臺(tái)通用數(shù)據(jù)庫(kù)訪問引擎的設(shè)計(jì)方案,能夠?qū)Ξ悩?gòu)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)變化捕獲。關(guān)鍵詞: 通用數(shù)據(jù)庫(kù)訪問引擎;跨平臺(tái);數(shù)據(jù)變化捕獲  1引言目前,數(shù)據(jù)集成已經(jīng)成為企業(yè)獲取信息的重要方法之一。它包括數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)加載三個(gè)過程。在數(shù)據(jù)抽取過程中采用基于發(fā)布/訂閱機(jī)制的消息代理模式,不僅實(shí)現(xiàn)了數(shù)據(jù)的可靠異步傳輸,而且降低了源數(shù)據(jù)端和目的數(shù)據(jù)端的耦合度,增強(qiáng)集成的靈活性1。數(shù)據(jù)變化捕獲是數(shù)

2、據(jù)抽取過程的重要階段。但是,在文1中并未對(duì)這個(gè)數(shù)據(jù)抽取的重要過程進(jìn)行論述,本文在第二節(jié)常用數(shù)據(jù)變化捕獲方式中介紹了現(xiàn)有的成熟數(shù)據(jù)變化捕獲的技術(shù)(日志方法、觸發(fā)器方法)。本文在第三節(jié)中,針對(duì)常用的數(shù)據(jù)捕獲方式只能應(yīng)用于特定的數(shù)據(jù)庫(kù),無(wú)法針對(duì)異構(gòu)的數(shù)據(jù)庫(kù)執(zhí)行數(shù)據(jù)變化捕獲的缺陷,提出一種基于數(shù)據(jù)庫(kù)通用訪問引擎的數(shù)據(jù)變化捕獲方式。這種方式屏蔽了多個(gè)數(shù)據(jù)源之間的物理分布的差異,屏蔽了多個(gè)數(shù)據(jù)源的數(shù)據(jù)庫(kù)種類差異,能夠?qū)崿F(xiàn)分布、異構(gòu)數(shù)據(jù)庫(kù)的數(shù)據(jù)變化捕獲。2常用數(shù)據(jù)變化捕獲方式被動(dòng)數(shù)據(jù)變化捕獲方式,指的是通過外部監(jiān)控應(yīng)用程序?qū)?shù)據(jù)庫(kù)日志掃描,當(dāng)收到捕獲數(shù)據(jù)命令或者到達(dá)特定時(shí)間間隔,數(shù)據(jù)庫(kù)的數(shù)據(jù)變化被外部應(yīng)用程

3、序所捕獲。目前,主要采用的是日志分析的方法。被動(dòng)數(shù)據(jù)庫(kù)捕獲方式的核心是對(duì)數(shù)據(jù)庫(kù)日志掃描。數(shù)據(jù)庫(kù)為了保持?jǐn)?shù)據(jù)的一致性,數(shù)據(jù)庫(kù)遵循先寫日志規(guī)則:(1)在事務(wù)提交日志<T  commit>記錄輸出到硬盤前,與事務(wù)T有關(guān)的所有日志記錄必須已經(jīng)輸出到硬盤中。(2)在內(nèi)存中的數(shù)據(jù)塊輸出到硬盤前,所有與該數(shù)據(jù)塊中數(shù)據(jù)有關(guān)的日志記錄必須已經(jīng)輸出到硬盤中。2因此,日志記錄了數(shù)據(jù)庫(kù)的所有的操作。通過對(duì)日志的掃描,分析日志記錄信息,能夠得到數(shù)據(jù)的變化。在Oracle數(shù)據(jù)庫(kù)中,日志記錄的信息包括:數(shù)據(jù)庫(kù)的更改歷史、更改類型(INSERT、UPDATE、DELETE等)、更改對(duì)應(yīng)的系統(tǒng)改變號(hào)(SC

4、N)、以及執(zhí)行這些操作的用戶信息等,在分析日志時(shí),將重構(gòu)等價(jià)的SQL語(yǔ)句和UNDO語(yǔ)句(分別記錄在V$LOGMNR_CONTENTS視圖的SQL_REDO和SQL_UNDO中)日志信息的真正目的是為數(shù)據(jù)的備份與恢復(fù)服務(wù)的,利用歸檔日志文件的信息可以進(jìn)行數(shù)據(jù)的增量備份,如果我們將數(shù)據(jù)庫(kù)的整體數(shù)據(jù)信息和增量數(shù)據(jù)分別提取出來(lái),將整體數(shù)據(jù)信息以數(shù)據(jù)段的形式或其它形式向各個(gè)訂閱者進(jìn)行分發(fā),將增量數(shù)據(jù)信息通過消息代理向訂閱者進(jìn)行分發(fā),正好可以實(shí)現(xiàn)數(shù)據(jù)的集成。日志解析,捕獲數(shù)據(jù)變化過程如圖1。圖中的SCN號(hào)是Oracle在日志文件中記錄的系統(tǒng)改變號(hào)(System Changed Number),系統(tǒng)對(duì)每一次

5、改變都設(shè)置一個(gè)編號(hào)。 日志分析方法存在以下優(yōu)點(diǎn):一是對(duì)具體的數(shù)據(jù)庫(kù)對(duì)象沒有任何改動(dòng)。二是從日志文件中獲取變化數(shù)據(jù),對(duì)數(shù)據(jù)庫(kù)及其數(shù)據(jù)訪問的影響很小。三是應(yīng)用范圍廣泛,對(duì)于大多數(shù)數(shù)據(jù)庫(kù)均可采用。由于數(shù)據(jù)庫(kù)日志先寫原則是所有數(shù)據(jù)庫(kù)都必須遵循的原則,不僅僅限于Oracle數(shù)據(jù)庫(kù),還可以用在Access、SQL Server、DB2等數(shù)據(jù)庫(kù)。圖1 Oracle日志掃描,捕獲數(shù)據(jù)變化過程 日志分析方法存在以下缺點(diǎn):一是實(shí)現(xiàn)復(fù)雜。由于從數(shù)據(jù)庫(kù)視圖中得到的信息是變化數(shù)據(jù)行的SQL語(yǔ)句,不管是采用對(duì)SQL語(yǔ)句進(jìn)行解析,還是采用通過重新檢索獲取變化數(shù)據(jù)的方法,在包含橫切、縱切的視圖數(shù)據(jù)處理上都會(huì)比較復(fù)雜

6、。在多個(gè)來(lái)源數(shù)據(jù)寫入同一個(gè)目的表時(shí),主鍵的處理上也比較復(fù)雜。二是實(shí)時(shí)性不強(qiáng)。日志分析方法通過分析歸檔日志捕獲到的數(shù)據(jù)變化與數(shù)據(jù)的實(shí)際變化存在時(shí)間上的延遲。三是日志文件格式不統(tǒng)一,且大多數(shù)數(shù)據(jù)庫(kù)日志文件格式未公開。目前只有少數(shù)數(shù)據(jù)庫(kù)廠商的合作伙伴能夠得到日志文件格式,多數(shù)開發(fā)者只能利用數(shù)據(jù)庫(kù)廠商提供的程序包來(lái)分析日志(如Oracle的LogMiner),限制了捕獲的效率。主動(dòng)的數(shù)據(jù)庫(kù)捕獲方式大多采用對(duì)具體數(shù)據(jù)庫(kù)對(duì)象建立觸發(fā)器或類似觸發(fā)器的機(jī)制,在數(shù)據(jù)改變的同時(shí)主動(dòng)地、實(shí)時(shí)地向外界反映數(shù)據(jù)的變化。目前,主要的實(shí)現(xiàn)手段是觸發(fā)器。觸發(fā)器是編譯好的、存儲(chǔ)在數(shù)據(jù)庫(kù)中的過程。編寫觸發(fā)器使用的語(yǔ)言是PL/SQ

7、L。編寫和編譯觸發(fā)器的方式和編寫存儲(chǔ)過程是一樣的3。使用觸發(fā)器方式,主要工作在初始化階段,也就是創(chuàng)建捕獲觸發(fā)器的過程。觸發(fā)器建立后,捕獲工作是由數(shù)據(jù)庫(kù)自動(dòng)調(diào)用這些觸發(fā)器來(lái)完成的。由于每個(gè)表上的觸發(fā)器要完成的功能一致,所以可以通過使用統(tǒng)一模板的方式創(chuàng)建。在數(shù)據(jù)庫(kù)相應(yīng)數(shù)據(jù)表上針對(duì)插入、刪除和修改操作建立三種不同的觸發(fā)器插入觸發(fā)器、修改觸發(fā)器和刪除觸發(fā)器。每種觸發(fā)器完成的功能如下:(1)插入觸發(fā)器能夠判斷新記錄是否滿足記錄過濾條件,滿足條件的抽取指定字段的數(shù)據(jù)。(2)修改觸發(fā)器能夠判斷新舊記錄是否滿足記錄過濾條件。新舊都滿足,則記錄修改前后指定字段的數(shù)據(jù);舊記錄不滿足而新記錄滿足,則只記錄修改后指定

8、字段的數(shù)據(jù);舊記錄滿足而新記錄不滿足,記錄刪除標(biāo)志。(3)刪除觸發(fā)器能夠判斷舊記錄是否滿足記錄過濾條件,滿足的記錄刪除標(biāo)志,不滿足的不記錄。觸發(fā)器方法具有以下優(yōu)點(diǎn):可以在第一時(shí)間捕獲數(shù)據(jù)的變化,實(shí)時(shí)性強(qiáng)。利用觸發(fā)器的性質(zhì)保證數(shù)據(jù)的一致性和完整性。存在的主要缺點(diǎn):一是對(duì)建立在該數(shù)據(jù)表上的應(yīng)用程序影響很大。數(shù)據(jù)的每一次修改除在數(shù)據(jù)庫(kù)日志中記錄之外,還會(huì)額外地執(zhí)行捕獲過程,建立了多個(gè)觸發(fā)器對(duì)數(shù)據(jù)庫(kù)效率會(huì)有影響。二是觸發(fā)器的維護(hù)比較復(fù)雜。由于數(shù)據(jù)的訂閱是一個(gè)動(dòng)態(tài)的過程,而觸發(fā)器是一組靜態(tài)的PL/SQL過程,所以在數(shù)據(jù)被訂閱、或數(shù)據(jù)結(jié)構(gòu)修改時(shí),需要?jiǎng)?chuàng)建或修改原有的PL/SQL過程。三是引起觸發(fā)器之間的沖

9、突,同名的歷史數(shù)據(jù)庫(kù)觸發(fā)器將會(huì)被覆蓋,其結(jié)果直接影響到其它應(yīng)用程序的執(zhí)行。四是應(yīng)用范圍不廣泛。觸發(fā)器并不是所有的數(shù)據(jù)庫(kù)系統(tǒng)都支持,只能限于一些采用觸發(fā)機(jī)制的數(shù)據(jù)庫(kù)系統(tǒng)中。上述兩種數(shù)據(jù)捕獲方式跨平臺(tái)能力弱,與數(shù)據(jù)庫(kù)類型捆綁密切。如果某大企業(yè)遺留的信息系統(tǒng)是由多種數(shù)據(jù)庫(kù)構(gòu)建的,那么在這種情況下就必須實(shí)現(xiàn)多個(gè)數(shù)據(jù)捕獲的模塊,重復(fù)性的勞動(dòng)較多。3基于通用數(shù)據(jù)庫(kù)訪問引擎的數(shù)據(jù)捕獲方式通用數(shù)據(jù)庫(kù)訪問引擎是建立在數(shù)據(jù)庫(kù)層和應(yīng)用層之間的中間件,它能夠支持多數(shù)據(jù)庫(kù)廠商,不同版本之間的移植,屏蔽底層數(shù)據(jù)庫(kù)管理系統(tǒng)之間的差異。利用通用數(shù)據(jù)庫(kù)訪問引擎,不僅可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問的跨平臺(tái)與跨開發(fā)語(yǔ)言,也可以在不影響數(shù)據(jù)庫(kù)的

10、物理結(jié)構(gòu)和邏輯結(jié)構(gòu)前提下捕獲到即將入庫(kù)的數(shù)據(jù)變化??缙脚_(tái)與跨開發(fā)語(yǔ)言的通用訪問引擎GDAE在其功能中重點(diǎn)加入了數(shù)據(jù)捕獲的能力,實(shí)現(xiàn)了比較完善的引擎作用。通用數(shù)據(jù)庫(kù)訪問引擎GDAE (General Database Access Engine)作為三層的體系結(jié)構(gòu),由通用數(shù)據(jù)庫(kù)訪問對(duì)象GDAO(General Database Access Object)和通用數(shù)據(jù)庫(kù)訪問接口GDAI(General Database Access Interface)以及中間業(yè)務(wù)層三層組成4。其中GDAO位于GDAE的底層,它完全封裝了對(duì)數(shù)據(jù)庫(kù)的訪問,用于實(shí)際完成對(duì)數(shù)據(jù)庫(kù)的所有訪問操作。圖2 通用數(shù)據(jù)庫(kù)訪問引擎

11、的體系結(jié)構(gòu)GDAO設(shè)計(jì)的基本思想是對(duì)于幾種常用的Oracle、SQL Server、MY SQL、DM等特定數(shù)據(jù)庫(kù)廠商、特定版本的數(shù)據(jù)庫(kù),采用最直接的數(shù)據(jù)庫(kù)調(diào)用級(jí)接口實(shí)現(xiàn)的通用數(shù)據(jù)庫(kù)訪問對(duì)象來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(如GDAO_ORL、GDAO_SQLS分別是針對(duì)Oracle、SQL Server實(shí)現(xiàn)的數(shù)據(jù)庫(kù)訪問對(duì)象)。GDAI位于最上層,它是一個(gè)簡(jiǎn)潔的、統(tǒng)一的數(shù)據(jù)庫(kù)訪問的通用調(diào)用接口。該接口使得后臺(tái)數(shù)據(jù)庫(kù)的差異、數(shù)據(jù)庫(kù)連接方式等細(xì)節(jié)對(duì)于上層開發(fā)人員是完全透明的。這樣GDAI既保證了數(shù)據(jù)庫(kù)訪問效率,又兼顧了通用性。中間業(yè)務(wù)層主要包括:捕獲數(shù)據(jù)組件、發(fā)送數(shù)據(jù)組件、連接池組件、網(wǎng)絡(luò)連接組件等。網(wǎng)絡(luò)連接組件

12、負(fù)責(zé)將用戶的數(shù)據(jù)庫(kù)訪問請(qǐng)求安全、準(zhǔn)確地傳遞給數(shù)據(jù)庫(kù)服務(wù)器,并將返回的結(jié)果安全、準(zhǔn)確地傳遞給用戶。它由客戶端和服務(wù)端組成,通過TCP/IP協(xié)議連接,實(shí)現(xiàn)網(wǎng)絡(luò)通信。連接池組件是數(shù)據(jù)訪問引擎的一個(gè)必須組件,它的存在使得訪問數(shù)據(jù)庫(kù)的效率大大地提高了。提供一套高效的連接分配、使用策略(其中策略是可以讓應(yīng)用系統(tǒng)管理員配置的,比如允許維護(hù)的最大連接數(shù)和活動(dòng)的最佳連接數(shù)等),最終目標(biāo)是實(shí)現(xiàn)連接的高效、安全的復(fù)用。捕獲數(shù)據(jù)組件是完成數(shù)據(jù)捕獲的主要模塊,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的數(shù)據(jù)捕獲??蛻魬?yīng)用程序,調(diào)用訪問引擎接口對(duì)引擎服務(wù)端進(jìn)行遠(yuǎn)程調(diào)用,引擎服務(wù)器端通過網(wǎng)絡(luò)連接組件服務(wù)器端,接收客戶端提供的訪問請(qǐng)求,根據(jù)連接池組件的情況

13、,調(diào)用通用數(shù)據(jù)庫(kù)訪問對(duì)象,執(zhí)行對(duì)數(shù)據(jù)庫(kù)的操作。在數(shù)據(jù)庫(kù)操作得到反饋之前,數(shù)據(jù)捕獲組件可以以不同的策略保存更新的數(shù)據(jù)。一是將更新的數(shù)據(jù)以文件形式保存在硬盤中。二是將更新數(shù)據(jù)直接保存在內(nèi)存中,不將數(shù)據(jù)寫入硬盤。采用不同的策略是根據(jù)外部應(yīng)用不同需求,當(dāng)外部應(yīng)用需要得到穩(wěn)定的一致的更新數(shù)據(jù),就將數(shù)據(jù)以文件形式保存在硬盤中。當(dāng)外部應(yīng)用需要得到實(shí)時(shí)的更新數(shù)據(jù),數(shù)據(jù)就不需要保存在硬盤中。當(dāng)數(shù)據(jù)庫(kù)操作執(zhí)行完畢(即事務(wù)提交)之后,數(shù)據(jù)捕獲組件根據(jù)得到的反饋信息執(zhí)行操作。如果數(shù)據(jù)庫(kù)事務(wù)提交成功,更新的數(shù)據(jù)會(huì)根據(jù)預(yù)先配置的條件,當(dāng)外部應(yīng)用需要得到實(shí)時(shí)的信息,更新數(shù)據(jù)立即發(fā)送到目的端。當(dāng)外部應(yīng)用需要得到穩(wěn)定的一致的更

14、新數(shù)據(jù),可以向外部應(yīng)用發(fā)送消息,提示外部應(yīng)用訪問更新數(shù)據(jù)文件。如果事務(wù)提交失敗,數(shù)據(jù)捕獲組件可以刪除更新數(shù)據(jù)文件中的最新數(shù)據(jù),以保持?jǐn)?shù)據(jù)的一致性。并且,不發(fā)送內(nèi)存中的數(shù)據(jù)。訪問引擎運(yùn)行期間可能存在的幾種數(shù)據(jù)不一致的情況。一是數(shù)據(jù)庫(kù)已經(jīng)成功地提交,數(shù)據(jù)捕獲組件已將更新數(shù)據(jù)寫入硬盤,但反饋消息還未被數(shù)據(jù)捕獲組件接收到。此時(shí)主機(jī)發(fā)生系統(tǒng)故障,內(nèi)存中的數(shù)據(jù)全部丟失。這種情況下,數(shù)據(jù)捕獲組件,通過讀取更新數(shù)據(jù)文件,將文件中最新紀(jì)錄的數(shù)據(jù)加載到內(nèi)存中,將數(shù)據(jù)發(fā)送。二是數(shù)據(jù)庫(kù)未能成功提交,數(shù)據(jù)捕獲組件已將更新數(shù)據(jù)寫入硬盤,主機(jī)發(fā)生故障。這時(shí),數(shù)據(jù)捕獲組件將更新數(shù)據(jù)文件中的最新的數(shù)據(jù)刪除。以保證更新數(shù)據(jù)文件的

15、數(shù)據(jù)與數(shù)據(jù)庫(kù)中的數(shù)據(jù)的一致性?;谕ㄓ脭?shù)據(jù)引擎的數(shù)據(jù)捕獲方式的優(yōu)點(diǎn):一是能夠支持分布式的異構(gòu)的數(shù)據(jù)庫(kù)。二是不改變數(shù)據(jù)庫(kù)的結(jié)構(gòu),不會(huì)對(duì)基于數(shù)據(jù)庫(kù)的其他的應(yīng)用產(chǎn)生影響。三是可以給外部應(yīng)用提供不同功能接口,適應(yīng)不同外部應(yīng)用的需要。如果外部應(yīng)用對(duì)實(shí)時(shí)性要求很強(qiáng),數(shù)據(jù)捕獲組件僅僅將更新數(shù)據(jù)保存在內(nèi)存中。如果外部應(yīng)用對(duì)數(shù)據(jù)精確性要求很強(qiáng),丟失數(shù)據(jù)。數(shù)據(jù)捕獲組件將更新數(shù)據(jù)以文件形式保存在硬盤中,方便外部應(yīng)用調(diào)用。可能存在的缺點(diǎn):一是如果訪問者繞過訪問引擎,將不能捕捉到數(shù)據(jù)變化。二是如果數(shù)據(jù)捕獲組件執(zhí)行硬盤讀寫數(shù)據(jù)更新記錄的方式保持?jǐn)?shù)據(jù)一致性,可能對(duì)效率產(chǎn)生影響。4結(jié)束語(yǔ)  本文介紹了三種數(shù)據(jù)捕獲方

16、式:被動(dòng)數(shù)據(jù)捕獲方式、主動(dòng)數(shù)據(jù)捕獲方式、基于通用數(shù)據(jù)庫(kù)引擎捕獲方式。對(duì)于具有同種類型的源數(shù)據(jù)源,基于聯(lián)機(jī)日志或者快照日志是動(dòng)態(tài)捕獲數(shù)據(jù)庫(kù)變化的最為理想的方式,一旦成功解析聯(lián)機(jī)日志文件,那么我們可以在對(duì)數(shù)據(jù)庫(kù)影響最小的情況下,獲得最高的數(shù)據(jù)捕獲效率。而快照日志是退而求其次的方法。不是每個(gè)數(shù)據(jù)庫(kù)都支持這種方式,但就Oracle 來(lái)說(shuō),這種方法也是比較可取的一種方式,在Oracle 9I中也已經(jīng)提供相應(yīng)的存儲(chǔ)過程對(duì)其進(jìn)行支持。但日志格式的解析式問題實(shí)現(xiàn)的難點(diǎn)。觸發(fā)器方式實(shí)時(shí)性較強(qiáng),對(duì)于特定數(shù)據(jù)庫(kù)實(shí)現(xiàn)簡(jiǎn)單。但是,改變了數(shù)據(jù)庫(kù)的結(jié)構(gòu),對(duì)數(shù)據(jù)庫(kù)的效率由影響,并且并不是每個(gè)數(shù)據(jù)庫(kù)都支持觸發(fā)器的方式。通用訪問引擎方式能夠很好的解決數(shù)據(jù)源分布于不同分布

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論