佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > XML數(shù)據(jù)庫(kù)中幾個(gè)容易混淆的概念

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

熱門標(biāo)簽:呼叫中心市場(chǎng)需求 智能手機(jī) 銀行業(yè)務(wù) 網(wǎng)站文章發(fā)布 服務(wù)器配置 鐵路電話系統(tǒng) 檢查注冊(cè)表項(xiàng) 美圖手機(jī)

  當(dāng)開發(fā)人員談及XML數(shù)據(jù)庫(kù)時(shí),他們往往指的是兩個(gè)概念:存儲(chǔ)XML數(shù)據(jù)的數(shù)據(jù)庫(kù),利用XML數(shù)據(jù)庫(kù)的DBMS。絕大多數(shù)主要的DBMS產(chǎn)品允許你無需改變現(xiàn)有的數(shù)據(jù)庫(kù)就可以集成XML數(shù)據(jù)到程序中?,F(xiàn)在讓我們討論一下XML數(shù)據(jù)庫(kù)并探討其特性。

  原始的XML數(shù)據(jù)庫(kù)

  一個(gè)原始的XML數(shù)據(jù)庫(kù)(NXD)可以是很簡(jiǎn)單,也可以是很復(fù)雜。我這樣定義一個(gè)數(shù)據(jù)庫(kù)的概念:永久穩(wěn)定數(shù)據(jù)的集合。在這樣的定義下,一個(gè)NXD能在邏輯上存儲(chǔ)一個(gè)XML文檔。當(dāng)XML:DB initiative對(duì)一個(gè)NXD還有更多的要求時(shí),我想以上的定義也可以滿足。

  以下的代碼行可以用作于一個(gè)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〉

  很顯然,數(shù)據(jù)的集合以XML格式存儲(chǔ)。如果它被存放在一個(gè)flat文件,它也會(huì)滿足我們對(duì)NXD的定義:永久穩(wěn)定數(shù)據(jù)的集合。

  一個(gè)NXD使用相同的方式來存儲(chǔ)XML文檔(比如:flat文件,關(guān)系數(shù)據(jù)庫(kù)或級(jí)別數(shù)據(jù)庫(kù),對(duì)象數(shù)據(jù)庫(kù))。

  Flat文件

  一個(gè)簡(jiǎn)單的flat文件是一個(gè)最簡(jiǎn)單的XML數(shù)據(jù)庫(kù)模型。作為一種“變種”,你可以存儲(chǔ)很多XML文檔在一個(gè)目錄層次。為了擴(kuò)展前面的范例,看看以下的模型:

Diets\
Diets\Atkins
Day1.xml
Day2.xml
Day3.xml
Day4.xml
Diets\3DayDiet
Day1.xml
Day2.xml
Day3.xml

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

  關(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ù)來存放每一個(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ì)以上的范例,你不能再使用子目錄名來代表diet的名稱,你也不能再使用文件的名稱來傳遞diet的日期。表A顯示了diet的XML文檔的文件類型定義(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ù)

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

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

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

  絕大多數(shù)關(guān)系數(shù)據(jù)庫(kù)賣主都使他們的數(shù)據(jù)庫(kù)能夠使用XML,至少的,XML數(shù)據(jù)庫(kù)(XEDBs)能夠返回XML文檔查詢的結(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與其它沒有過多的關(guān)聯(lián)。而且,很多規(guī)范適用于NXD,而DBMS只適用標(biāo)準(zhǔ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賣主是否提供使用XML的工具。無論你使用的哪一種XML數(shù)據(jù)庫(kù)方式,你都要非常理解每一種數(shù)據(jù)庫(kù)的特性,這才是最重要的。

您可能感興趣的文章:
  • 將xml文件作為一個(gè)小的數(shù)據(jù)庫(kù),進(jìn)行學(xué)生的增刪改查的簡(jiǎn)單實(shí)例

標(biāo)簽:上海 長(zhǎng)治 滄州 河南 樂山 沈陽(yáng) 新疆 紅河

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《XML數(shù)據(jù)庫(kù)中幾個(gè)容易混淆的概念》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    凌源市| 罗定市| 佳木斯市| 三江| 富锦市| 遂川县| 中牟县| 上犹县| 新郑市| 阳高县| 永年县| 德令哈市| 沾益县| 高唐县| 太康县| 南投市| 桐城市| 平江县| 腾冲县| 房产| 平谷区| 泌阳县| 蚌埠市| 龙江县| 福海县| 延庆县| 阿瓦提县| 乌拉特前旗| 合山市| 华蓥市| 香格里拉县| 公安县| 沾化县| 尉氏县| 西青区| 屏山县| 女性| 山东省| 武汉市| 德江县| 炉霍县|