?

一種基于分層框架的XML發布方法

2008-07-14 10:05姜淑娟
電腦知識與技術 2008年18期
關鍵詞:約束語義

曹 摯 姜淑娟

摘要:因特網的不斷發展使得XML成為Web上數據交換和表示的標準格式,但是大量的商業數據仍然存儲在關系數據庫中。因此必須將關系數據發布成XML文檔進行傳輸。提出了一種基于分層框架結構的關系數據庫向XML的映射方法,并在分層結構中定義了一種XML模式圖作為XML的概念模型。得到的XML文檔能夠很好地反映關系數據庫的語義和各種約束并且沒有引入數據冗余。初步實驗結果表明方法具有較高的效率和較好的準確性。

關鍵詞:XML;分層框架;發布;關系數據;語義;約束

中圖法分類號:TP312文獻標識碼: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

可擴展標記語言XML從出現到現在,已經逐漸成為Web上表示和交換數據的標準格式。XML沒有標簽集,每個應用可以選擇自己需要的標簽。這種特征是XML用于數據表示和交換的關鍵所在。

但是,由于關系數據庫技術的成熟,并且有很好的穩定性和處理能力,大量企業數據仍然存放在關系數據庫中,所以為了在Web上進行數據交換和集成,必須把關系數據庫中的關系數據發布成能在Web上傳輸的XML數據,這在電子數據交換領域中的需求十分迫切,比如醫保系統,電信系統等等。一般來說,該類轉換稱為XML的發布[1](XML Publishing)。

本文的貢獻在以下幾個方面:①提出了一種基于分層結構的關系數據庫向XML轉化的框架。②在分層框架結構中定義了一種XML模式圖作為XML的概念模型。這種模型與EER模型相對應。體現了關系數據中的各種語義和約束。③分析了分層框架結構中的幾個轉化步驟并詳細闡述了其中重要的幾個方面。

1 相關工作

關系數據的XML發布是近年來XML數據管理領域中研究的熱點,學術界和工業界的研究者們從不同的側重點出發取得了許多成果,提出了一些發布算法并設計了一些轉換工具。目前與之相關的研究工作已經取得了一定的進展。

兩個著名的XML發布系統SilkRoute[2]和XPERANTO[3]分別基于視圖定義語言RXL和擴展SQL實現關系數據的XML發布。SilkRoute中間件系統通過RXL這種描述性的查詢語言指定關系到XML視圖的轉換。XPERANTO系統中描述關系數據到XML文檔的轉換語言是基于SQL的,加入一些標量函數和聚集函數擴展SQL,使其具備XML構造能力。這兩種系統的缺點是沒有考慮XML文檔的類型和約束問題,也僅支持單數據源查詢。

比較著名的算法是Lee等人提出的三個算法即FT和NeT[4]以及CoT[5]。FT算法將平坦的關系模型轉化成平坦的XML模型,丟失了所有的結構和各種約束。而NeT算法對FT進行了改進,通過不斷地將嵌套操作符應用到每張表來從一個平坦的關系模型中獲得一個嵌套結構使得XML模式的結果成為層次性的結構。而CoT算法做了進一步的改進,不僅僅考慮了關系模式的結構,同時也考慮了轉換過程中例如包含依賴等的語義約束。

2 分層框架結構

我們將數據庫分成三層,分別為關系數據層,關系模式層和概念模型層。關系數據層抽象為通過主鍵和外鍵連接的一些關系表,而關系模式層即為關系模式,概念模型層為EER模型(擴展的實體-聯系模型)。我們同樣把XML也相應地分成三層,從下到上依次為XML文檔層,XML模式層,XML概念模型層。XML的三層與數據庫的三層一一對應。其中XML模式層我們選擇了DTD。而我們提出了一種XML模式圖作為XML的概念模型。整個框架結構如圖1所示:

圖1 分層框架結構

3 關系數據庫向XML文檔的映射過程

從圖1中可以看出,整個轉換過程可以細分為以下幾步:第一步將關系模式轉化成EER模型,這個過程稱為反向工程;反向工程的過程中保存了關系數據源的所有語義。第二步是將EER模型轉化成XML的概念模型。第三步將XML的概念模型轉化成XML的模式,最后一步是根據數據庫和XML模式來獲得最終的XML文檔。

3.1 關系模式向EER模型的轉換

這一轉換過程被是由邏輯模型到概念模型的轉換,與正常數據庫的設計順序相反,因而被稱為反向工程。反向工程描述怎樣從關系數據庫中根據各種約束條件得到EER模型。其基本思想是基于主鍵及外鍵約束來建立初始關聯,包括所有的一元,二元及多元關系。然后確定基數約束,進而優化消除對稱,傳遞等關系,并分辨出那些是is-a關系,那些是part-of關系及關聯關系,并通過集成將表達相同意思的同類實體合并,由這個過程可以抽取出關系數據庫的語義信息。文獻[6]描述了這個轉換過程。

3.2 EER模型向XML Schema的轉換

這一步又被稱為正向工程,是語義保存的過程。整個映射過程分成兩個部分,分別是結構映射和語義映射,下面分別加以闡述。

3.2.1 結構映射

結構映射的過程很簡單。第一步是“根”關系轉化成根元素。這里就是要定義EER模型中的根關系作為DTD中的根元素。然后將根元素和相關信息加入到DTD中。第二步是將EER模型中的實體轉化成DTD中的元素。第三步是將外鍵轉化成元素/子元素的聯系,在DTD中用ID和IDREF來表示。

3.2.2 語義映射

我們將EER模型分成以下幾種情況:分別是ISA聯系的轉化,分類的轉化,聚集的轉化,不同基數的轉化,以及多元聯系的轉化和弱實體的轉化。其中基數又分成一對一、一對多和多對多的情況。這些都是語義的轉化。

(1)ISA的映射:

ISA的聯系是一種繼承的關系。ISA定義了一個子類實體和一個父類實體之間的聯系。我們將每個子類實體作為一個孩子元素指向其父元素。如圖2所示。

圖2 ISA聯系的映射

(2)聚集的映射:

聚集是EER模型中所特有的一種語義,是一種高度的抽象。通過這種抽象,聯系被當作實體來看待。在圖3中,實體B、實體C和聯系R1形成了一個聚集實體同時與另外一個實體A相聯系。它們可以被映射成DTD和XML文檔如下所示。

圖3 聚集的映射

(3)基數的映射:

基數是指一個實體通過一個聯系集能同時與另一實體相聯系的實體數目。在EER中,基數可以分成三種,分別是一對一、一對多和多對多。我們對這三種不同的類型進行分別討論。其中圖4表示基數為一對一的映射,圖5表示多對多的映射,而對于一對多的情況只需要在子元素后面加上星號即可。

圖4 基數為一比一的映射

圖5 基數為多對多的映射

(4)多元聯系的映射:

多個表相互關聯就形成了多元聯系。這里主要是指元數大于3的情況。在DTD中,我們將多元聯系轉化成元素的組,映射過程如圖6所示:

圖6 N元聯系的映射

(5)弱實體的映射:

弱實體依賴于強實體。在DTD中,我們將強實體轉化成一個帶有ID屬性的元素而將弱實體轉化成另一個帶有IDREF屬性的元素。如圖7所表示。

圖7 弱實體的映射

3.3 XML文檔的生成

根據原有的關系數據庫和生成的XML模式,可以得到對應的XML文檔,限于篇幅,僅僅給出算法的描述。

輸入:XML模式和關系數據庫

輸出:對應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

最后,我們對關系數據庫和XML文檔進行相同條件的查詢,得到的結果從內容上說是完全相同的,這就證明了我們轉化算法的精確性。

4 結論與進一步工作

我們提出的分層框架結構能夠很好地解決XML發布過程中的語義丟失的問題,并且保存了原有關系數據庫中的各種約束。由于XML的嵌套特性,容易引起冗余,我們在轉化過程中保證了沒有引入冗余現象。進一步要完成的工作是利用這個分層結構進行反向轉化,即由XML文檔向關系數據庫進行轉化,稱為XML的存儲。另外這種反向轉化同時也能夠很好地驗證XML發布的結果是否準確。

參考文獻:

[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-),男,江蘇徐州人,碩士研究生,研究方向為計算機網絡和XML數據庫等;姜淑娟(1966-),女,山東萊陽人,博士,教授,研究方向為程序設計語言。

猜你喜歡
約束語義
“碳中和”約束下的路徑選擇
約束離散KP方程族的完全Virasoro對稱
語言與語義
“上”與“下”語義的不對稱性及其認知闡釋
認知范疇模糊與語義模糊
不等式約束下AXA*=B的Hermite最小二乘解
語義分析與漢俄副名組合
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合