DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 詳細講解XML數據庫中幾個容易混淆的概念
詳細講解XML數據庫中幾個容易混淆的概念
編輯:XML詳解     
當開發人員談及XML數據庫時,他們往往指的是兩個概念:存儲XML數據的數據庫,利用XML數據庫的DBMS。絕大多數主要的DBMS產品允許你無需改變現有的數據庫就可以集成XML數據到程序中。現在讓我們討論一下XML數據庫並探討其特性。

  原始的XML數據庫

  一個原始的XML數據庫(NXD)可以是很簡單,也可以是很復雜。我這樣定義一個數據庫的概念:永久穩定數據的集合。在這樣的定義下,一個NXD能在邏輯上存儲一個XML文檔。當XML:DBinitiative對一個NXD還有更多的要求時,我想以上的定義也可以滿足。

  以下的代碼行可以用作於一個NXD:

〈?XML version=”1.0”?〉

〈diet〉

〈meal mealName=”breakfast”〉

〈item itemName=“toast” 

unit=”slice” quantity=“2” /〉

〈item itemName=“bacon”

unit=”strip” quantity=“2” /〉

〈/meal〉

〈/dIEt〉

  很顯然,數據的集合以XML格式存儲。如果它被存放在一個flat文件,它也會滿足我們對NXD的定義:永久穩定數據的集合。

  一個NXD使用相同的方式來存儲XML文檔(比如:flat文件,關系數據庫或級別數據庫,對象數據庫)。

  Flat文件

  一個簡單的flat文件是一個最簡單的XML數據庫模型。作為一種“變種”,你可以存儲很多XML文檔在一個目錄層次。為了擴展前面的范例,看看以下的模型:

Diets

DietsAtkins

Day1.xml

Day2.xml

Day3.xml

Day4.xml

Diets3DayDIEt

Day1.xml

Day2.xml

Day3.XML

  DIEts目錄包含了子目錄,並且每一子目錄很多XML的flat文件。

  關系數據庫

  關系數據庫中的XML數據庫可以分為三種模型:coarse-grained(粗糙紋理型), medium-grained(中等級別紋理型),或 fine-grained(優良紋理型)。

coarse-grained(粗糙紋理型)模型在邏輯上與flat文件模型有些不同。你可以使用一個關系數據庫來存放每一個XML文檔。例如,以下的代碼可以存放一個XML文檔:

Create table diets

( dIEtName varchar2(30),

XMLDocument varchar2(32000)

)

  fine-grained(優良紋理型)模型將XML文檔的每一成分映射到關系數據庫中。為了能夠將flat模型轉移到關系數據庫,你必須使用兩種改變方式。對以上的范例,你不能再使用子目錄名來代表diet的名稱,你也不能再使用文件的名稱來傳遞diet的日期。表A顯示了dIEt的XML文檔的文件類型定義(DTD);表B顯示了將DTD映射到關系表的數據定義語言(DDL)。除此之外,表C還包括了相應的XML語法。

  medium-grained(中等級別紋理型)模型介於coarse-grained(粗糙紋理)模型與 fine-grained(優良紋理)模型之間。使用這一模型,你可以將信息存儲在meals 表的XML_items列中。

  對象數據庫

  你也可以通過使用一個對象數據庫來執行NXD。有些對象數據庫是基於文檔對象模型(DOM),這允許XML與數據庫有緊密的結合。例如,一旦你提供一個食物方面的DTD,你可以開始保存這些食物,而不需要額外的配置。

  數據庫管理系統

  對於DBMS,你可以有多種選擇。你可以通過使用開放程序如eXist或Ozone來建立自己的DBMS,或者購買商業產品如Tamino XML Server。

  絕大多數關系數據庫賣主都使他們的數據庫能夠使用XML,至少的,XML數據庫(XEDBs)能夠返回XML文檔查詢的結果。另外很多也可以保存XML數據。例如,Oracle 提供了一個XML剖析器,一個XPath引擎,一個XSLT處理器,一個XMLSQL工具,以及使用XML的方法。

  所以,使用關系數據庫存儲的NXD和存儲XML數據的XEDB有什麼區別呢?一個NXD是基於XML文檔概念而建立,而XEDB與其它沒有過多的關聯。而且,很多規范適用於NXD,而DBMS只適用標准的查詢和存儲數據的XML文檔,比如Xpath。

  XML數據庫不是新概念
XML數據庫在邏輯觀點上不是新概念,雖然在邏輯執行上是新的。如果你想要執行一個XML數據庫,你可以使用NXD,XEDB,或者是二者的結合。然而,如果你所在的公司對現有的數據庫已經有一定的投資,你所做的第一個調查就是核實你的DMBS賣主是否提供使用XML的工具。無論你使用的哪一種XML數據庫方式,你都要非常理解每一種數據庫的特性,這才是最重要的。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved