曹 摯 姜淑娟
摘要:因特網(wǎng)的不斷發(fā)展使得XML成為Web上數(shù)據(jù)交換和表示的標(biāo)準(zhǔn)格式,但是大量的商業(yè)數(shù)據(jù)仍然存儲在關(guān)系數(shù)據(jù)庫中。因此必須將關(guān)系數(shù)據(jù)發(fā)布成XML文檔進行傳輸。提出了一種基于分層框架結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫向XML的映射方法,并在分層結(jié)構(gòu)中定義了一種XML模式圖作為XML的概念模型。得到的XML文檔能夠很好地反映關(guān)系數(shù)據(jù)庫的語義和各種約束并且沒有引入數(shù)據(jù)冗余。初步實驗結(jié)果表明方法具有較高的效率和較好的準(zhǔn)確性。
關(guān)鍵詞:XML;分層框架;發(fā)布;關(guān)系數(shù)據(jù);語義;約束
中圖法分類號:TP312文獻標(biāo)識碼:A文章編號:1009-3044(2008)01-10ppp-0c
A layered Framework-based XML Publishing Method
CAO Zhi, JIANG Shu-Juan
(Department of Computer Science and Technology, China University of Mining & Technology, Jiangsu Xuzhou 221008, China)
Abstract: With the development of Internet, XML is emerging as a standard for exchanging and representing business data on the World Wide Web. However, most business data will continue to be stored in relational database systems. So some mechanism is needed to publish relational data as XML documents. A layered framework-based XML publishing method is presented in this paper, and a XML concept model is defined in the layered framework. The result of XML documents can reflect semantic and constraints in relational source while introduce no data redundancy. Experiment result can prove the method effective and precise.
Key words: XML; publish; relational data; semantic; constraints
可擴展標(biāo)記語言XML從出現(xiàn)到現(xiàn)在,已經(jīng)逐漸成為Web上表示和交換數(shù)據(jù)的標(biāo)準(zhǔn)格式。XML沒有標(biāo)簽集,每個應(yīng)用可以選擇自己需要的標(biāo)簽。這種特征是XML用于數(shù)據(jù)表示和交換的關(guān)鍵所在。
但是,由于關(guān)系數(shù)據(jù)庫技術(shù)的成熟,并且有很好的穩(wěn)定性和處理能力,大量企業(yè)數(shù)據(jù)仍然存放在關(guān)系數(shù)據(jù)庫中,所以為了在Web上進行數(shù)據(jù)交換和集成,必須把關(guān)系數(shù)據(jù)庫中的關(guān)系數(shù)據(jù)發(fā)布成能在Web上傳輸?shù)腦ML數(shù)據(jù),這在電子數(shù)據(jù)交換領(lǐng)域中的需求十分迫切,比如醫(yī)保系統(tǒng),電信系統(tǒng)等等。一般來說,該類轉(zhuǎn)換稱為XML的發(fā)布[1](XML Publishing)。
本文的貢獻在以下幾個方面:①提出了一種基于分層結(jié)構(gòu)的關(guān)系數(shù)據(jù)庫向XML轉(zhuǎn)化的框架。②在分層框架結(jié)構(gòu)中定義了一種XML模式圖作為XML的概念模型。這種模型與EER模型相對應(yīng)。體現(xiàn)了關(guān)系數(shù)據(jù)中的各種語義和約束。③分析了分層框架結(jié)構(gòu)中的幾個轉(zhuǎn)化步驟并詳細(xì)闡述了其中重要的幾個方面。
1 相關(guān)工作
關(guān)系數(shù)據(jù)的XML發(fā)布是近年來XML數(shù)據(jù)管理領(lǐng)域中研究的熱點,學(xué)術(shù)界和工業(yè)界的研究者們從不同的側(cè)重點出發(fā)取得了許多成果,提出了一些發(fā)布算法并設(shè)計了一些轉(zhuǎn)換工具。目前與之相關(guān)的研究工作已經(jīng)取得了一定的進展。
兩個著名的XML發(fā)布系統(tǒng)SilkRoute[2]和XPERANTO[3]分別基于視圖定義語言RXL和擴展SQL實現(xiàn)關(guān)系數(shù)據(jù)的XML發(fā)布。SilkRoute中間件系統(tǒng)通過RXL這種描述性的查詢語言指定關(guān)系到XML視圖的轉(zhuǎn)換。XPERANTO系統(tǒng)中描述關(guān)系數(shù)據(jù)到XML文檔的轉(zhuǎn)換語言是基于SQL的,加入一些標(biāo)量函數(shù)和聚集函數(shù)擴展SQL,使其具備XML構(gòu)造能力。這兩種系統(tǒng)的缺點是沒有考慮XML文檔的類型和約束問題,也僅支持單數(shù)據(jù)源查詢。
比較著名的算法是Lee等人提出的三個算法即FT和NeT[4]以及CoT[5]。FT算法將平坦的關(guān)系模型轉(zhuǎn)化成平坦的XML模型,丟失了所有的結(jié)構(gòu)和各種約束。而NeT算法對FT進行了改進,通過不斷地將嵌套操作符應(yīng)用到每張表來從一個平坦的關(guān)系模型中獲得一個嵌套結(jié)構(gòu)使得XML模式的結(jié)果成為層次性的結(jié)構(gòu)。而CoT算法做了進一步的改進,不僅僅考慮了關(guān)系模式的結(jié)構(gòu),同時也考慮了轉(zhuǎn)換過程中例如包含依賴等的語義約束。
2 分層框架結(jié)構(gòu)
我們將數(shù)據(jù)庫分成三層,分別為關(guān)系數(shù)據(jù)層,關(guān)系模式層和概念模型層。關(guān)系數(shù)據(jù)層抽象為通過主鍵和外鍵連接的一些關(guān)系表,而關(guān)系模式層即為關(guān)系模式,概念模型層為EER模型(擴展的實體-聯(lián)系模型)。我們同樣把XML也相應(yīng)地分成三層,從下到上依次為XML文檔層,XML模式層,XML概念模型層。XML的三層與數(shù)據(jù)庫的三層一一對應(yīng)。其中XML模式層我們選擇了DTD。而我們提出了一種XML模式圖作為XML的概念模型。整個框架結(jié)構(gòu)如圖1所示:
圖1 分層框架結(jié)構(gòu)
3 關(guān)系數(shù)據(jù)庫向XML文檔的映射過程
從圖1中可以看出,整個轉(zhuǎn)換過程可以細(xì)分為以下幾步:第一步將關(guān)系模式轉(zhuǎn)化成EER模型,這個過程稱為反向工程;反向工程的過程中保存了關(guān)系數(shù)據(jù)源的所有語義。第二步是將EER模型轉(zhuǎn)化成XML的概念模型。第三步將XML的概念模型轉(zhuǎn)化成XML的模式,最后一步是根據(jù)數(shù)據(jù)庫和XML模式來獲得最終的XML文檔。
3.1 關(guān)系模式向EER模型的轉(zhuǎn)換
這一轉(zhuǎn)換過程被是由邏輯模型到概念模型的轉(zhuǎn)換,與正常數(shù)據(jù)庫的設(shè)計順序相反,因而被稱為反向工程。反向工程描述怎樣從關(guān)系數(shù)據(jù)庫中根據(jù)各種約束條件得到EER模型。其基本思想是基于主鍵及外鍵約束來建立初始關(guān)聯(lián),包括所有的一元,二元及多元關(guān)系。然后確定基數(shù)約束,進而優(yōu)化消除對稱,傳遞等關(guān)系,并分辨出那些是is-a關(guān)系,那些是part-of關(guān)系及關(guān)聯(lián)關(guān)系,并通過集成將表達相同意思的同類實體合并,由這個過程可以抽取出關(guān)系數(shù)據(jù)庫的語義信息。文獻[6]描述了這個轉(zhuǎn)換過程。
3.2 EER模型向XML Schema的轉(zhuǎn)換
這一步又被稱為正向工程,是語義保存的過程。整個映射過程分成兩個部分,分別是結(jié)構(gòu)映射和語義映射,下面分別加以闡述。
3.2.1 結(jié)構(gòu)映射
結(jié)構(gòu)映射的過程很簡單。第一步是“根”關(guān)系轉(zhuǎn)化成根元素。這里就是要定義EER模型中的根關(guān)系作為DTD中的根元素。然后將根元素和相關(guān)信息加入到DTD中。第二步是將EER模型中的實體轉(zhuǎn)化成DTD中的元素。第三步是將外鍵轉(zhuǎn)化成元素/子元素的聯(lián)系,在DTD中用ID和IDREF來表示。
3.2.2 語義映射
我們將EER模型分成以下幾種情況:分別是ISA聯(lián)系的轉(zhuǎn)化,分類的轉(zhuǎn)化,聚集的轉(zhuǎn)化,不同基數(shù)的轉(zhuǎn)化,以及多元聯(lián)系的轉(zhuǎn)化和弱實體的轉(zhuǎn)化。其中基數(shù)又分成一對一、一對多和多對多的情況。這些都是語義的轉(zhuǎn)化。
(1)ISA的映射:
ISA的聯(lián)系是一種繼承的關(guān)系。ISA定義了一個子類實體和一個父類實體之間的聯(lián)系。我們將每個子類實體作為一個孩子元素指向其父元素。如圖2所示。
圖2 ISA聯(lián)系的映射
(2)聚集的映射:
聚集是EER模型中所特有的一種語義,是一種高度的抽象。通過這種抽象,聯(lián)系被當(dāng)作實體來看待。在圖3中,實體B、實體C和聯(lián)系R1形成了一個聚集實體同時與另外一個實體A相聯(lián)系。它們可以被映射成DTD和XML文檔如下所示。
圖3 聚集的映射
(3)基數(shù)的映射:
基數(shù)是指一個實體通過一個聯(lián)系集能同時與另一實體相聯(lián)系的實體數(shù)目。在EER中,基數(shù)可以分成三種,分別是一對一、一對多和多對多。我們對這三種不同的類型進行分別討論。其中圖4表示基數(shù)為一對一的映射,圖5表示多對多的映射,而對于一對多的情況只需要在子元素后面加上星號即可。
圖4 基數(shù)為一比一的映射
圖5 基數(shù)為多對多的映射
(4)多元聯(lián)系的映射:
多個表相互關(guān)聯(lián)就形成了多元聯(lián)系。這里主要是指元數(shù)大于3的情況。在DTD中,我們將多元聯(lián)系轉(zhuǎn)化成元素的組,映射過程如圖6所示:
圖6 N元聯(lián)系的映射
(5)弱實體的映射:
弱實體依賴于強實體。在DTD中,我們將強實體轉(zhuǎn)化成一個帶有ID屬性的元素而將弱實體轉(zhuǎn)化成另一個帶有IDREF屬性的元素。如圖7所表示。
圖7 弱實體的映射
3.3 XML文檔的生成
根據(jù)原有的關(guān)系數(shù)據(jù)庫和生成的XML模式,可以得到對應(yīng)的XML文檔,限于篇幅,僅僅給出算法的描述。
輸入:XML模式和關(guān)系數(shù)據(jù)庫
輸出:對應(yīng)XML文檔
begin
while not end of element do
read an element from the translated target DTD;
read the tuple of a corresponding relation of the element from the source relational database;
load this tuple into a target XML document;
read the child elements of the element according to the DTD;
while not at end of the corresponding child relation in the source relational database document
read the tuple from the child relation such that the childs corresponding to the processed parent relations tuple;
load the tuple to the target XML document;
end loop
end loop
end
最后,我們對關(guān)系數(shù)據(jù)庫和XML文檔進行相同條件的查詢,得到的結(jié)果從內(nèi)容上說是完全相同的,這就證明了我們轉(zhuǎn)化算法的精確性。
4 結(jié)論與進一步工作
我們提出的分層框架結(jié)構(gòu)能夠很好地解決XML發(fā)布過程中的語義丟失的問題,并且保存了原有關(guān)系數(shù)據(jù)庫中的各種約束。由于XML的嵌套特性,容易引起冗余,我們在轉(zhuǎn)化過程中保證了沒有引入冗余現(xiàn)象。進一步要完成的工作是利用這個分層結(jié)構(gòu)進行反向轉(zhuǎn)化,即由XML文檔向關(guān)系數(shù)據(jù)庫進行轉(zhuǎn)化,稱為XML的存儲。另外這種反向轉(zhuǎn)化同時也能夠很好地驗證XML發(fā)布的結(jié)果是否準(zhǔn)確。
參考文獻:
[1] J.Shanmugasundarm,E.Shekita,et al.Efficiently publishing relational data as XML document[A].Proceedings of the 26th VLDB Conference[C],Egypt,2000:65-76.
[2] Mary Fernandez,Yana Kadiyska,Dan Suciu,et al.SilkRoute: A framework for publishing relational data in XML[J].ACM Trans on Database Systems(TODS),2002,27(4):438-493.
[3] Michael Carey,Daniela Florescu,Xachary lves,et al.XPERANTO: Publishing object-relational data as XML[A].In: Proc of Workshop on the Web and Databases 2000[C].New York:ACM Press,2000:105-110.
[4] D.Lee,M.Mani,F.Chiu and W.W.Chu.Nesting based relational-to-XML schema translation[A].In Int'l Workshop on the Web and Databases (WebDB)[C],Santa Barbara,CA,USA,2001,3:61-66.
[5] D Lee,M.Mani,F.Chiu and W.W.Chu.Net&CoT: Translating relational schemas to XML schemas using semantic constraints[A].In 11th ACM Intl Conf. on Information and Knowledge Management (CIKM)[C],McLean,VA,USA,2002,12:282-291.
[6] Reda Alhajj,Extracting the extended entity-relationship model from a legacy relational database[J].Information Systems,2003(28):597-618.
收稿日期:
作者簡介:曹摯(1983-),男,江蘇徐州人,碩士研究生,研究方向為計算機網(wǎng)絡(luò)和XML數(shù)據(jù)庫等;姜淑娟(1966-),女,山東萊陽人,博士,教授,研究方向為程序設(shè)計語言。