摘要: XML作為Internet數(shù)據(jù)表示和交換的工具,已經(jīng)成為了眾多應用領域中的標準數(shù)據(jù)格式。XML文檔的存儲方式極大地影響了查詢處理的效率,成為一個非常重要的研究方向。目前一些組織和學者已經(jīng)提出了一些XML文檔的存儲策略,本文主要對主要的存儲策略進行優(yōu)劣分析。
關鍵詞: XML 存儲方式 關系數(shù)據(jù)庫
1. 引言
XML數(shù)據(jù)海量出現(xiàn),XML文檔的存儲成為研究的熱點。本文重點介紹XML的存儲方式,分析了各存儲方法的優(yōu)劣。根據(jù)存儲方式的不同,我們可以將處理XML數(shù)據(jù)的基本方式分為四種類型:文件系統(tǒng)、半結構化數(shù)據(jù)倉庫、原生的XML數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)。
2. 文件系統(tǒng)
XML文件系統(tǒng)就是把XML直接存儲為文件,訪問時首先通過文件系統(tǒng)的目錄結構,然后通過XML文檔的元素結構來提供對數(shù)據(jù)的層次訪問。基于文件的XML文件系統(tǒng)簡單而容易實現(xiàn),無需使用底層的數(shù)據(jù)庫或?qū)ο蟠鎯芾怼M瑫r由于XML文檔被直接存儲為文本文件,文件的存儲方式無需存儲轉換和重構查詢結果。但是它在查詢處理、文件的大小、并發(fā)性、安全性等方面存在限制。
3. 半結構化數(shù)據(jù)倉庫
半結構化數(shù)據(jù)通常它的內(nèi)容與模式都包含在數(shù)據(jù)中,因此被稱為是“自描述的”。有些半結構數(shù)據(jù)沒有單獨的模式,而有些只對數(shù)據(jù)做不嚴格的約束,由于XML數(shù)據(jù)與半結構化數(shù)據(jù)十分相似,利用半結構化數(shù)據(jù)倉庫管理XML數(shù)據(jù)似乎是比較自然的方式。在這種方法中,XML數(shù)據(jù)被聚族存儲為有向圖。斯坦福大學的Lore項目在這方面作了初步嘗試,然而,目前半結構化數(shù)據(jù)庫技術尚不成熟,利用半結構化數(shù)據(jù)倉庫處理XML的性能仍然難以讓人滿意。
4. 原生的XML數(shù)據(jù)庫
原生的XML數(shù)據(jù)庫以某種(邏輯的)模型(如:XPath模型或DOM模型)為基礎來存儲和檢索XML數(shù)據(jù),將XML文檔作為一個整體來存儲,并把XML文檔作為數(shù)據(jù)處理的基本單位,不要求有某種特定的物理存儲模型,可以建立在數(shù)據(jù)庫系統(tǒng)、對象管理器或文件系統(tǒng)之上。近來出現(xiàn)了一些這樣的數(shù)據(jù)庫系統(tǒng),如:Tamino。
原生XML數(shù)據(jù)庫有其優(yōu)勢,它以XML格式存儲信息,完整地保留XML文檔的信息,存儲映射不需要DTD結構。因此原生XML數(shù)據(jù)庫有利于文檔存儲和檢索,消除了不必要的轉換操作;以信息的原始XML格式檢索文檔,而不需任何附加編碼,并且可以使信息以一定的樣式顯示;大多數(shù)Native-XML數(shù)據(jù)庫具有完善的全文搜索的能力,包括整個同義字支持、字根(匹配一個字的所有形式:現(xiàn)在時、過去時和進行時)以及相近搜索(DTD NEAR XML Schema)。
但原生XML數(shù)據(jù)庫也有其劣勢:(1)當文檔被添加到數(shù)據(jù)庫中時,原生XML數(shù)據(jù)庫就開始對文檔內(nèi)的所有信息建索引,這將導致對存儲空間的需求飛速上升。(2)當進行信息更新時,即使用戶所需要的只是文檔的很小一部分,很多原生XML平臺也要從數(shù)據(jù)庫返回整個文檔。(3)XML數(shù)據(jù)缺乏多重管理、協(xié)同工作能力、規(guī)劃能力等等,這些恰恰是大型關系數(shù)據(jù)庫所擁有的優(yōu)點。(4)缺乏明確的標準也是XML數(shù)據(jù)庫領域的一個問題。
5.關系數(shù)據(jù)庫
雖然關系模型與XML文檔模型有一定的差距,但是利用關系數(shù)據(jù)庫系統(tǒng)來處理XML數(shù)據(jù)的方式有如下優(yōu)點:一方面當前的關系數(shù)據(jù)庫的技術已十分成熟,商用的關系數(shù)據(jù)庫系統(tǒng)都具有高性能的查詢引擎,良好的可擴展性、安全性和健壯性。因此,利用關系數(shù)據(jù)庫系統(tǒng)管理XML數(shù)據(jù)可以重用數(shù)據(jù)庫的查詢優(yōu)化器和事務處理機制,能夠保證XML數(shù)據(jù)的一致性和完整性,另一方面,目前大量的WEB數(shù)據(jù)主要存放在關系數(shù)據(jù)庫中,XML——關系系統(tǒng)便于在關系數(shù)據(jù)庫上建立適于二者的應用,使關系數(shù)據(jù)庫進入WEB領域成為可能。但是,由于數(shù)據(jù)模型上的差異,利用數(shù)據(jù)庫系統(tǒng)來管理XML數(shù)據(jù)也給數(shù)據(jù)庫技術帶來了許多新的挑戰(zhàn)。近來,基于關系的XML數(shù)據(jù)處理技術受到了研究者和數(shù)據(jù)庫廠商的關注,在這方面已經(jīng)有了許多工作和成果。按照將XML數(shù)據(jù)轉存為關系的映射方式的不同,我們可以將基于關系的XML數(shù)據(jù)存儲分為兩類:獨立于文檔的關系存儲和依賴于文檔的關系存儲。前一種是用固定的關系模式來存儲所有的XML文檔,這種方法不考慮XML文檔本身的結構特點,對任何XML文檔都產(chǎn)生一樣的表結構,這對于一部分無模式的XML文檔在關系數(shù)據(jù)庫中的存儲是非常有用的,后一種是從XML模式中導出關系模式。
6.結論
通過以上分析,可見利用關系數(shù)據(jù)庫進行XML存儲是優(yōu)良的方法,也是未來重點研究的方向。
參考文獻:
[1]Natanya Pitts著.徐曉梅,龔志翔,王曉云譯.XML技術內(nèi)幕.北京:機械工業(yè)出版社,2002.
[2]萬常選.XML數(shù)據(jù)庫技術.北京:清華大學出版社,2005.
[3]R Bourret.Mapping DTDs to Databases[EB/OL]. http: / / www. xml. com/ pub / a / 2001 / 05 / 09 / dtdtodbs. html. Web page, 2001-05.
[4]許卓明,劉琴,董逸生.基于關系數(shù)據(jù)庫的XML存儲技術評述.計算機工程與應用,2003,39(10):197-200.
[5]章義,黎峰.基于XML的數(shù)據(jù)庫儲存訪問技術.計算機工程與設計,2005,26(1):208-211.