吳遠(yuǎn)輝 吳遠(yuǎn)新 羅雄蘭
摘 要:異構(gòu)數(shù)據(jù)庫的研究與應(yīng)用是目前計(jì)算機(jī)領(lǐng)域較為活躍的領(lǐng)域之一,但是隨著科技的進(jìn)步與時(shí)代的發(fā)展,應(yīng)用環(huán)境的不同,因此需要不同的數(shù)據(jù)庫系統(tǒng)對(duì)其進(jìn)行同步操作,而不同數(shù)據(jù)庫之間的異構(gòu)同步操作則成為了不可回避的問題,本文也正是針對(duì)不同數(shù)據(jù)庫之間的異構(gòu)同步操作的實(shí)現(xiàn)進(jìn)行研究。
關(guān)鍵詞:異構(gòu)數(shù)據(jù)庫;同步;操作
隨著信息化的發(fā)展與網(wǎng)絡(luò)技術(shù)的進(jìn)步,越來越多的計(jì)算及研究涉及到了數(shù)據(jù)共享的問題,但是為了可以更好的對(duì)數(shù)據(jù)進(jìn)行同步操作,采用了不同類型的數(shù)據(jù)庫模型與系統(tǒng)對(duì)其進(jìn)行共享,實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫之間的數(shù)據(jù)同步。
1 XML與WEB SERCICES的特性
XML主要用于不同數(shù)據(jù)庫之間的數(shù)據(jù)描述,并側(cè)重于數(shù)據(jù)類型的描述。其不僅具備可擴(kuò)展性、自定義性、結(jié)構(gòu)性強(qiáng)、純文本性、數(shù)據(jù)存儲(chǔ)與數(shù)據(jù)分離性、可讀性等特點(diǎn),可以令不同數(shù)據(jù)庫之間的數(shù)據(jù)進(jìn)行異構(gòu)同步操作。
WEB SERCICES技術(shù)則是將不同數(shù)據(jù)庫之間的數(shù)據(jù)傳送看做服務(wù),其不僅可以在網(wǎng)絡(luò)數(shù)據(jù)傳遞過程中被發(fā)現(xiàn)、組織和重用。更可以屏蔽業(yè)務(wù)邏輯的復(fù)雜性,實(shí)現(xiàn)不同數(shù)據(jù)庫之間的異構(gòu)同步操作。
WEB SERCICES采用XML作為同步操作的實(shí)現(xiàn)格式,不僅可以將WEB SERCICES的架構(gòu)靈活性、動(dòng)態(tài)性進(jìn)行合理運(yùn)用,更可以實(shí)現(xiàn)良好的共同性、松耦性、平臺(tái)無關(guān)性?;贖TTP的SOAP協(xié)議,也可以輕松的穿越防火墻,不僅解決了互操作性的有限性,更加提高了不同數(shù)據(jù)庫之間的異構(gòu)同步操作問題。
2 基于XML/WEB SERCICES技術(shù)的不同數(shù)據(jù)庫之間的異構(gòu)同步系統(tǒng)
不同數(shù)據(jù)庫之間的異構(gòu)同步操作需要掌握三個(gè)方面的核心要求,首先,怎樣解決不同數(shù)據(jù)庫之間異構(gòu)系統(tǒng)的相互操作問題;其次,怎樣將不同數(shù)據(jù)庫之間的異構(gòu)系統(tǒng)進(jìn)行信息的相互傳輸問題;第三,怎樣解決不同數(shù)據(jù)庫之間同構(gòu)與異構(gòu)的數(shù)據(jù)轉(zhuǎn)換問題。
本文正是利用XML作為交換數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)之間的信息分開,并定義為明確的數(shù)據(jù)值文檔與數(shù)據(jù)結(jié)構(gòu)文檔,從而完成數(shù)據(jù)庫文檔的信息轉(zhuǎn)換。WEB SERCICES的使用不僅可以將不同數(shù)據(jù)庫之間的信息進(jìn)行連接,更可以將各數(shù)據(jù)庫之間進(jìn)行SOAP協(xié)議通信。不同數(shù)據(jù)庫之間的異構(gòu)同步操作的前提就是每個(gè)參與同步操作的數(shù)據(jù)庫系統(tǒng)都需要支持存儲(chǔ)過程與觸發(fā)器,從而實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換與處理。
3 不同數(shù)據(jù)庫之間的異構(gòu)同步操作設(shè)計(jì)與實(shí)現(xiàn)
3.1 源數(shù)據(jù)庫觸發(fā)器的結(jié)構(gòu)定義
源數(shù)據(jù)庫安裝的觸發(fā)器其目的在于完整記錄數(shù)據(jù)庫的變動(dòng)與數(shù)據(jù)傳輸信息。但是由于不同的數(shù)據(jù)庫之間需要同步操作。假設(shè)每個(gè)數(shù)據(jù)庫都需要建立一個(gè)觸發(fā)器,這種方式不但具備復(fù)雜性,更加不便于數(shù)據(jù)庫之間的維修,缺乏便捷性、可擴(kuò)展性與通用性。因此,則需要在不同數(shù)據(jù)庫之間的異構(gòu)同步操作實(shí)現(xiàn)中,使多個(gè)數(shù)據(jù)庫之間共享。
3.2 觸發(fā)器的使用
觸發(fā)器的優(yōu)勢(shì)在于當(dāng)計(jì)表進(jìn)行修改時(shí)可以自用進(jìn)行內(nèi)嵌執(zhí)行過程。而不同數(shù)據(jù)庫之間的異構(gòu)同步操作一旦使用觸發(fā)器,則是根據(jù)觸發(fā)器內(nèi)嵌裝置中定義的合法性與不合法性進(jìn)行執(zhí)行,如果不合法,那么觸發(fā)器則不會(huì)觸發(fā)。而數(shù)據(jù)庫發(fā)生變化時(shí),則觸發(fā)器則會(huì)將數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行轉(zhuǎn)化,并寫入觸發(fā)器數(shù)據(jù)表中。
3.3 數(shù)據(jù)提取組件
基于數(shù)據(jù)庫的觸發(fā)器進(jìn)行信息的提取,然后按照定義規(guī)則將其轉(zhuǎn)化成XML文檔。不同數(shù)據(jù)庫之間的異構(gòu)同步操作系統(tǒng)采用的就是XML格式,在進(jìn)行WEB SERCICES編寫過程中,則需要利用利用C#實(shí)現(xiàn)不同數(shù)據(jù)庫之間異構(gòu)同步操作需要的WEB SERCICES,建立WEB SERCICES的程序清單。
3.4 數(shù)據(jù)加載組件
將符合不同數(shù)據(jù)庫之間異構(gòu)同步操作的XML文檔,添加進(jìn)數(shù)據(jù)庫中,加載轉(zhuǎn)換后不同數(shù)據(jù)庫之間異構(gòu)同步操作的 XML文檔到目的數(shù)據(jù)庫。
3.5 數(shù)據(jù)的接收/發(fā)送組件
在進(jìn)行不同數(shù)據(jù)庫之間異構(gòu)同步操作的的數(shù)據(jù)庫WEB SERCICES提供剛發(fā)之前,需要?jiǎng)?chuàng)建改WEB SERCICES的PROXY OBJECT。根據(jù)WEB SERCICES的WSDL文件生成代理,并用手動(dòng)方式調(diào)動(dòng)WEB SERCICES。
3.6 數(shù)據(jù)的轉(zhuǎn)換組件
用注冊(cè)表內(nèi)的XSLT文檔接受來自XML文檔,并將其轉(zhuǎn)化成為符合不同數(shù)據(jù)庫之間異構(gòu)同步操作的XML格式。通過上述方法,可以逐漸實(shí)現(xiàn)不同數(shù)據(jù)庫之間異構(gòu)同步操作轉(zhuǎn)化功能,并有效解決不同數(shù)據(jù)庫之間異構(gòu)同步操作問題。
4 結(jié)論
數(shù)據(jù)庫在計(jì)算機(jī)網(wǎng)絡(luò)中具備不同的節(jié)點(diǎn),且具備一致性與分散性等特點(diǎn),同步更新不僅僅是一種技術(shù),更是需要達(dá)到數(shù)據(jù)分布存放的目的,從而實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫的同步操作,本文提出的方案則更加具備可靠性、擴(kuò)展性與跨平臺(tái)性,實(shí)現(xiàn)不同數(shù)據(jù)庫之間異構(gòu)同步操作。
[參考文獻(xiàn)]
[1]賈長(zhǎng)云.基于XML的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)交換的研究與實(shí)現(xiàn)[D].河海大學(xué).2005(3).
[2]王軍.基于XML的分布式異構(gòu)數(shù)據(jù)庫同步研究與設(shè)計(jì)[D].南昌大學(xué).2007(6).
[3]姚旭.基于JMS與Web Service的分布式異構(gòu)數(shù)據(jù)庫同步的研究[D].遼寧工程技術(shù)大學(xué).2009(11).