王雅軒,頊 聰
WANG Ya-xuan,XU Cong
(大連外國語學院 軟件學院,大連 116044)
隨著計算機的發(fā)展,許多企業(yè)為了滿足自身的需求,設計自己的信息系統(tǒng),而這些信息是獨立設計的,并且操作系統(tǒng)和網(wǎng)絡結構的不同造成了各種不同類型的信息資源。我們把這些不同的信息資源稱為異構信息[1]。由于異構信息的存在,使企業(yè)之間難以實現(xiàn)數(shù)據(jù)的共享。為了實現(xiàn)資源的有效利用以及系統(tǒng)間信息的高度共享,集成異構數(shù)據(jù)庫就成為迫切的需要。目前數(shù)據(jù)集成典型的方法主要有模式集成方法和數(shù)據(jù)復制方法[2]。
異構數(shù)據(jù)集成必須把各種異構數(shù)據(jù)最終都轉化為一種統(tǒng)一的全局數(shù)據(jù)模式,以供用戶訪問。XML是W3G設計的一種可擴展標記語言,利用XML人們對于不同數(shù)據(jù)源,按照一定規(guī)則轉換成統(tǒng)一的數(shù)據(jù)模式,可以對其進行統(tǒng)一訪問[3]。目前XML與數(shù)據(jù)庫之間的映射主要有兩種方法:模板驅動和模型驅動。在基于模板驅動的映射中,并不預先定義文檔結構和數(shù)據(jù)庫結構之間的映射關系,而是在數(shù)據(jù)轉換軟件的處理模板中嵌入說明命令,讓數(shù)據(jù)傳輸中間件來執(zhí)行該模板。以模型驅動的映射模式的原理就是利用XML文檔中的數(shù)據(jù)模型的結構顯性或隱性地將其映射成數(shù)據(jù)庫的結構,反之亦然。具體實現(xiàn)時,把一個XML 文檔表示為由數(shù)據(jù)對象構成的樹,每個元素類型和對象模式中的對象相對應,然后使用傳統(tǒng)的對象-關系映射技術將這個模型映射到關系數(shù)據(jù)庫。
文中提出了一種基于XML 技術的異構數(shù)據(jù)庫數(shù)據(jù)集成的構架,屬于模式集成方法。通過在用戶應用程序和各種數(shù)據(jù)源之間建立一個中間層,來對用戶層屏蔽數(shù)據(jù)源的差異。從而向用戶層提供一致的數(shù)據(jù)視圖,完成從實際數(shù)據(jù)源到用戶數(shù)據(jù)視圖的轉換,并在中間充當數(shù)據(jù)總線[4]。
本系統(tǒng)的集成框架圖如圖1 所示,系統(tǒng)分為三層,從下至上各層的基本服務功能如下:
圖1 異構數(shù)據(jù)庫數(shù)據(jù)集成的構架圖
1)數(shù)據(jù)服務器層:系統(tǒng)數(shù)據(jù)的提供者,它包括各種類型的數(shù)據(jù)庫。每個數(shù)據(jù)源與企業(yè)內(nèi)部各部門的MIS系統(tǒng)相連,構成自己的本地應用。
2)應用服務器層:以XML 格式的文檔作為異構數(shù)據(jù)源的集成,并對用戶層的訪問提供支持;提供必要的數(shù)據(jù)轉換功能進行數(shù)據(jù)與XML 格式的相互轉換,將數(shù)據(jù)存儲到XML 數(shù)據(jù)空間中,并維持XML數(shù)據(jù)空間與各異構數(shù)據(jù)源之間的映射關系。
3)用戶層:用戶層可以是Web 瀏覽器或專用的客戶端,提供對集成數(shù)據(jù)的應用服務器層進行數(shù)據(jù)訪問。
從實現(xiàn)角度來看,由于用戶層和數(shù)據(jù)服務器層相對比較簡單,在此主要對應用服務器層的關鍵技術進行討論。應用服務器層的詳細框架圖如圖2所示。
圖2 XML中間件層框架圖
3.1 公共模型的建立
這部分主要包括局部數(shù)據(jù)庫關系模式的提取及關系數(shù)據(jù)模式到XML Schema 的轉換。關系模式提取方法的目的是構建共享數(shù)據(jù)庫的關系模式(包括表、字段、屬性、主鍵和外鍵),保證數(shù)據(jù)提取的完整性,為進一步的模式轉化提供基礎。其輸入是在數(shù)據(jù)庫注冊流程結束時,中間件層所接收到的局部數(shù)據(jù)庫連接信息(數(shù)據(jù)庫名稱、數(shù)據(jù)庫用戶名、密碼以及主機地址)和數(shù)據(jù)庫類型。輸出是數(shù)據(jù)庫關系模式的列表表示集,結果可采用一個一維數(shù)組和多個二維數(shù)組分別存儲注冊異構數(shù)據(jù)庫中的關系表表名和每個表的屬性字段名稱、字段類型、可否空、主鍵和外鍵屬性。
由于XML DTD 采用了非XML 文檔語法規(guī)則、不支持數(shù)據(jù)類型等原因,在關系數(shù)據(jù)模式到XML 模式轉換中使用DTD 無法對關系表之間的約束進行轉換[5,6]。而XML Schema 的語法結構比DTD 復雜,比DTD更具有表現(xiàn)力,更適應于各領域應用的使用[7,8],所以本文使用包含約束條件的數(shù)據(jù)庫關系模式到XML Schema 轉換算法來實現(xiàn)數(shù)據(jù)庫關系模式到XML 的轉換。
算法描述如下:
1)每一個異構數(shù)據(jù)源模式轉換為XML Schema 的轉換結果定義唯一的命名空間。
2)對每一個表R 和字段A1,…,An ,創(chuàng)建復雜類型元素和子元素Al ,…,An ,并設置各個子元素的數(shù)據(jù)類型。對于數(shù)據(jù)庫DataBase和表R1,…,Rm ,在XML Schema 中增加一個DataBase 元素,并插入一個復合類型元素,其子元素分別為R1,…,Rm ,各子元素相應的數(shù)據(jù)類型為每個表創(chuàng)建的復雜類型。
3)表中主鍵映射的屬性或元素定義為key 屬性,外鍵映射的屬性或元素定義為keyref 屬性。根據(jù)表中的主鍵外鍵關系,創(chuàng)建子元素,若一個表中的外鍵作為另一個表中的主鍵或主鍵的一部分,則同一字段為外鍵的表映射為父元素,而另一個表映射為子元素。
3.2 查詢處理器的查詢分配
查詢處理器的查詢分配是將用戶基于總體視圖的查詢分解為對各個數(shù)據(jù)源的子查詢,并發(fā)送到相應的數(shù)據(jù)源。查詢分配器在執(zhí)行檢索分配時,要參照公共模型的信息,將子查詢準確地發(fā)送至各個目標數(shù)據(jù)源。本系統(tǒng)采用查詢分配方式是GAV 方法,方法描述如下:
1)將接收的用戶檢索請求通過DOM解析器(Document Object Model)轉換成XML 格式文檔,得到轉換后的XML Schema 定義。
2)在XML Schema 的Query 元素復合數(shù)據(jù)類型定義中,設子元素Item 表示查詢的項目,F(xiàn)orm子元素表示查詢的目標表名,Where 子元素描述查詢條件,其中,Item 和Form 子元素可以有任意多項。
3)在查詢的分配過程中,通過遍歷公共模型,查詢分配器找出Form 元素值所在的異構數(shù)據(jù)源,同時找出Item 元素值中每一項對應的數(shù)據(jù)表,然后進行XML 子查詢文檔的構建。
XML的出現(xiàn),為異構數(shù)據(jù)集成技術帶來了希望,也使共享不同數(shù)據(jù)庫中的數(shù)據(jù)成為可能,為解決異構數(shù)據(jù)集成提供了機會。相信在以后,隨著XML體系結構的完善,可以更好地實現(xiàn)異構數(shù)據(jù)的集成、共享及利用,并大大提高信息系統(tǒng)的整體性能。
[1]Susame Busses Ralf-detlefKutsche,U if laser and her bertweberFederated information systems: concepts[R].Terminology andArchitectures.For schung sherichte DesFzchbereichs Informatik1999.
[2]陳躍國,王京春.數(shù)據(jù)集成綜述[J].計算機科學,2004,31(5):48-50.
[3]陶以政,唐定勇.基于Java 和XML技術的異構信息系統(tǒng)數(shù)據(jù)集成框架應用研究[J].計算機應用研究,2004(5):38-40.
[4]BOURRET C,BORNHOVD A,BUCHMANN A.Generic Load Extract Utility for Data Transfer Between XML Documents and Relational Databases [Z].W ECW IS 2000,Milpit as,California,2000,6.
[5]楊芳,陶世群.基于XML異構數(shù)據(jù)庫系統(tǒng)的集成設計[J].計算機工程與設計,2005,26(7):1907-1909.
[6]Chen Shyh–Kwei,LO Ming-Ling,WuKun-Lung.A practical approach to extracting DTD-conforming XML documents from heterogeneous data sources [J].Information Sciences,2006,176(7):820-844.
[7]Valentine Chelsea,Dykes Lucinda,Ed T.XML Schema數(shù)據(jù)庫編程指南[M].北京:電子工業(yè)出版社,2002.
[8]Madrias,Passi K,Bhowmicks.An XML Schema integration and query mechanism system [J].Data &Knowledge Engineering,2007,65(2):266-303.