尹曉奇
關系數據庫中XML數據存儲的有效映射方案
尹曉奇
XML是萬維網數據傳輸的主要渠道,有關XML映射到關系型數據庫系統的研究已成為當今最重要的話題之一。映射方案對XML的處理效率具有一定影響,表現在以下幾個方面:數據庫可擴展性、數據在數據庫系統的存儲速率以及數據庫里的信息存儲模式。對一種高效的新型XML映射技術s-XML的性能展開深入探討。研究結果表明,與現有相關方法如Edge和Attribute相比,s-XML的文檔存儲效果更理想。
可擴展標記語言;映射方法;動態(tài)更新;結構化關系;XML查詢
XML對萬維網的信息共享和交流具有很好的適應性,成為數據表示和數據通信方面重要的互聯網標準[1],以致不少研究人士積極開展相關研究并基于關系型數據庫模式提出XML存儲和文檔查詢的有效、精確映射方案。
伴隨著XML的快速發(fā)展,需要確保存儲在關系型數據庫里的信息條理清晰、前后一致以維持原始文檔數據的完整性。目前主要要處理好各節(jié)點之間的關系,才可確保查詢處理和所生成的結果精準無誤,并與原始XML文檔里的數據相一致。
一個好的映射方法需要滿足四個基本關系:祖先后代關系、父子關系、兄弟關系和層級關系。這些信息需儲存在關系表里用以鑒定XML文檔里節(jié)點之間的關聯性,如此便可確保用戶的查詢得到恰當處理。
但一直讓人困擾的是如何提出一個可維持節(jié)點間的基本關系以實現XML的有效處理一種映射方案。通常存在全文本查詢和結構化查詢這兩種查詢。目前許多方法支持全文本查詢,但對結構化查詢尚無定論。由于多種標準綜合的緣故,結構化查詢導致查詢檢索不連貫,無法完整地完成任何查詢。此外,有些方法可存儲這類信息但它們復雜的表模式也成為制約因素,妨礙查詢處理速度,因而延長了查詢響應。對此,需要提出可對XML數據進行有效映射并連貫維持節(jié)點間關系的解決方案。
本文貢獻如下:概述目前映射方案的優(yōu)缺點,基于持久標識方案介紹s-XML映射技術,s-XML與其它技術性能對比研究。
有關XML數據映射到關系型數據庫的研究已成為學者們關注的一個重要領域,這是因為找到一種有助于實現XML高效處理的映射方案十分重要。此前提出的許多映射方案均無法處理好節(jié)點之間的關系,而這對判定根據用戶需求從數據里進行信息檢索節(jié)點間的關聯起到重要作用[2]。
Edge[3]是一種最簡單的映射方案,將信息存儲到單個Edge表。因為這一特性,Edge方法會引發(fā)復雜查詢處理過程中信息檢索方面過多的自我連接問題。鑒于大量數據存儲在超大XML文檔的單個表里,Edge表會遭遇“表大小過大出錯”問題。與Edge不同的是,Attribute[4]方法將相同元素名的所有元素儲存到單個表里,結果XML文檔里的表的數量有離散元素名之多,這將導致復雜查詢處理用的表之間存在許多連接。上述方法都是在邊緣標記方法基礎上提出的,當原始XML文檔存在動態(tài)更新時,該方法要求對表里的現有數據進行調整。
XRel[5]方法是基于節(jié)點標記方法提出的。通過該法信息會映射到四個關系型表里。這些表是根據元素、屬性、文本和路徑這4個節(jié)點類型而設計的,路徑負責將根節(jié)點到當前節(jié)點的數據進行存儲。這是一種有效的方案,負責對文檔里的數據進行維護。此外,XParent[6]將XML文檔表示為結構樹,將相關信息映射到4個表即:1)LabelPath表:負責對該表里的離散標記路徑進行存儲;2)DataPath表:負責維護父子關系型的信息;3)元素表:負責維護元素信息;4)數據表:負責對文檔里的數據值進行存儲以及祖先表負責對祖先后代信息進行存儲。但是,這些方法的復雜性可能導致XML文檔的處理速度放緩,并影響查詢處理時間。
新映射方法s-XML是在持久標識方案基礎上提出的。因此,不論何時已有XML文檔存在動態(tài)更新,都不要求對表里存儲的已有數據進行調整。再者,s-XML還可有效維持節(jié)點間的關系以確保這些節(jié)點間的關聯,如表1所示:
表1 Edge、Attribute與s-XM映射方案的優(yōu)缺點對比結果
除了提出適合的映射方案,還需確保標識方案具有一定的持續(xù)性,以防一旦出現動態(tài)更新,不需要對已有節(jié)點的標記進行變更或修改。所以,需要采用恰當的標識方案。本文提出的映射方法是智慧型方案,是XML高效處理的理想之選。當每次插入新節(jié)點時,該標記技術必須能夠生成唯一的標記。當對已有節(jié)點進行刪除或調整時,需要確保已有節(jié)點的標記原封不動。持久標識方案是支持對XML文檔的動態(tài)更新并為新節(jié)點生成唯一標識的方案之一。此基礎上提出了s-XML方案。
1)持久標識方案
持久標識方案[7-8]是最具有影響力的標識方案之一,能夠有效地維持結構關系并支持動態(tài)更新,這歸咎于這一映射技術的能力問題。每當對文檔進行插入、刪除或更新時,該技術不需要對XML文檔里的已有節(jié)點進行重新標記。持久標識方案對XML圖做了標識后的示例圖,如圖1所示:
圖1 基于持久標識方案的新映射方案
持久標識的標識公式如下:
(l,[np,dp],[n,d]),式中:
- l 指節(jié)點的層次
- [n,d] 指節(jié)點的自我標識
- [np,dp] 指父代節(jié)點的標識
單個或大批節(jié)點插入的情況有三種,具體如下:
(1)在標識(j,k)之前立即插入一個新節(jié)點,且在(j,k)之前不存在其它節(jié)點
新節(jié)點(j-1,k)的自我標識
(2)在標識(j,k)之后立即插入一個新節(jié)點,且在(j,k)之后不存在其它節(jié)點
新節(jié)點(j+1,k)的自我標識
(3)在標識為(j,k)的節(jié)點A與標識為(m,n)的節(jié)點B之間插入一個新節(jié)點
第一步:假設新節(jié)點的標識是(a,b)
第二步:a = m.k + j.n / d
第三步:b = 2.k.n / d,其中d是(m.k + j.n)和(2.k.n)的最大公約數
基于上述公式,我們不需要對已有節(jié)點重新進行標記,因為每次出現動態(tài)更新時都會生成新的標識。所以,持久標識方案是一種能改善XML處理性能的可靠、持久標記技術。正是基于這一特點,我們在持久標識方案基礎上提出了s-XML,使得XML的映射能力大大增強。
2)s-XML
確保一種映射方案可維持節(jié)點之間的關聯這一點很重要,它關系到查詢處理和查詢檢索能否有效進行。s- XML表方案的設計理念:便于維持結構式關系,較好地支持動態(tài)更新。
s- XML包含ParentTable和ChildTable這兩種表,分別負責對父節(jié)點和葉節(jié)點方面的信息進行存儲。這些表方案的公式介紹如下。
ParentTable (IdNode, LParent, SelfLabel),其中:
LParent -負責對層次方面的信息和父節(jié)點的標識進行維護
ChildTable (IdNode, Level, Child, LParent) where: 其中:
基于持久標識方案的s-XML的信息存儲情況,如表2和表3所示:
表2 父節(jié)點中ParentTable存儲的信息
表3 葉節(jié)點中ChildTable存儲的信息
如在表2中,ChildTable里的IdNode4的父標識存儲在&6,表明ChildTable里的IdNode 6位于第二級,得到節(jié)點的本地標識是[4.1]。該方案便于我們很方便地通過減少一個級別來判定節(jié)點間的祖先后代關系,追蹤父標識和自我標識。
1)實驗設置
實驗設備是因特爾奔騰雙核處理器T2390,160GB HDD和1GB DDR2,采用JDK 1.5.0的IntelliJ IDEA Community Edition 9.0.1版本進行實驗操作,MySQL作為數據庫服務器,JAVA作為編程語言。XML文件的樣品取自華盛頓UW大學數據庫,大小不等,如表4所示:
表4 本次實驗用到的數據資料和文件
實驗的目的有兩個:(1)確定XML數據映射到關系型數據庫的時間;(2)根據文件大小和信息類型對各方案所消耗的數據庫大小進行判定。
2)研究結果
首先確定XML數據映射到關系型數據的用時,然后將s-XML方案與Edge、Attribute方案所得結果進行比較。文件大小從KB到MB不等,如99KB、1MB和82MB。連續(xù)5個周期后各方案的平均用時結果,如表5所示:
表5 各方案下XML數據映射到關系型數據庫平均用時(分鐘)結果對比
各方案下XML數據映射到關系型數據庫的用時數據,如圖2所示:
圖2 各方案用時結果對比
由表5和圖2可知Edge方案用時最少,這是因為Edge是最簡單的方案,只有一個表。Attribute用時最長,這是因為它所制作的表有XML文檔里出現的離散元素名之多。s-XML用時比Attribute的要少,這是因為該方案只有兩個表,通過直接的映射設計模式對XML數據進行映射。
通過以上3種方案對文件進行加載時我們測得了數據庫的大小。結果表明Edge和Attribute比s-XML要占用更大空間,這是因為前兩者存儲的數據較多,而s-XML對它們進行了簡化。Attribute方案占用空間最大,這是因為制作了許多表來滿足XML文檔里的不同元命名的需求。上述3種方案所消耗的數據庫大小結果,如表6和圖3所示:
表6 在KB和MB中不同文件大小數據庫大小的比較
圖3 三種方案所消耗的數據庫大小結果
根據所加載XML文檔的大小不同,XML數據映射到關系型表所需的表大小和時間也會變得越來越大。因此,映射方案必須足夠簡單、具有一定持續(xù)性方可有效地進行規(guī)模加載。映射方案的復雜性體現在數據加載所用時間、信息檢索和數據庫存儲大小3方面。必須將那些指標降低才可滿足同時進行多個查詢的要求,進行全文本查詢和結構化查詢。映射方案還必須存儲充足的數據,如層次、父子、祖先后代和兄弟關系以支持結構化查詢。
除此之外,映射方案的進步還必須考慮是否支持動態(tài)更新,如對已有XML文檔進行語句插入、刪除和更改。更改應當不影響表里的已有數據和表的結構。Edge和Attribute這兩方案要求對表里存儲的已有數據進行調整。這會影響查詢處理用時并延誤信息檢索。s-XML方案不要求對表里存儲的已有數據進行更改,這是因為該方案是在持久標識方案基礎上提出的,持久標識方案可生成插入已有文檔的新節(jié)點的唯一一組標識。這是一種有效的查詢處理方法,信息檢索效果也理想。
從數據庫管理系統(DBMS)的角度來說,要實現更理想的數據存儲和表現目標,需要考慮幾個方面。關于這一點,從數據存儲和檢索角度而言,表現簡明是一個值得關注的重要標準。表現簡明指的是數據表現緊湊但不累贅的程度。由于DBMS采納關系型模式將數據組織到關系中,我們需要利用一定的靈活性盡可能靈活、有效地對XML數據進行存儲,因為這也是對數據建模的一種直觀做法。Edge方案將單個Edge表里的數據進行收集,這將影響到數據的表現過程。同時,Attribute方案由于信息融合較多以致顯得過于復雜,這會導致數據表現不連貫,延時和響應用時增長。s-XML比較合理,利用DBMS的靈活性對數據進行存儲,因為該方案只采用兩個表來存儲數據,而且數據表現程度增強,準確性提高。
本文將新映射技術s-XML與Edge和Attribute這兩種已有方法進行了研究對比,重點考察了這3種方案將XML數據映射到關系型表所耗費的時間、數據庫大小和所支持的信息類型。結果表明無論在映射速率還是數據庫規(guī)模方面,s-XML方案都要優(yōu)于既有方案。s-XML方案是良好映射方案的一個例證,能有效地維護結構化關系并對XML文檔里出現的動態(tài)更新提供支持。
[1] Haifeng Jiang, Hongjun Lu, Wei Wang and Jeffrey Xu Yu, “Path Materialization Revisited: An Efficient Storage Model for XML Data,” [J]. In Proc. Of ADC, 2001, 85-94
[2] Samini Subramaniam, Su-Cheng Haw and Poo Kuan Hoong, “Mapping and Labeling XML Data For Dynamic Update,” [J]. In Proc. Of ICECT, 2010:3-4
[3] Masatoshi Yoshikawa and Toshiyuki Amagasa, “XRel: A Path-Based Approach to Storage and Retrieval of XML Documents using Relational Databases”, [J].In ACM Transactions on Internet Technology (TOIT), 2001:9-25
[4] Haifeng Jiang, Hongjun Lu, Wei Wang and Jeffrey Xu Yu, “XParent: An Efficient RDBMS-Based XML Database System”, [J]. In Proc. Of ICDE, 2002:56-60
[5] Su-Cheng Haw, Chien-Sing Lee, “Node Labeling Schemes in XML Query Optimization: A Survey and Trends”, [J].IETE Technical Review, 2009:88-99
[6] Jun-Ki Min, Jihyun Lee, Chin-Wan Chung, “An Efficient XML Encoding and Labeling Method for Query Processing and Updating on Dynamic XML Data” , [M].DASFAA, 2007:112-119
[7] Alban Gabillon and Majirus Fansi, “A Persistrent Labeling Scheme for XML and tree Database”, [M].ACI 2006:110-115
[8] Felix Naumann and Mary Roth, “Information Quality: How Good Are the Off-The-Shelf DBMS?”, [J].In Proc. Of the International Conference on Information Quality (ICIQ), 2004:34-40
Effective Mapping Scheme of XML Data Stored in Relational Database
Yin Xiaoqi
(Department of Computer Science and Technology, Cheng Dong College of Northeast Agricultural University, Harbin150025, China)
XML is the main channel of the web of data transmission, research on mapping XML to relational database system has become one of the most important topics in the current era. Mapping scheme has certain influence on treatment efficiency of XML. It is shown in the following aspects: database expandability, the data storage rate and information storing mode in the database system. An effective and new XML mapping scheme technology, the s-XML is discussed in this paper. The results show that compared with the existing methods such as Edge and Attribute, document storage effect of s-XML is more ideal.
XML; Mapping Approach; Dynamic Updates; Structural Relationship; XML Queries
TP391
A
2014.11.11)
1007-757X(2014)12-0061-04
尹曉奇(1980-),男,東北農業(yè)大學成棟學院,計算機科學與技術系,講師,碩士,研究方向:計算機網絡,信息安全,哈爾濱,150025