新疆維吾爾自治區(qū)環(huán)境保護(hù)科學(xué)院 道仁·哈尼開
異構(gòu)數(shù)據(jù)庫其實(shí)就是計(jì)算機(jī)本體在體系、基礎(chǔ)操作系統(tǒng)、物理結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)和語義以及數(shù)據(jù)庫管理系統(tǒng)等方便的異構(gòu)問題。其中數(shù)據(jù)庫管理系統(tǒng)本身的異構(gòu)性可分為三個(gè)方面:一是在不同結(jié)構(gòu)方面,從本質(zhì)上來說就是DBMS數(shù)據(jù)的應(yīng)用在模型和數(shù)據(jù)結(jié)構(gòu)兩方面上的不同;二是數(shù)據(jù)存儲(chǔ)種類異構(gòu),主要指的是現(xiàn)實(shí)中相同數(shù)據(jù)在不同的數(shù)據(jù)庫中的表達(dá)和存儲(chǔ)不同;三是關(guān)系表達(dá)異構(gòu),主要指的是事件中的兩個(gè)事務(wù)之間的關(guān)系可以從多個(gè)不同的方面來定義和理解;本文需要針對(duì)異構(gòu)數(shù)據(jù)庫問題的探索,從根本上來說指的是按照異構(gòu)數(shù)據(jù)庫的管理體系之間的不同所產(chǎn)生的問題通過數(shù)據(jù)轉(zhuǎn)換的方式來解決。
XML是Extensible Markup Language的縮寫,具有描述性的標(biāo)記作用,能夠在標(biāo)記語言的基礎(chǔ)上賦予用戶定義源語言的權(quán)利。一般情況下在進(jìn)行電子文件標(biāo)記的過程中賦予其鮮明的結(jié)構(gòu)性,同時(shí)能夠針對(duì)數(shù)據(jù)來定義其類型并且進(jìn)行標(biāo)記。XML在SGML的范疇之內(nèi),也是標(biāo)準(zhǔn)通用標(biāo)記語言,在數(shù)據(jù)傳輸和轉(zhuǎn)換兩方面上的應(yīng)用十分普遍。為應(yīng)用程序在描述和交換方面建立了統(tǒng)一的辦法。
在XML技術(shù)誕生之前,數(shù)據(jù)的交換不具備統(tǒng)一的標(biāo)準(zhǔn),所以異構(gòu)數(shù)據(jù)的轉(zhuǎn)換和共享難以實(shí)現(xiàn)。XML技術(shù)誕生以后,在各個(gè)領(lǐng)域都發(fā)揮了極其廣泛的作用,其優(yōu)勢有助于行業(yè)之間在轉(zhuǎn)換和共享異構(gòu)數(shù)據(jù)方面的應(yīng)用。由于XML 格式開放,在許多操作系統(tǒng)和不同的平臺(tái)上得到支持,所以廣泛用于數(shù)據(jù)交換,尤其是在異構(gòu)系統(tǒng)集成的過程中常使用XML 作為數(shù)據(jù)交換的媒體;XML 文檔解決了純文本格式在存儲(chǔ)上的問題,所以進(jìn)行數(shù)據(jù)共享時(shí)不需要有與該數(shù)據(jù)相對(duì)應(yīng)的應(yīng)用程序,而數(shù)據(jù)共享的各種系統(tǒng)只需要有XML 解析器就可以方便地存取XML文檔,所以常常用于數(shù)據(jù)共享;XML具有格式自由、編輯方便、易于擴(kuò)展、文檔中嵌套的標(biāo)記結(jié)構(gòu)清晰等特點(diǎn)廣泛用于數(shù)據(jù)的存儲(chǔ),目前很多應(yīng)用程序和業(yè)務(wù)系統(tǒng)都把XML作為配置文件,可以方便地存儲(chǔ)和讀寫數(shù)據(jù)。
異構(gòu)數(shù)據(jù)轉(zhuǎn)換是將異構(gòu)數(shù)據(jù)轉(zhuǎn)換成一種統(tǒng)一的標(biāo)準(zhǔn)數(shù)據(jù)傳送格式的一種數(shù)據(jù)整合的技術(shù)。異構(gòu)數(shù)據(jù)轉(zhuǎn)換技術(shù)可以很好地解決異構(gòu)系統(tǒng)間的數(shù)據(jù)共享以及業(yè)務(wù)協(xié)同的問題,從而大大提高系統(tǒng)的運(yùn)行效率。
如今,對(duì)異構(gòu)數(shù)據(jù)庫數(shù)據(jù)實(shí)行有效轉(zhuǎn)換的方式有三種。其一,通過不同數(shù)據(jù)庫廠里面所特有的轉(zhuǎn)換功能來實(shí)行。一般我們選擇甲骨文公司里面針對(duì)異構(gòu)數(shù)據(jù)的Oracle導(dǎo)入和導(dǎo)出功能,又或者是Microsoft 公司針對(duì)異構(gòu)數(shù)據(jù)的SQL Server的DTS功能。盡管這些功能的性能普遍比較穩(wěn)定,轉(zhuǎn)換的質(zhì)量也非常高,但是一般都對(duì)硬件和運(yùn)行的環(huán)境有著過高的要求,并且在實(shí)際應(yīng)用的過程中,因?yàn)槊恳粋€(gè)數(shù)據(jù)庫對(duì)于同一個(gè)數(shù)據(jù)在類型和長度方面都有著相對(duì)不同的定義,以至于在進(jìn)行數(shù)據(jù)轉(zhuǎn)換的時(shí)候往往產(chǎn)生異常問題,導(dǎo)致不能實(shí)現(xiàn)正常的轉(zhuǎn)換;其二,利用中間數(shù)據(jù)庫里面的轉(zhuǎn)換功能。一般我們選擇Access里面的轉(zhuǎn)換功能,盡管Access轉(zhuǎn)換的模塊較少而且很容易實(shí)現(xiàn)擴(kuò)展的效果,但是在轉(zhuǎn)換的過程中相對(duì)復(fù)雜,所需的時(shí)間也相對(duì)較長,除此之外,轉(zhuǎn)換而來的數(shù)據(jù)一般都不能保證有較高的質(zhì)量。其三,借助XML來轉(zhuǎn)換。把我們需要進(jìn)行處理的數(shù)據(jù)轉(zhuǎn)變成XML文檔之后,通過應(yīng)用程序?qū)ML文檔里面的數(shù)據(jù)進(jìn)行辨別和解析處理??偟膩碚f,借助XML的方式轉(zhuǎn)換數(shù)據(jù),有著顯著的開放性。
XML 基礎(chǔ)上的異構(gòu)數(shù)據(jù)其本質(zhì)上是針對(duì)XML建立公共數(shù)據(jù)模型以此實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫之間的轉(zhuǎn)換。常見的工具模型層次的分類有三種,第一種是源數(shù)據(jù)庫層,第二種是數(shù)據(jù)轉(zhuǎn)換層,第三種是目的數(shù)據(jù)庫層。圖1所示的是數(shù)據(jù)轉(zhuǎn)換在XML基礎(chǔ)上的轉(zhuǎn)換模型。針對(duì)異構(gòu)數(shù)據(jù)進(jìn)行轉(zhuǎn)換的過程中通常分為三個(gè)部分:第一部分是抽取源數(shù)據(jù)庫里面的數(shù)據(jù)將其轉(zhuǎn)換成XML 基礎(chǔ)上的格式和結(jié)構(gòu)文件;第二部分是通過XML 結(jié)構(gòu)文件將源數(shù)據(jù)庫與目的數(shù)據(jù)庫兩者進(jìn)行有效轉(zhuǎn)換;第三部分是按照數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換過程中的相關(guān)規(guī)則,對(duì)源數(shù)據(jù)庫XML數(shù)據(jù)進(jìn)行處理,使其轉(zhuǎn)換到目的數(shù)據(jù)庫當(dāng)中,達(dá)到數(shù)據(jù)轉(zhuǎn)換的目的。
圖1 基于XML數(shù)據(jù)轉(zhuǎn)換模型
在圖1數(shù)據(jù)轉(zhuǎn)換工具模型中,關(guān)鍵的步驟在于怎樣將源數(shù)據(jù)庫需轉(zhuǎn)換數(shù)據(jù)抽取為 XML文件。因此整個(gè)轉(zhuǎn)換模型的核心就在于數(shù)據(jù)轉(zhuǎn)換層,它的起到承上啟下的作用,通過數(shù)據(jù)抽取器與數(shù)據(jù)庫進(jìn)行關(guān)聯(lián)并且把源數(shù)據(jù)庫里面的屬于進(jìn)行轉(zhuǎn)換得到XML。
在XML基礎(chǔ)上的異構(gòu)數(shù)據(jù)庫在進(jìn)行轉(zhuǎn)換數(shù)據(jù)的關(guān)鍵過程通常集中在數(shù)據(jù)的抽取、轉(zhuǎn)換和代寫這三個(gè)方面。
(1)數(shù)據(jù)抽取器:指的是針對(duì)數(shù)據(jù)的抽取,相當(dāng)于是轉(zhuǎn)換數(shù)據(jù)的第一步,它首先使用 ADO.NET 技術(shù)連接源數(shù)據(jù)庫,通過對(duì)數(shù)據(jù)庫的應(yīng)用實(shí)現(xiàn)對(duì)模塊的操作功能,主要通過對(duì)連接功能,查詢功能,插入功能、修改功能和刪除等方面的操作,來獲取數(shù)據(jù)庫的數(shù)據(jù)信息,按照需求來對(duì)數(shù)據(jù)實(shí)行轉(zhuǎn)換操作。利用數(shù)據(jù)庫將模塊抽出來,通過對(duì)轉(zhuǎn)換而來的數(shù)據(jù)進(jìn)行提取,得到XML 數(shù)據(jù)文件,與此同時(shí)形成 XML 結(jié)構(gòu)文件,使得數(shù)據(jù)在源數(shù)據(jù)庫和目的數(shù)據(jù)庫之間的轉(zhuǎn)換和匹配能夠有效進(jìn)行。
(2)數(shù)據(jù)轉(zhuǎn)換器:指的是對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行轉(zhuǎn)換,是實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換的主要環(huán)節(jié)。首先針對(duì)XML結(jié)構(gòu)文件,使得源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫兩者之間形成聯(lián)系,通過對(duì)轉(zhuǎn)換過程中產(chǎn)生的語義、命名、類型等方面問題的解決,得到數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換文件,同時(shí)把源數(shù)據(jù)庫里面的數(shù)據(jù)進(jìn)行更新后,將其轉(zhuǎn)換成最終所需要目的數(shù)據(jù)庫。數(shù)據(jù)轉(zhuǎn)換有兩種方式,一種是遷移式,一種合并式。遷移式的轉(zhuǎn)換方式一般針對(duì)空的目的數(shù)據(jù)庫來進(jìn)行,而合并式數(shù)據(jù)轉(zhuǎn)換方式多用于目的數(shù)據(jù)庫為不空的情況。
(3)數(shù)據(jù)寫入器:是數(shù)據(jù)轉(zhuǎn)換層的最后步驟,其負(fù)責(zé)進(jìn)行數(shù)據(jù)的寫入。也就是說按照結(jié)構(gòu)轉(zhuǎn)換的規(guī)則實(shí)現(xiàn)源數(shù)據(jù)庫和目的數(shù)據(jù)庫兩者之間的轉(zhuǎn)換。
長期以來,“數(shù)據(jù)孤島”問題已經(jīng)給信息化建設(shè)中的數(shù)據(jù)共享、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)交換帶來了制約,而XML 技術(shù)的產(chǎn)生和發(fā)展給解決這一問題提供了新的方法。在對(duì)異構(gòu)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行轉(zhuǎn)換的過程中,XML有著顯著的優(yōu)勢,該技術(shù)正逐漸成為實(shí)現(xiàn)數(shù)據(jù)共享與交換的不二選擇。
[1]韓冰.如何進(jìn)行XML的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)的轉(zhuǎn)換[J].硅谷,2012(09).
[2]楊倩晨.高校異構(gòu)數(shù)據(jù)共享與交換的應(yīng)用研究[J].教育現(xiàn)代化,2017(4).
[3]杜邵敏.基于XML的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)換技術(shù)的探討[J].通化師范學(xué)院學(xué)報(bào),2009(02).
[4]王沛.一種基于XML的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)換方法[J].西安郵電學(xué)院學(xué)報(bào),2009(06).
[5]杜邵敏.基于XML的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)換工具的設(shè)計(jì)與實(shí)現(xiàn)[D].沈陽理工大學(xué),2009.