複製鏈接
請複製以下鏈接發送給好友

xml數據庫

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

目錄

xml數據庫定義

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

xml數據庫分類

XML本質上只是一種數據格式,它的本意並不在管理數據,因此在XML應用中,數據的管理仍然要藉助於數據庫,尤其是數據量很大、性能要求很高的時候。XML數據庫這一稱謂並不是一個正式的術語,不能把它和關係數據庫相提並論,它是一個比較模糊的稱呼,這裏所指的XML數據庫是指能夠管理XML數據的數據庫管理系統。 [2] 
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數據庫特點

傳統數據庫相比,XML數據庫具有以下優勢:
1、XML數據庫能夠對半結構化數據進行有效的存取和管理。如網頁內容就是一種半結構化數據,而傳統的關係數據庫對於類似網頁內容這類半結構化數據無法進行有效的管理。
2、提供對標籤和路徑的操作。傳統數據庫語言允許對數據元素的值進行操作,不能對元素名稱操作,半結構化數據庫提供了對標籤名稱的操作,還包括了對路徑的操作。
3、當數據本身具有層次特徵時,由於XML數據格式能夠清晰表達數據的層次特徵,因此XML數據庫便於對層次化的數據進行操作。XML數據庫適合管理複雜數據結構的數據集,如果己經以XML格式存儲信息,則XML數據庫利於文檔存儲和檢索;可以用方便實用的方式檢索文檔,並能夠提供高質量的全文搜索引擎。另外XML數據庫能夠存儲和查詢異種的文檔結構,提供對異種信息存取的支持。

xml數據庫方法

利用數據庫管理XML數據主要有兩種方法:一是已有的關係數據庫管理系統或面向對象數據庫管理系統的基礎上擴充相應的功能,使得能夠勝任XML數據的管理,稱之為支持XML的數據庫,亦稱為XML使能數據庫;二是為了管理XML數據而量身定做的數據庫管理系統,稱之為原生XML數據庫,亦稱為純XML數據庫。 [2] 
支持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數據庫是採用一些傳統的數據庫作為底層存儲引擎的,當然也有很多是採用專有存儲格式的。
參考資料
  • 1.    葉小平,湯庸,湯娜,潘明編著.數據庫系統教程 第2版 .北京:清華大學出版社,2012:314-319
  • 2.    廖國瓊,吳京慧,劉喜平等編著.數據庫系統原理與設計.北京:清華大學出版社,2012:422-425