裴 沛
(山西金融職業(yè)學院信息技術系,山西 太原 030008)
隨著信息技術的發(fā)展,企事業(yè)單位的部門組織結構越來越細化和復雜,因此子機構的數(shù)據(jù)庫資源,如數(shù)據(jù)信息資源、硬件設備資源和人力資源等也相應不斷產生并且相互獨立地存在著。信息資源的繁雜會造成大量的作廢信息,從而無法確保數(shù)據(jù)的一致性,影響信息的使用效率。因此,進入信息高速發(fā)展的時代,人們對于數(shù)據(jù)集成的需求也變得越來越迫切,對相關領域系統(tǒng)的研究也是一直以來數(shù)據(jù)管理研究的熱點。為了解決以上問題,保持數(shù)據(jù)的完整性和一致性,實現(xiàn)系統(tǒng)間的透明訪問,本文提供了一個解決異構數(shù)據(jù)集成的總體解決方案,即將數(shù)據(jù)庫轉換為XML文件,然后對XML文件統(tǒng)一進行操作。
為了各種數(shù)據(jù)源可以進行透明性地互訪,實現(xiàn)資源和數(shù)據(jù)的共享,更高效地利用數(shù)據(jù)資源,數(shù)據(jù)集成技術應運而生。數(shù)據(jù)集成可以描述為用戶為了集中實現(xiàn)對各種異構數(shù)據(jù)的統(tǒng)一表示、存儲和管理等功能,需要將數(shù)據(jù)資源之間的異構性屏蔽,并應用異構數(shù)據(jù)集成系統(tǒng)對各種異構數(shù)據(jù)進行統(tǒng)一的操作和管理。數(shù)據(jù)集成系統(tǒng)根據(jù)企事業(yè)單位數(shù)據(jù)應用上的特點和重點,選擇不同的構造集成系統(tǒng)的方法對數(shù)據(jù)資源進行應用。通過對不同數(shù)據(jù)有機地集中,使得集成后的異構數(shù)據(jù)具有統(tǒng)一性和無差別性。在訪問異構數(shù)據(jù)源的過程中,數(shù)據(jù)集成平臺提供了統(tǒng)一接口的功能,使得用戶可以在一個平臺上像操作一個數(shù)據(jù)源那樣集中操作所有的數(shù)據(jù)源。可以高效快捷地操作和利用資源。數(shù)據(jù)集成平臺如圖1:
圖1 數(shù)據(jù)集成平臺
XML是 W3C(World Wide Web Consortium,互聯(lián)網(wǎng)聯(lián)合組織)的一個開放標準[1],它是一組規(guī)則與準則的集合,以一種開放的、自我描述方式定義數(shù)據(jù)結構。XML采用的是文本的無格式化來存儲和描述結構化數(shù)據(jù),它所關心的主要是數(shù)據(jù),因此它具有良好的開放性、可擴展性、自描述性、高度結構化、便于網(wǎng)絡傳輸?shù)忍匦?。我們可通過把其他的數(shù)據(jù)結構和數(shù)據(jù)類型轉換成XML文檔,在互聯(lián)網(wǎng)和企業(yè)內部的不同應用程序間方便地提交數(shù)據(jù)、處理數(shù)據(jù),完成數(shù)據(jù)的交換[2]。XQuery的產生源于 Quitl,在借鑒了眾多其他查詢語言的優(yōu)點上,結合了多種表達式,來適應數(shù)據(jù)和文檔的層次化結構,為重構數(shù)據(jù)提供統(tǒng)一的模板。并將Xpath2.0納入其中作為子集。因而可以更好的滿足數(shù)據(jù)庫和文檔的兩方面要求[3]。XQuery對于XML而言就像SQL對數(shù)據(jù)庫一樣。正如SQL對于關系型數(shù)據(jù)庫一樣,XQuery將成為對所有類型的XML數(shù)據(jù)通用的、獨立于系統(tǒng)的標準。
本系統(tǒng)采用Eclipse開發(fā)平臺進行開發(fā)。運用Java語言實現(xiàn)至少三種數(shù)據(jù)庫向XML進行轉換。并對轉換之后的XML文件進行操作,實現(xiàn)對XML文件進行增刪改查的功能。
要實現(xiàn)數(shù)據(jù)集成,要求本系統(tǒng)可以對數(shù)據(jù)進行統(tǒng)一的處理,屏蔽數(shù)據(jù)的異構性,保證數(shù)據(jù)的完整性并約束其完整性[4],以及解決數(shù)據(jù)信息之間的語義沖突等等這些相互聯(lián)系、相互制約的問題[5]。
本系統(tǒng)主要由數(shù)據(jù)庫向XML轉換模塊、XQuery語言對XML文件進行操作模塊和可視化操作XML文件模塊組成。本系統(tǒng)最主要的功能包含兩個部分:其中一個是將數(shù)據(jù)庫轉換為XML文件模塊,另一個是對XML文件進行操作模塊。系統(tǒng)模塊設計如圖2:
圖2 系統(tǒng)設計的模塊圖
為了實現(xiàn)數(shù)據(jù)庫集成,需要實現(xiàn)將各種類型的數(shù)據(jù)庫轉換為XML文件,然后對XML文件進行統(tǒng)一操作,這樣就需要實現(xiàn)將數(shù)據(jù)庫向XML轉換。
2.2.1 數(shù)據(jù)庫向XML的轉換
數(shù)據(jù)庫向XML轉換的方法是:首先查詢出數(shù)據(jù)庫中所有的數(shù)據(jù),然后確定哪些是XML文件的節(jié)點,哪些是XML文件的屬性。最后采用crimson.jar這個jar包里提供的方法對XML文件進行寫入操作,完成數(shù)據(jù)庫向XML轉換的功能。
此模塊的部分實現(xiàn)代碼如下:
3.2.2 對XML文件操作模塊詳細設計
本系統(tǒng)對XML的操作采用的是目前比較流行的語言XQuery語言對XML文件進行操作。
此模塊的部分實現(xiàn)代碼如下:
同時,為了解決大部分用戶對XQuery的不熟悉問題,本系統(tǒng)還提供了可視化地圖形界面操作的功能。使得本系統(tǒng)的功能更加強大,解決了大部分用戶所面臨的問題。
此模塊的部分實現(xiàn)代碼如下:
此系統(tǒng)界面主要由標題欄、菜單欄、工具欄、工作區(qū)、控制欄、控制臺、狀態(tài)欄組成。其其系統(tǒng)界面如圖3所示。
圖3 系統(tǒng)界面
3.2.1 數(shù)據(jù)庫向XML轉換模塊實現(xiàn)
此模塊完成的功能是將不同數(shù)據(jù)轉換為XML格式的文檔。實現(xiàn)方法是:根據(jù)用戶選擇的數(shù)據(jù)庫類型,用戶輸入的數(shù)據(jù)庫名和表名對數(shù)據(jù)庫進行查詢操作,查詢數(shù)據(jù)庫中所有字段的數(shù)據(jù)。然后根據(jù)用戶輸入的各個字段的名稱使用DOM解析的方式將數(shù)據(jù)庫表轉換為對應的XML文件。根據(jù)這些需求設計了此模塊的界面如圖4所示。
圖4 數(shù)據(jù)庫轉換為XML文件界面
3.2.2 XQuery查詢語言操作XML文件模塊實現(xiàn)
此模塊主要實現(xiàn)的功能是在工作區(qū)輸入要執(zhí)行的XQuery語句,點擊執(zhí)行按鈕,執(zhí)行當前輸入的語句。例如,輸入的語句和執(zhí)行結果界面如圖5所示:
圖5 XQuery查詢語言操作XML文件界面
4.2.3 可視化操作XML文件模塊實現(xiàn)
鑒于大多數(shù)人沒有學習過XQuery語言,為了解決這一問題,特為此系統(tǒng)加入了可視化操作模塊。這樣用戶就可以可視化地操作XML文件了。此模塊主要實現(xiàn)了新建數(shù)據(jù)庫、新建XML、設計XML、編輯XML、返回XML等這些可視化操作的功能。實現(xiàn)界面如圖6所示。
本文通過對可擴展的標記語言XML的研究,并結合相關技術開發(fā)了一個簡單的基于XML異構數(shù)據(jù)集成系統(tǒng)??紤]到了大部分用戶對XQuery語言的不熟悉問題,對這一問題特別的進行了部分可視化開發(fā)。本系統(tǒng)重點解決了將各種類型的數(shù)據(jù)庫轉換為XML文件,然后對XML文件進行統(tǒng)一操作,基本上實現(xiàn)了本課題需要完成的功能。而在未來的數(shù)據(jù)庫領域,集成將會是各個數(shù)據(jù)庫系統(tǒng)需要實現(xiàn)的目標。因此本系統(tǒng)在安全性、數(shù)據(jù)壓縮、備份壓縮等多個方面還需要進一步地完善和改進。
圖6 可視化操作XML文件界面
[1]黃水源,羅勝,段隆振等.利用XML技術實現(xiàn)異構數(shù)據(jù)庫之間的數(shù)據(jù)轉換[J].南昌大學學報,2005,2(7):68.
[2]方翔.XML文檔到關系數(shù)據(jù)庫的轉換[J].西安交通大學報,2001,8(4):123 -243.
[3]陳錦輝,王景皓.XML與JAVA程序設計[M].北京:中國鐵道出版社,2002:109.
[4]孟小峰.XML數(shù)據(jù)管理概念與技術[M].北京:清華大學出版社,2009:295 -297.
[5]Mark Birbeck.XML高級編程[M].北京:機械工業(yè)出版社,2002.109 -112.