黃曉川 楊曉鵬 黃琛
【摘 要】本文詳細研究分析了傳統三大經典數據集成體系結構,通過對比其優缺點,提出了一個基于XML技術的數據遷移中間件模型,并討論了基于該模型的關鍵技術實現策略。
【關鍵詞】XML;異構數據庫;數據遷移
0 研究背景及意義
隨著我國信息化程度的高速發展,各種教育考試系統如雨后春筍般的層出不窮。全國各個省市出現大量成招、高招、自考、會考等各種不同類型的考試系統。不同的教育考試系統采用不同的開發工具、不同的網絡環境、不同的數據庫管理系統等進行開發。教育考試系統所存儲的大量信息也大多數采用了不同的數據結構和數據類型等[1]。雖然各考試系統積累了大量的考試信息及成績信息,但各系統都是獨立工作,相互間不能夠共享資源而形成了一個個“信息孤島”。同時,這些信息系統的開發年代各有不同,使用的技術工具也各式各樣,這就給這些珍貴的教育考試信息的日常維護埋下了重大安全隱患,也給管理人員對其進行數據挖據及分析工作造成了很大障礙。為了能進一步加強對教育考試類信息的安全管理,充分利用并分析這些獨立分散的數據,在江西省各教育考試系統之間實現數據共享與數據交換,有必要建立一套完善數據集成交換平臺。通過這個平臺可以使各教育考試系統之間共享考試信息及成績信息,給眾考生帶來極大便利,同時也方便對各考生考試信息及成績信息進行集中式管理。
1 三大經典異構數據集成體系結構分析
1.1 數據倉庫體系結構
基于傳統數據倉庫體系結構將來自幾個異構數據源的數據副本,按照集中且統一的視圖要求,進行預處理、轉換,由此來符合數據倉庫的模式,然后將其存儲到數據倉庫中,給用戶提供一個透明的統一視圖。圖1即為數據倉庫體系結構示意圖。由于數據的集中,使得用戶可以通過數據建模、聯機分析處理和數據挖掘工具有效利用數據,方便能正確及時的作出決策[2]。
圖1 數據倉庫體系結構示意圖
基于數據倉庫的數據集成系統結構,其優點是數據高度集中,建立用戶端較為方便,有利于對大量集成數據的高效處理。但數據倉庫的集成系統面臨著初始數據裝載和變化后數據的更新問題,如果用戶需要實時數據,那么數據即時更新的效率影響了系統的可用性,數據更新問題成為該方法的最大弊端。
1.2 聯邦數據庫體系結構
聯邦數據庫系統是虛擬視圖法的一種,目的是實現數據庫系統間部分數據的共享。聯邦數據庫系統由一系列獨立、自治的數據庫系統組成[3],而且各個數據源相互獨立。聯邦數據庫系統主要通過數據庫轉換和模式轉換實現。
1.2.1 數據庫轉換。
在數據庫轉換中任何一個數據庫都通過一定的關系映射生成一個用戶數據庫的副本,當用戶訪問數據庫時,實際上只是通過用戶可以理解的模式來訪問源數據庫中的數據,也即是說不同的數據源之間使用數據轉換接口來實現數據的相互訪問,如此一個數據源就可以訪問任何其它數據源的信息。圖2所示為數據庫轉換示意圖[2]。
圖2 數據庫轉換示意圖
1.2.2 模式轉換
模式轉換在各數據源之間建立一一映射,然后通過事務翻譯到另外的數據源中去執行。若此時有n個異構數據源需要相互連接,則需要構造n×(n-1)個映射程序來支持這n個異構數據源之間的互相訪問。因此當參與聯邦的數據庫很多時,建立映射規則的任務不可行。下面給出了四個異構數據源構造聯邦數據庫的結構示意圖,其中每個數據源都必需和其他三個數據源進行相互映射[2]。
圖3 模式轉換示意圖
通過對聯邦數據庫系統數據庫轉換和模式轉換分析可知聯邦數據庫系統顯然不是一個很好的解決方案。
1.3 Wrapper/Mediator中間件體系結構
基于中間件的的數據集成是一種典型的模式集成方法,其主要包括中間件(Mediator)和包裝器(Wrapper)[4]。每個數據庫都是通過包裝器與中間件進行交互的,而中間件則與用戶進行交互,并且將用戶要求的查詢通過包裝器從數據源中得到結果。因為中間件結構不存儲任何數據,它和數據倉庫結構是有本質區別的。圖4展示中間件集成多個異構數據源的系統結構,和數據倉庫一樣,典型的數據集成將會有多個不同的異構數據源[2]。中間件體系結構是目前比較流行的數據集成方法,它通過在中間層提供一個統一的數據邏輯視圖來隱藏底層的數據細節,使得用戶可以把集成數據源看為一個統一的整體。
圖4 中間件體系結構示意圖
2 基于XML的數據遷移模型
利用XML文檔作為中間件,可以將源數據庫的結構和數據分離出來,生成源數據庫的結構文檔和數據文檔,使數據庫的結構和XML文檔的結構之間形成映射,同時在數據遷移過程中,根據源數據庫的結構文檔再現和還原目標數據庫,目標數據庫生成之后,使用DOM解析器解析讀取數據文檔中的數據,將其遷移到目標數據庫中的過程。以下為基于XML的數據遷移模型示意圖[5]。
圖5 基于XML的數據遷移模型
為了減少數據遷移的響應時間,提高數據遷移的效率,在數據遷移之前,需要將這些小的數據文檔整合到一起,形成一個大的數據文檔。最后,根據規則將數據文檔遷移到異構數據庫中[5]。
3 關鍵技術實現策略
3.1 Web Services封裝
在這里主要描述常見的基于數據庫訪問API的封裝以及基于ADO訪問的封裝。
基于數據庫訪問API的封裝根據Web Services標準,將功能組件封裝成Web Services組件,然后使用WSDL描述服務,將從信息系統提取到的數據寫入XML文檔。整個過程可以分為以下幾個階段:引用API函數庫,聲明Web Services對象,聲明Web Services方法,調用API方法操作數據庫,釋放對本地應用程序的引用[6]。
3.2 Web Services集成和轉換
通過使用開放的XML標準和可擴展樣式表轉換語言(XSLT)來分析和提取XML文檔,然后結合不同的XML文檔以及映射XML文檔和關系數據庫來實現基于單位細粒度的Web Services的數據交換和數據共享。
3.2.1 不同XML文檔的集成
基于上述的映射規則,可以通過XML查詢語言XPath和XQuery[7]轉換Web Services單元的XML文檔,形成統一結構的XML文檔模型,通過使查詢進行一串可執行功能以滿足復雜查的詢要求[8]。整個過程如下:
第一步,分析XQuery請求語法,然后讀取要轉換的XML文檔。
第二步,根據XQuery請求的XPath表達式處理查詢。
第三步,當所需的數據被檢索之后,通過統一的映射規則生成目標XML文檔。
生成的目標XML文檔是各教育考試系統幾個數據庫的聯合數據集,可以被映射轉化到關系數據庫中,并封裝成粗粒度服務注冊到UDDI注冊中心。
3.2.2 從XML到關系數據庫的映射和轉換
從XML到關系數據庫的轉換方法可以分為結構映射和模型映射。相比于結構映射方法,模型映射具有以下優點:支持任何靜態或動態XML數據存儲,支持沒有數據庫模型擴展的XML數據存儲[9]。因此,本文使用基于表的模型映射方法映射和轉換XML為共享關系數據庫[10]。XML文檔模型中作為表的視圖結構映射為關系數據庫中的映射表或視圖,XML文檔中的元素或屬性映射為關系數據庫的列名,XML文檔的內容映射為關系數據庫中列的值。
3.2.3 從關系數據庫到XML文檔的映射和轉換
映射和轉換包括結構映射和數據轉換,最后生成XML Schema文檔和XML數據文件,步驟和Web Services封裝類似。
4 結論
本文提出了一個基于XML技術的數據遷移中間件模型,該模型通過將各異構數據庫的數據包裝成XML全局視圖的形式,來整合和查詢離散的異構數據源,同時也為實現各異構數據庫之間的透明性提供了強有力的支持,可以用一種統一的XML查詢語言來進行查詢。
【參考文獻】
[1]董麗.基于 XML 與中間件的異構數據源整合系統的設計與實現[D].武漢:武漢科技大學信息科學與工程學院,2005.
[2]倪燕.異構系統數據共享的研究與實現[D].長沙:湖南大學,2007.
[3]劉高軍,鮑曉琦.基于聯邦數據庫的數據集成平臺研究與改進[J].計算機光盤軟件與應用,2012(2):45-46.
[4]楊宏英,林長松.異構數據集成系統的應用模式與技術實現[J].微電子學與計算機,2006,23(8):70-72.
[5]張濤.基于 XML 和 WebServices 異構數據轉換的設計與實現[D].青島:中國海洋大學,2009.
[6]Tianjing (2007) Research and application of enterprises integration based on SOA[M].Wuhan, China.
[7]Hong Z, Xuhui LI, Mengchi LIU(2009) Application research of computers[J]. XML Query Approach Based Log XML Tree, 26: 609
[8]Pengfei Z, Naiqian L (2010) Computer Engineering[J]. XML-Based Distrib Database Integr Syst., 36:71.
[9]Song Yuqing G, Chengquan L (2010) Application research of computers[J]. Res Mapp Method XML Doc Relational Database, 27:951.
[10]Liming W, Jun Z, Ming C (2007) Mapping mechanism based on table model between XML and database[J]. J Military Commun Technol., 28:46-47.
[責任編輯:楊玉潔]