倪興旺
(安慶職業(yè)技術(shù)學(xué)院 電子信息系,安徽 安慶 246003)
基于XML的異構(gòu)數(shù)據(jù)交換研究與實(shí)現(xiàn)
倪興旺
(安慶職業(yè)技術(shù)學(xué)院 電子信息系,安徽 安慶 246003)
異構(gòu)數(shù)據(jù)交換是進(jìn)行異構(gòu)信息資源集成和共享的關(guān)鍵技術(shù).針對XML技術(shù)的優(yōu)勢,對基于XML的異構(gòu)數(shù)據(jù)交換機(jī)制和異構(gòu)數(shù)據(jù)交換實(shí)現(xiàn)方法進(jìn)行了研究和探討,給出了一個(gè)基于XML的異構(gòu)數(shù)據(jù)交換技術(shù)的實(shí)現(xiàn)方案.
XML;異構(gòu)數(shù)據(jù);數(shù)據(jù)交換
隨著互聯(lián)網(wǎng)信息化應(yīng)用的不斷普及,互聯(lián)網(wǎng)上連接著各種模型的數(shù)據(jù)庫系統(tǒng),組成了海量的信息資源庫.然而,這些信息資源庫采用的數(shù)據(jù)模型不同,導(dǎo)致數(shù)據(jù)共享比較差,從而浪費(fèi)了很大的資源.為了使這些分布在不同數(shù)據(jù)庫中的信息資源實(shí)現(xiàn)共享,互聯(lián)網(wǎng)的異構(gòu)分布式信息系統(tǒng)正在快速發(fā)展,最終實(shí)現(xiàn)數(shù)據(jù)信息資源和硬件設(shè)備資源在不同數(shù)據(jù)模型數(shù)據(jù)庫之間的合并和共享,實(shí)現(xiàn)數(shù)據(jù)的集成共享訪問[1].
1.1XML技術(shù)
XML(Extensible Markup Language)是由W3C組織于1998年2月制定的一種通用標(biāo)記語言規(guī)范,是SGML的簡化子集,它獨(dú)立于系統(tǒng)和處理程序,已成為了當(dāng)前數(shù)據(jù)描述的事實(shí)標(biāo)準(zhǔn)[1].與其他的專用標(biāo)記語言相比較,XML語言具有明顯的優(yōu)勢,這集中表現(xiàn)在如下4個(gè)方面:
1)XML語言可以實(shí)現(xiàn)數(shù)據(jù)內(nèi)容與形式分離,通過XML,可以有助于程序直接分析、處理數(shù)據(jù)內(nèi)容,而不會(huì)被格式化代碼干擾;
2)XML用于數(shù)據(jù)交換,由于XML格式開放,在許多操作系統(tǒng)上得到多種開發(fā)平臺的支持,因此,在系統(tǒng)集成的過程中常使用XML作為數(shù)據(jù)交換的媒體;
3)XML可以實(shí)現(xiàn)數(shù)據(jù)共享,以前在異構(gòu)系統(tǒng)之間進(jìn)行數(shù)據(jù)交換常需要有與該數(shù)據(jù)相對應(yīng)的應(yīng)用程序才可行,而XML文檔是基于純文本格式的,進(jìn)行數(shù)據(jù)交換的各種系統(tǒng)只需要有XML解析器就可以存取XML文檔,XML也可以用于數(shù)據(jù)的存儲,XML格式自由、易于擴(kuò)展、編輯方便、文檔中嵌套的標(biāo)記結(jié)構(gòu)清晰,目前很多的應(yīng)用程序和業(yè)務(wù)系統(tǒng)都選擇XML作為應(yīng)用系統(tǒng)的程序數(shù)據(jù)文件和配置文件,應(yīng)用程序可以方便地存儲和讀寫數(shù)據(jù)[1];
4)XML可以實(shí)現(xiàn)數(shù)據(jù)的重復(fù)使用,XML文檔因本身是開放的純文本文檔,相比二進(jìn)制文件容易理解,易于訪問編輯,這降低了重復(fù)使用文檔數(shù)據(jù)的難度.
1.2 基于XML的異構(gòu)數(shù)據(jù)交換機(jī)制
異構(gòu)數(shù)據(jù)交換,是將異構(gòu)數(shù)據(jù)轉(zhuǎn)換成一種統(tǒng)一的標(biāo)準(zhǔn)數(shù)據(jù)傳送格式,然后通過網(wǎng)絡(luò)傳送與交換,被其它的目標(biāo)數(shù)據(jù)庫接收后,再將標(biāo)準(zhǔn)化的數(shù)據(jù)轉(zhuǎn)換成目標(biāo)數(shù)據(jù)庫的數(shù)據(jù)模型或相應(yīng)的DBMS格式,進(jìn)而實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的共享和透明訪問[2].基于XML的異構(gòu)數(shù)據(jù)交換系統(tǒng)模型如圖1所示.
利用XML提供的標(biāo)準(zhǔn)為交換模型,通過把XML文檔作為底層數(shù)據(jù)交換的中介進(jìn)行數(shù)據(jù)的轉(zhuǎn)換與傳輸,完成各應(yīng)用系統(tǒng)之間的無縫數(shù)據(jù)交換,從而實(shí)現(xiàn)異構(gòu)數(shù)據(jù)的集成共享,達(dá)到各種現(xiàn)有信息資源的充分利用[3].
利用XML技術(shù)進(jìn)行異構(gòu)數(shù)據(jù)交換,首先需要遠(yuǎn)程連接數(shù)據(jù)庫,讀取源數(shù)據(jù)后通過數(shù)據(jù)庫信息到XML的映射規(guī)則將異構(gòu)源數(shù)據(jù)轉(zhuǎn)換為XML標(biāo)準(zhǔn)結(jié)構(gòu)文檔,實(shí)現(xiàn)將異構(gòu)數(shù)據(jù)保存到XML文檔中.再將XML標(biāo)準(zhǔn)結(jié)構(gòu)文檔通過傳輸通道傳送到相應(yīng)的目標(biāo)數(shù)據(jù)庫系統(tǒng).最后,通過目標(biāo)數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換程序,將XML文檔轉(zhuǎn)換成目標(biāo)系統(tǒng)相應(yīng)的數(shù)據(jù)結(jié)構(gòu)模式,進(jìn)而完成異構(gòu)數(shù)據(jù)源之間的異構(gòu)數(shù)據(jù)交換[2,4].
圖1 基于XML的異構(gòu)數(shù)據(jù)交換系統(tǒng)模型
筆者設(shè)置了2臺服務(wù)器,分別安裝了Access 2010和SQL Server 2008.下面首先將Access數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)化成XML文檔,再將XML文檔數(shù)據(jù)保存到SQL Server數(shù)據(jù)庫中.另外還設(shè)置了1臺編程工作站,分別使用Java和VS 2010為編程工具.
2.1 訪問Access數(shù)據(jù)庫
建立讀取表student中數(shù)據(jù)的主方法,將數(shù)據(jù)信息保存到XML文檔中,代碼如下:
方法setAttrName(String,int)用來將stud_id(student表中的主鍵)指定為元素student的屬性,方法setElementName(String,int)用來設(shè)置轉(zhuǎn)換后的XML文檔的元素名稱,其中的String型字符串用來指定元素名稱或是屬性名稱,int型數(shù)字用來關(guān)聯(lián)此元素或?qū)傩缘闹凳菑谋碇械牡趲讉€(gè)字段讀取的.逐行讀取數(shù)據(jù)庫中數(shù)據(jù)并保存為XML數(shù)據(jù)的主要部分代碼如下:
主方法執(zhí)行后,得到的XML文檔元素內(nèi)容為:
2.2 轉(zhuǎn)換異構(gòu)數(shù)據(jù)
首先在SQL Server 2008中增加一張與student的結(jié)構(gòu)一樣的表,然后在VS 2010中添加一個(gè)GridView控件,在數(shù)據(jù)源中選擇“XML”文件,用來將XML結(jié)構(gòu)的數(shù)據(jù)綁定到GridView控件,接著為GridView控件添加自動(dòng)更新事件,通過GridView控件的自動(dòng)更新事件,把XML數(shù)據(jù)保存到SQL Server 2008數(shù)據(jù)庫中.
在SQL Server 2008中執(zhí)行SQL語句,正好得到XML結(jié)構(gòu)文檔中的數(shù)據(jù),結(jié)果如圖2所示.
圖2 SQL執(zhí)行結(jié)果
異構(gòu)數(shù)據(jù)交換一直是信息資源集成共享領(lǐng)域研究的熱點(diǎn),是進(jìn)行異構(gòu)數(shù)據(jù)集成和共享的關(guān)鍵技術(shù)之一.筆者對基于XML的異構(gòu)數(shù)據(jù)交換實(shí)現(xiàn)機(jī)制進(jìn)行了探討,給出了一個(gè)基于XML的異構(gòu)數(shù)據(jù)交換技術(shù)的實(shí)現(xiàn)方案,為不同源數(shù)據(jù)的信息集成共享提供參考.
[1]陳愛華.基于XML和WebService的異構(gòu)數(shù)據(jù)庫數(shù)據(jù)交換研究[J].軟件工程師,2011,(5):56-58.
[2]張麗華.基于XML的異構(gòu)數(shù)據(jù)交換技術(shù)研究[J].蘇州科技學(xué)院學(xué)報(bào),2010,(6):77-79.
[3]李沐,謝紅薇.基于XML的異構(gòu)數(shù)據(jù)交換技術(shù)的研究[J].電腦開發(fā)與應(yīng)用,2010,23(8):37-40.
[4]鄒衛(wèi)國,郭建勝,王毅,等.基于XML的異構(gòu)數(shù)據(jù)交換研究[J].中國管理信息化,2009,(12):82-83.
[5]APARICIO S,OSCAR L M.Applying Ontologies in the Integration of Heterogeneous Relational Databases[C].Conferences in Research and Practice in Information Teachnology Series,172;Proceedings of the 2005 Australasion Ontology Workshop,58,2005.
(責(zé)任編輯 李健飛)
A Study of Implementation on Heterogeneous Data Exchange Based on XML
NI Xing-wang
(Department of Electronic Engineering,Anqing Vocational College,Anqing,Anhui 246003,China)
Heterogeneous data exchange is a key technology for heterogeneous information resources integration and sharing.Based on the advantages of XML technology,and mechanism of heterogeneous data exchange,a plan is given based on XML heterogeneous data.
XML;heterogeneous data;data exchange
TP311.138
:A
:1673-1972(2014)03-0035-04
2014-02-16
倪興旺(1975-),男,安徽安慶人,講師,主要從事網(wǎng)絡(luò)與數(shù)據(jù)庫、算法設(shè)計(jì)研究.