xml資料庫

xml資料庫

XML資料庫是一種支持對XML(標準通用標記語言下的一個套用)格式文檔進行存儲和查詢等操作的數據管理系統。在系統中,開發人員可以對資料庫中的XML文檔進行查詢、導出和指定格式的序列化。

定義

XML是eXtensible Markup Language(可擴展標記語言)的英文縮寫。標記(Markup)通常是指一個文檔中不需要實際列印輸出的部分,主要用於告知文檔編輯者(人或軟體系統)文檔格式的描述,即可以按照“標記”給出的“註解”進行文檔格式的相應編排。現在廣泛使用的HTML(Hyper Text Markup Language)就是網頁文檔格式的標記化語言。XML現已經成為網際網路上數據表示和交換的標準。XML的核心在於對數據內容進行描述,使得系統能夠根據標記對數據進行有效管理,因此產生了相應XML資料庫技術。

XML資料庫是一種支持對XML(標準通用標記語言下的一個套用)格式文檔進行存儲和查詢等操作的數據管理系統。在系統中,開發人員可以對資料庫中的XML文檔進行查詢、導出和指定格式的序列化。

分類

XLM本質上只是一種數據格式,它的本意並不在管理數據,因此在XML套用中,數據的管理仍然要藉助於資料庫,尤其是數據量很大、性能要求很高的時候。XML資料庫這一稱謂並不是一個正式的術語,不能把它和關係資料庫相提並論,它是一個比較模糊的稱呼,這裡所指的XML資料庫是指能夠管理XML數據的資料庫管理系統。

目前XML資料庫有三種類型:

(1)XMLEnabledDatabase(XEDB),即能處理XML的資料庫。其特點是在原有的資料庫系統上擴充對XML數據的處理功能,使之能適應XML數據存儲和查詢的需要。一般的做法是在資料庫系統之上增加XML映射層,這可以由資料庫供應商提供,也可以由第三方廠商提供。映射層管理XML數據的存儲和檢索,但原始的XML元數據和結構可能會丟失,而且數據檢索的結果不能保證是原始的XML形式。XEDB的基本存儲單位與具體的實現緊密相關。

(2)NativeXMLDatabase(NXD),即純XML資料庫。其特點是以自然的方式處理XML數據,以XML文檔作為基本的邏輯存儲單位,針對XML的數據存儲和查詢特點專門設計適用的數據模型和處理方法。

(3)HybridXMLDatabase(HXD),即混合XML資料庫。根據套用的需求,可以視其為XEDB或NXD的資料庫,典型的例子是Ozone。

XML資料庫是一個能夠在套用中管理XML數據和文檔的集合的資料庫系統。XML資料庫是XML文檔及其部件的集合,並通過一個具有能力管理和控制這個文檔集合本身及其所表示信息的系統來維護。XML資料庫不僅是結構化數據和半結構化數據的存儲庫,像管理其它數據一樣,持久的XML數據管理包括數據的獨立性、集成性、訪問許可權、視圖、完備性、冗餘性、一致性以及數據恢復等。這些文檔是持久的並且是可以操作的。

當前著重於頁面顯示格式的HTML標記語言和基於它的關鍵字檢索等技術已經不能滿足用戶日益增長的信息需求。近年來的研究致力於將資料庫技術套用於網上數據的管理和查詢,使查詢可以在更細的粒度上進行,並集成多個數據源的數據。但困難在於網上數據缺乏統一的、固定的模式,數據往往是不規則且經常變動的。因此,XML數據作為一種自描述的半結構化數據為Web的數據管理提供了新的數據模型,如果將XML標記數據放入一定的結構中,對數據的檢索、分析、更新和輸出就能夠在更加容易管理的、系統的和較為熟悉的環境下進行,因而我們將資料庫技術套用於XML數據處理領域,通過XML數據模型與資料庫模型的映射來存儲、提取、綜合和分析XML文檔的內容。這為資料庫研究開拓了一個新的方向,將資料庫技術的研究擴展到對Web數據的管理。

特點

與傳統資料庫相比,XML資料庫具有以下優勢:

1、XML資料庫能夠對半結構化數據進行有效的存取和管理。如網頁內容就是一種半結構化數據,而傳統的關係資料庫對於類似網頁內容這類半結構化數據無法進行有效的管理。

2、提供對標籤和路徑的操作。傳統資料庫語言允許對數據元素的值進行操作,不能對元素名稱操作,半結構化資料庫提供了對標籤名稱的操作,還包括了對路徑的操作。

3、當數據本身具有層次特徵時,由於XML數據格式能夠清晰表達數據的層次特徵,因此XML資料庫便於對層次化的數據進行操作。XML資料庫適合管理複雜數據結構的數據集,如果己經以XML格式存儲信息,則XML資料庫利於文檔存儲和檢索;可以用方便實用的方式檢索文檔,並能夠提供高質量的全文搜尋引擎。另外XML資料庫能夠存儲和查詢異種的文檔結構,提供對異種信息存取的支持。

方法

利用資料庫管理XML數據主要有兩種方法:一是已有的關係資料庫管理系統或面向對象資料庫管理系統的基礎上擴充相應的功能,使得能夠勝任XML數據的管理,稱之為支持XML的資料庫,亦稱為XML使能資料庫;二是為了管理XML數據而量身定做的資料庫管理系統,稱之為原生XML資料庫,亦稱為純XML資料庫。

支持XML的資料庫

要使RDBMS支持XML存儲和查詢,必須有一個XML轉換層,這個轉換層可以是RDBMS中的一個模組,也可以是RDBMS之上的一個中間件。這個轉換層完成XML數據/查詢與關係數據/查詢之間的轉換,其中包括兩個模組:一個分裂器和一個查詢翻譯器。

其工作原理如下:首先,根據XML模式,分裂器產生對應的關係模式,XML模式到關係模式的映射會保留下來;然後,當載入XML數據時,分裂器根據XML模式到關係模式的映射將XML數據分裂到關係表中存儲;用戶提出XML查詢,經查詢翻譯器翻譯後,產生SQL查詢,提交關係給關係引擎執行,返回關係結果,這些關係數據經過查詢翻譯器包裝後,再以XML結果形式返回給用戶。

目前支持XML資料庫主要是基於關係資料庫的。這種方法的優點是可以充分利用已有的非常成熟的關係資料庫技術,集成體現有的大量存儲在關係資料庫中的商用數據,但這種處理方法不能利用XML數據自身的特點,如結構化、自描述性等特徵,使得在處理數據的時候要經過多級複雜的轉換,如存儲XML數據時要將其轉換為關係表或對象,在查詢時要將XML查詢語句轉換為SQL或OQL語句,查詢結果還要轉換為XML文檔等,多級的轉換必將帶來效率的降低,而且還會導致一些語義信息的丟失。

原生XML資料庫

原生XML資料庫這個術語,首先是由Software AG 公司為其開發的XML資料庫產品Tamino所做的行銷宣傳中提出來的,後來這個術語在同類產品中成了通用叫法。但它只是一個行銷術語,從來沒有正式的技術定義。在Ronald Bourret 的網站上,Ronald Bourret 給出了一個定義(但這個定義並不是Ronald Bourret 本人提出來的),即滿足以下三個條件的XML資料庫才能稱之為原生XML資料庫:

(1)為XML文檔定義一個(邏輯)模型,XML數據的存儲和查詢都是基於這個模型,這個模型至少包含元素、屬性以及PCDATA等,保持文檔順序;

(2)將XML文檔作為(邏輯)存儲的基本單位,正如關係資料庫將元祖作為它存儲的基本單位一樣;

(3)不要求只能使用某一特定的底層物理模型或某種專用的存儲格式。

第一個條件要求原生XML資料庫必須基於某種模型,這就像關係資料庫基於關係模型,層次資料庫基於層次模型一樣。第二個條件的意思是在原生XML資料庫中,數據只有在一個XML文檔中才有意義,當然這並不妨礙查詢一個文檔的片段,就像在關係資料庫中仍然可以查詢一個元祖的片段(屬性值)一樣。第三個條件的意思是底層的存儲格式並不重要。事實上,很多原生XML資料庫是採用一些傳統的資料庫作為底層存儲引擎的,當然也有很多是採用專有存儲格式的。

相關詞條

相關搜尋

熱門詞條

聯絡我們