明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

XML數(shù)據(jù)庫(kù)中幾個(gè)容易混淆的概念2

[摘要]關(guān)系數(shù)據(jù)庫(kù)  關(guān)系數(shù)據(jù)庫(kù)中的XML數(shù)據(jù)庫(kù)可以分為三種模型:coarse-grained(粗糙紋理型), medium-grained(中等級(jí)別紋理型),或 fine-grained(優(yōu)良紋理型)。  coarse-grained(粗糙紋理型)模型在邏輯上與flat文件模型有些不同。你可以使用一個(gè)關(guān)...
關(guān)系數(shù)據(jù)庫(kù)

  關(guān)系數(shù)據(jù)庫(kù)中的XML數(shù)據(jù)庫(kù)可以分為三種模型:coarse-grained(粗糙紋理型), medium-grained(中等級(jí)別紋理型),或 fine-grained(優(yōu)良紋理型)。

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

  Create table diets
  ( dietName varchar2(30),
   xmlDocument varchar2(32000)
  )

  fine-grained(優(yōu)良紋理型)模型將XML文檔的每一成分映射到關(guān)系數(shù)據(jù)庫(kù)中。為了能夠?qū)lat模型轉(zhuǎn)移到關(guān)系數(shù)據(jù)庫(kù),你必須使用兩種改變方式。對(duì)以上的范例,你不能再使用子目錄名來(lái)代表diet的名稱(chēng),你也不能再使用文件的名稱(chēng)來(lái)傳遞diet的日期。表A顯示了diet的XML文檔的文件類(lèi)型定義(DTD);表B顯示了將DTD映射到關(guān)系表的數(shù)據(jù)定義語(yǔ)言(DDL)。除此之外,表C還包括了相應(yīng)的XML語(yǔ)法。

  medium-grained(中等級(jí)別紋理型)模型介于coarse-grained(粗糙紋理)模型與 fine-grained(優(yōu)良紋理)模型之間。使用這一模型,你可以將信息存儲(chǔ)在meals 表的xml_items列中。

  對(duì)象數(shù)據(jù)庫(kù)

  你也可以通過(guò)使用一個(gè)對(duì)象數(shù)據(jù)庫(kù)來(lái)執(zhí)行NXD。有些對(duì)象數(shù)據(jù)庫(kù)是基于文檔對(duì)象模型(DOM),這允許XML與數(shù)據(jù)庫(kù)有緊密的結(jié)合。例如,一旦你提供一個(gè)食物方面的DTD,你可以開(kāi)始保存這些食物,而不需要額外的配置。

  數(shù)據(jù)庫(kù)管理系統(tǒng)

  對(duì)于DBMS,你可以有多種選擇。你可以通過(guò)使用開(kāi)放程序如eXist或Ozone來(lái)建立自己的DBMS,或者購(gòu)買(mǎi)商業(yè)產(chǎn)品如Tamino XML Server。

  絕大多數(shù)關(guān)系數(shù)據(jù)庫(kù)賣(mài)主都使他們的數(shù)據(jù)庫(kù)能夠使用XML,至少的,XML數(shù)據(jù)庫(kù)(XEDBs)能夠返回XML文檔查詢(xún)的結(jié)果。另外很多也可以保存XML數(shù)據(jù)。例如,Oracle 提供了一個(gè)XML剖析器,一個(gè)Xpath引擎,一個(gè)XSLT處理器,一個(gè)XMLSQL工具,以及使用XML的方法。

  所以,使用關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)的NXD和存儲(chǔ)XML數(shù)據(jù)的XEDB有什么區(qū)別呢?一個(gè)NXD是基于XML文檔概念而建立,而XEDB與其它沒(méi)有過(guò)多的關(guān)聯(lián)。而且,很多規(guī)范適用于NXD,而DBMS只適用標(biāo)準(zhǔn)的查詢(xún)和存儲(chǔ)數(shù)據(jù)的XML文檔,比如Xpath。

  XML數(shù)據(jù)庫(kù)不是新概念

  XML數(shù)據(jù)庫(kù)在邏輯觀點(diǎn)上不是新概念,雖然在邏輯執(zhí)行上是新的。如果你想要執(zhí)行一個(gè)XML數(shù)據(jù)庫(kù),你可以使用NXD,XEDB,或者是二者的結(jié)合。然而,如果你所在的公司對(duì)現(xiàn)有的數(shù)據(jù)庫(kù)已經(jīng)有一定的投資,你所做的第一個(gè)調(diào)查就是核實(shí)你的DMBS賣(mài)主是否提供使用XML的工具。無(wú)論你使用的哪一種XML數(shù)據(jù)庫(kù)方式,你都要非常理解每一種數(shù)據(jù)庫(kù)的特性,這才是最重要的。