洪欣,陳維斌,蹇崇軍
(1.華僑大學計算機科學與技術學院,福建 泉州 362021;2.華僑大學機電及自動化學院,福建 泉州 362021)
XML數據到關系數據的映射
洪欣1,陳維斌1,蹇崇軍2
(1.華僑大學計算機科學與技術學院,福建 泉州 362021;2.華僑大學機電及自動化學院,福建 泉州 362021)
為實現XML數據到關系數據的數據映射,提出一種模式抽取算法,通過XML2XDR模塊抽取XML模式,依據模式對XML數據分類.分析XML模式與關系模式的差異性,通過XMLdata2DB模塊建立XML數據到關系數據的映射規則,從而實現將XML數據映射到關系數據中.
關系數據;XML;映射規則;模式抽取
企業之間進行商務數據交換時,存在數據結構不同的問題,往往通過XML格式的數據進行數據交換,并將其導入企業原有的關系數據庫中[1].隨著大量XML文檔數據的出現,如何高效地存儲、管理和查詢這些XML數據,成為目前值得研究的重要課題.對XML數據庫系統的研究主要有兩個基本途徑一種是純XML數據庫系統,優點是充分考慮XML數據的特點,以一種自然的方式來處理XML數據,能較好地支持XML數據的存儲和查詢,但目前技術仍不成熟;另一種是在原關系數據庫系統或面向對象數據庫基礎之上擴充功能,實現XML數據的處理[2-5].本文提出一種XML模式抽取技術,抽取XML文檔的模式,將XML模式映射到關系模式中,從而實現企業間的電子商務數據交換[6].
在XML文檔中,模式不是必須的.對于帶模式的XML文檔,可以將XML模式直接映射為關系模式.對于不帶模式的XML文檔,如果直接映射為關系,即使XML文檔來自于同一模式,也可能映射為不同結果.如以下兩個XML文檔片斷A和B.
(1)XML文檔片斷A.


文檔片斷A直接映射生成的關系表如下:

(2)XML文檔片斷B.

文檔片斷B映射生成的關系表如下:

以上示例(1),(2)中可見,文檔片斷直接映射生成的關系表存在著差異.即采用不帶模式的映射,可能會生成多個具有重復字段卻并不完全相同的表,不僅浪費了存儲空間,而且不利于數據的管理.
如果首先抽取XML文檔片斷A與XML文檔片斷B的模式,然后通過模式進行映射,由于兩個文檔片斷是同源的,那么生成的關系表就是相同的.由此可見,如果XML文檔帶有模式,最好的方式就是依據模式來映射關系模式,這樣映射生成的關系表具有通用性.如果XML文檔不帶模式定義,則先為其建立XDR模式,然后再調用帶有模式的XML文檔的映射算法進行映射.
2.1 映射框架
對不帶XDR模式的XML文檔的映射包含如下3個步驟.(1)生成XDR模式.(2)應用含有XDR模式的映射方法,對XML文檔進行映射生成關系表.(3)通過填入數據模塊,將XML文檔數據映射為關系數據庫數據.
圖1為系統流程.模塊結構包括XML文檔模式的抽取(XML2XDR模塊)、XDR模式到關系模式的映射(XDR2DB模塊)、XML數據到關系數據的映射(XMLdata2DBdata模塊).

圖1 系統工作流程Fig.1 Working flow of the system
2.2 XML文檔模式的抽取
XML文檔的模式有多種,選擇其中的XDR(XML Data Reduced Language,簡化XML數據定義語言)進行說明.基于XDR模式的XML文檔的抽取算法XML2XDR有如下7個步驟.
(1)讀取XML文檔.
(2)建立XDR文件頭.
(3)讀取XML數據建立根節點.
(4)生成元素聲明.
(5)如果元素有屬性,則讀取屬性值,建立屬性聲明.
(6)如果元素有子節點,則讀取子節點生成子元素,轉到(4),繼續分析子元素,建立子元素的元素及屬性聲明.
(7)是否還有同層節點,如果有則轉到(4),為該節點建立元素及屬性聲明;如果沒有則輸出XDR模式文件.
前例中的A文檔與B文檔經過模式抽取之后,生成的XDR模式如圖2所示.由于Star包含在minOccurs=“0”maxOccurs=“*”的group中,出現的次數是不定的,所以在XDR模式的實例中,Star元素可能出現零次、一次或多次,與文檔A及文檔B的情況相符.

圖2 XML文檔抽取的XDR模式Fig.2 XDR schema extracted from XML documents
2.3 XML模式到關系模式的映射算法
抽取XML模式之后,可以通過模式將XML的數據結構映射到關系數據的數據結構,建立模式映射算法XDR2DB.算法有如下5個步驟.
(1)讀取XDR模式.
(2)讀取ElementType元素聲明.
(3)消除遞歸,生成關系表XDR2DB-Recursion-Mapping.
(4)根據節點類型,進行相應的映射.如果子元素類型為屬性,調用元素屬性映射算法生成字段;如果子元素類型為元素,調用子元素映射算法生成字段及關系;如果子元素為group,調用模式組映射算法生成字段及關系.
(5)判斷是否到達XDR模式末尾,如果不是,則轉到(2);否則,生成表間聯系.
圖2所示生成的XDR模式,經過XDR2DB映射后,其結果如圖3所示.

圖3 XDR模式映射到關系數據庫的結果Fig.3 The results of XDR schema mapping to the relational database
2.4 XML數據到關系數據的映射算法
將XML模式映射為關系模式之后,需要將XML文檔的數據填充到所建立的關系表中.XMLdata2DB映射算法有如下5個步驟.
(1)讀取XML模式的根節點,建立表格.
(2)讀取模式的節點element,創建子表.
(3)如果element不含子節點,則轉到(5);如果element含有子節點,則分析子節點的類型.如果為屬性節點,則為該屬性節點對應的字段賦值;如果為元素節點,則判定是否還包含子節點,如果含有子節點則轉到(2);否則,為該子節點對應的字段賦值.
(4)判斷子節點是否還有未訪問的同層節點,如果是,則讀取下一節點轉到(3);否則,插入一條記錄到關系表中.
(5)查找是否還有未訪問的節點,如果有轉到(3);否則完成數據映射.
文檔A與文檔B的數據映射到關系數據庫中的結果,如圖4所示.

圖4 XML數據映射到關系數據的結果Fig.4 Results of XML data mapping to relational data
建立了一個數據交換框架,提出一種XML模式的抽取技術,并給出從XML數據到關系數據的映射算法.研究結果可為企業的商務數據交換提供一種可行的方法,方便企業之間在異構平臺上的實現數據交換.
[1]宋培義.XML與電子商務[J].北京廣播學院學報:自然科學版,2000,7(4):33-37.
[2]WANG Guo-ren,HAN Dong-hong,QI AO Ba i-you,et al.Extending XML schema with object-oriented features[J].Information Technology Journal,2005,4(1):44-54.
[3]WANG Guo-ren,LIU Meng-chi.Extending XML schema with nonmonotonic inheritance[C]//Proceedings of 1st International Workshop on XML Schema and Data Management.Chicago:Iustrotion,2003:402-407.
[4]LEE Dong-won,CHU W W.Comparative analysis of six XML schema language[J].ACM SIGMOD Record,2002 29(3):117-151.
[5]萬常選,林大海.基于關系數據庫分裂大型XML文檔到關系存儲[J].計算機應用研究,2004,21(8):166-167.
[6]洪欣.基于XDR模式的XML文檔與關系數據庫的映射技術研究[D].泉州:華僑大學,2004.
Mapping from XML-Data to Relational-Data
HONG Xin1,CHEN Wei-bin1,JIAN Chong-jun2
(1.College of Computer Science and Technology,HuaQiao University,Quanzhou 362021,China;2.College of Mechanical Engineering and Automation,Huaqiao University,Quanzhou 362021,China)
In order to realize the data mapping from the XML-data to the relational-data,this paper propose a model extraction algorithm,the XML2XDR model extract the XML model,according to the model the XML-data is classified.By analysing the differences between the XML schema and relational schema,the mapping rules from XML-data to relational data was established based on XML data2B,and the mapping from XML-data to relational-data was realized.
relational data;XML;mapping rules;pattern extraction
1000-5013(201101-0039-04
TP311.132.3;TP311.12
A
(責任編輯:錢筠 英文審校:吳逢鐵)
2010-04-23
洪欣(1977-),女,講師,主要從事數據庫領域的研究.E-mail:xinhong@hqu.edu.cn.
福建省青年人才項目資助(2007F3062);福建省泉州市科技計劃項目(2010G4);華僑大學高層次人才科研啟動項目(07BS403);華僑大學科研基金資助項目(08HZR18)