亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        XML數(shù)據(jù)庫的研究與探討

        2011-12-31 00:00:00陳雨
        經(jīng)濟(jì)研究導(dǎo)刊 2011年32期

        摘 要:隨著信息化時代的到來,數(shù)據(jù)庫系統(tǒng)已經(jīng)成為現(xiàn)代人們進(jìn)行信息管理最重要的依托支柱。目前,XML標(biāo)準(zhǔn)日益成熟,并很快成為各種復(fù)雜的異構(gòu)數(shù)據(jù)交換的核心技術(shù)和未來數(shù)據(jù)定義的標(biāo)準(zhǔn)格式;XML數(shù)據(jù)庫則是下一代數(shù)據(jù)庫發(fā)展的大勢所趨。

        關(guān)鍵詞:XML數(shù)據(jù)庫;XML Schema;SAX;XQuery

        中圖分類號:TP393.08 文獻(xiàn)標(biāo)志碼:A 文章編號:1673-291X(2011)32-0299-02

        目前,計(jì)算機(jī)已被廣泛應(yīng)用。伴隨著數(shù)據(jù)庫系統(tǒng)的日益強(qiáng)大,其應(yīng)用領(lǐng)域涉及各方各面。2006年是XML數(shù)據(jù)庫迅速發(fā)展的時期,至今XML數(shù)據(jù)庫在數(shù)據(jù)庫領(lǐng)域占有的比重越來越大。我們有必要掌握XML數(shù)據(jù)庫的基本理論,了解XML數(shù)據(jù)庫的應(yīng)用實(shí)現(xiàn),以及探討XML數(shù)據(jù)庫的未來的應(yīng)用領(lǐng)域及發(fā)展方向,使XML數(shù)據(jù)庫在數(shù)據(jù)庫以及各應(yīng)用領(lǐng)域大放異彩。

        一、XML構(gòu)造數(shù)據(jù)庫的優(yōu)勢

        XML語言在異構(gòu)數(shù)據(jù)庫集成方面的優(yōu)勢體現(xiàn)在它具有良好的自描述性、可擴(kuò)展性、數(shù)據(jù)與表現(xiàn)形式分離以及網(wǎng)絡(luò)開放性等。

        例如,標(biāo)記<性別>female,可以很明白地表示出其性別為女,數(shù)據(jù)female代表的是一個由標(biāo)記描述的信息名字。一份完整的XML文檔必須包括數(shù)據(jù)、標(biāo)記、樣式三個部分。XML只提供了一種通用的,靈活的語法機(jī)制,用格式文件來記錄數(shù)據(jù)以及數(shù)據(jù)之間的層次關(guān)系。使用者可以根據(jù)具體應(yīng)用和自己的習(xí)慣來設(shè)計(jì)高效可擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)。同時XML通過命名空間的機(jī)制保證了各個XML文檔之間不會出現(xiàn)名字沖突使使用者可以隨意設(shè)計(jì)XML文檔。

        XML數(shù)據(jù)庫的數(shù)據(jù)和表現(xiàn)形式分離,無論數(shù)據(jù)還是形式改變,文檔中的數(shù)據(jù)和形式不僅不需要重新開發(fā),而且有利于數(shù)據(jù)的重復(fù)利用,和數(shù)據(jù)一致性的維護(hù)。當(dāng)只想改變數(shù)據(jù)的表現(xiàn)形式時只需修改從XML文檔中分離出的用于數(shù)據(jù)表現(xiàn)的樣式表就可以了。XML規(guī)范是由W3C指定的,完全 公開。

        二、XML數(shù)據(jù)庫

        所謂數(shù)據(jù)庫就是一組相互有關(guān)聯(lián)的數(shù)據(jù)集合,其中XML數(shù)據(jù)可是一個XML文檔的集合,這些文檔是持久的并且是可操作的。目前XML數(shù)據(jù)庫有三種類型

        三、XML數(shù)據(jù)庫類型

        目前XML數(shù)據(jù)庫有三種類型,純XML數(shù)據(jù)庫(NXD)。其處理XML數(shù)據(jù)的方式非常自然,基本的邏輯存儲單位是XML文檔,專門設(shè)計(jì)的數(shù)據(jù)模型和處理方法。典型的NXDB如Software AG的Taminio XMl Server可以原生地存儲XML和non-XML數(shù)據(jù),可以使用Web和XML的規(guī)范和界面查詢和轉(zhuǎn)換數(shù)據(jù),很適合于內(nèi)容管理和應(yīng)用集成系統(tǒng)使用。能處理XML的數(shù)據(jù)庫(XEDB)。XEDB的基本存儲單位與具體的實(shí)現(xiàn)緊密相關(guān)。為了適應(yīng)XML數(shù)據(jù)存儲和查詢的需要在原有的數(shù)據(jù)庫系統(tǒng)上擴(kuò)充對XML數(shù)據(jù)的處理功能。一般的做法是由數(shù)據(jù)庫供應(yīng)商或第三方廠商提供在數(shù)據(jù)庫系統(tǒng)之上增加XML映射層,映射層管理XML數(shù)據(jù)的存儲和檢索,但原始的XML元數(shù)據(jù)和結(jié)構(gòu)可能會丟失,而且數(shù)據(jù)檢索的結(jié)果不能保證是原始的XML形式。

        四、XML數(shù)據(jù)庫競爭力不強(qiáng)

        一般來說,XML數(shù)據(jù)庫沒有足夠強(qiáng)大的科技力量與關(guān)系數(shù)據(jù)庫競爭,XML數(shù)據(jù)庫缺乏多重管理、協(xié)同工作能力、規(guī)劃能力、易用性,這些好處恰恰是大型關(guān)系數(shù)據(jù)庫所擁有的優(yōu)點(diǎn)。

        第一,缺乏明確的標(biāo)準(zhǔn)是XML數(shù)據(jù)庫領(lǐng)域的一個問題。XPath查詢與發(fā)布支持組、排列和摘要數(shù)據(jù)等功能,更豐富的XQuery查詢語言仍然僅僅是一個設(shè)計(jì)表格。更有甚的是XQuery正是化得時候,它仍然不支持和數(shù)據(jù)更新、插入和刪除等功能。

        第二,競爭激烈。為了把XML數(shù)據(jù)存儲到他們原來的數(shù)據(jù)庫系統(tǒng)中Oracle、IBM和Sybase等數(shù)據(jù)庫系統(tǒng)公司都把XML數(shù)據(jù)類型加到了他們的數(shù)據(jù)庫之中。甲骨文在Oracle 10g中,不僅提供了對XML Query語言(XQuery)的支持,而且XML數(shù)據(jù)庫作為一個獨(dú)立的方式存儲在XMLDB數(shù)據(jù)庫中,提供的是Native XML的支持。微軟在發(fā)布的Microsoft SQL Server2008中大量XML數(shù)據(jù)放入數(shù)據(jù)庫中,并提供Native(原生)XML和XQuery的支持。IBM的DB2.9全面支持XML數(shù)據(jù),它的XML數(shù)據(jù)管理能力完全符合面向服務(wù)架構(gòu)(SOA)的要求。

        XML數(shù)據(jù)庫的存儲策略目前主要有以下三種:利用文件系統(tǒng)的平面文件,利用成熟的RDBMS,利用對象管理器或面向?qū)ο髷?shù)據(jù)庫管理系統(tǒng)。

        1.文件系統(tǒng)的平面文件方法

        XML文檔本質(zhì)上是序列化數(shù)據(jù)。序列化數(shù)據(jù)通常采用平面文件的形式,即將每一個XML文檔分別存儲在一個文本文件里,并且實(shí)現(xiàn)一個查詢引擎,當(dāng)查詢被執(zhí)行的時候,XML文件被解析并駐留在內(nèi)存里。解析的時間左右著查詢計(jì)算的時間,為了提高這種方法的可用性,必須建立索引;查詢引擎可以利用這些索引檢索與查詢相關(guān)的XML文件的片段,極大地減少了解析時間。平面文件數(shù)據(jù)庫最大優(yōu)點(diǎn)就是容易實(shí)現(xiàn),而且不需要使用數(shù)據(jù)庫系統(tǒng)和存儲管理器。但是,可以再XML文檔上建立外部索引利用平面文件存儲到XML文檔的弊端,如每次訪問XML文檔時都需要解析它;在查詢處理期間,整個被解析的文件都必須駐留在內(nèi)存里。

        2.傳統(tǒng)的關(guān)系數(shù)據(jù)庫系統(tǒng)方法

        我們還可以將XML文檔存儲在傳統(tǒng)的關(guān)系數(shù)據(jù)庫系統(tǒng)里,因?yàn)樽罱难芯砍晒f明了如何將XML文檔映射并存儲到關(guān)系數(shù)據(jù)庫系統(tǒng)中。但是這種方法還是有缺點(diǎn)的,當(dāng)前關(guān)系數(shù)據(jù)庫比XML數(shù)據(jù)庫的負(fù)載小,而且通過諸如SQL的接口訪問XML數(shù)據(jù)會招致與存儲無關(guān)的額外負(fù)擔(dān)。

        利用關(guān)系的DTD方法是共享內(nèi)嵌法,而且需要相應(yīng)的DTD支持。用一個獨(dú)立的表來捕獲具有相同標(biāo)記的元素與其子元素集之間的包含關(guān)系,表中的每個元組都被賦予一個ID,而且該表還包含一個parent ID列以標(biāo)志該元組的父親節(jié)點(diǎn)。一個元素在描述它的元素表中只能出現(xiàn)一次,而且它的父親節(jié)點(diǎn)內(nèi)嵌為表的一列以便表示該元素的父親。如果描述XML文檔模式的DTD圖中包含環(huán),則必須用一個獨(dú)立的表來打破這個環(huán)。

        3.利用關(guān)系變的方法

        變的方法,將XML文檔的有向圖存儲在單個Edge表中。按照廣度優(yōu)先順序賦予有向圖中每個節(jié)點(diǎn)一個唯一的ID.Edge表中每個元組對應(yīng)有向圖里的一條邊,并且包含該條邊多鏈接的兩個節(jié)點(diǎn)的ID值,目標(biāo)節(jié)點(diǎn)的標(biāo)記值以及一個順序號,該順序號表示同一節(jié)點(diǎn)與其多個子節(jié)點(diǎn)對應(yīng)邊的順序編碼。當(dāng)元素只有一個文本子節(jié)點(diǎn)時,文本內(nèi)容就內(nèi)嵌到以該元素節(jié)點(diǎn)為目標(biāo)節(jié)點(diǎn)的邊所對應(yīng)的元組里。建立在Tag數(shù)據(jù)上的索引可以縮減選擇查詢的執(zhí)行時間。而建立在(源節(jié)點(diǎn),順序號)和(目標(biāo)點(diǎn))上的索引頁非常重要,前者用來查找給定元素的子元素,后者用來從給定的子節(jié)點(diǎn)向父節(jié)點(diǎn)遍歷。

        在Edge表上運(yùn)用簇集策略對查詢的性能也會有重要影響。一般都會選擇按照Edge表上的字段進(jìn)行簇集,使得具有相同Tag的元素存儲在一起。當(dāng)然也可以選擇按照“源節(jié)點(diǎn)”。

        字段進(jìn)行簇集,這種策略的好處是一個XML元素的所有子元素都存儲在一起,因此重構(gòu)原始的XML文檔將非???。而建立在Tag字段上的簇集則表現(xiàn)出了較好的性能,但它對XML文檔的重建沒有任何好處。

        4.利用關(guān)系的屬性方法

        法按Edge表的Tag字段對邊表進(jìn)行水平劃分,不同標(biāo)記的元組存儲在各自不同的表里這種方法以犧牲Edge表非常重要的屬性Tag為代價而節(jié)省了存儲空間,對屬性方法來說,查詢處理器需要DTD來決定那些表包含子元素,因?yàn)樽釉氐臉?biāo)記沒有存儲在表中“需要注意的是,對于有很多XML文檔的一個大集,屬性方法可能導(dǎo)致大量的表”。

        5.對象管理其方法

        在對象管理器里存儲XML文檔的明顯方法就是把每一個XML元素存儲成一個獨(dú)立的對象,但是由于XML元素通常都非常小,因此這種方法的空間開銷高得令人不敢問津,取而代之,把XML文檔的所有元素存儲在一個單獨(dú)的對象里,而XML元素本身就變成了這個對象里的輕量級對象。同時,用tw_object,即記錄來表示輕量級對象,而用file_object表示代表整個XML文檔的對象,輕量級對象在文件對象中的偏移量被用作該對象的標(biāo)志。

        五、XML數(shù)據(jù)庫產(chǎn)品

        1.dbXML

        是由美國的dbXML Group LLC公司研究的一個原生XML數(shù)據(jù)庫。它不僅以服務(wù)器腳本,類和觸發(fā)器的形式來提供商業(yè)邏輯而且還能夠索引和存儲XML文檔集合。

        2.eXist

        eXist是一個開源的native XML數(shù)據(jù)庫,于2001年開始研究。完全用Java實(shí)現(xiàn),不支持XML Schema模式驗(yàn)證,支持XPath查詢,支持可插拔的存儲后端,即后端既可以純XML數(shù)據(jù)庫也可以是關(guān)系數(shù)據(jù)庫,支持HTTP、XML-RPC、SOAP和WebDAV接口訪問和Java專用的XML:DB API.

        3.Ashpool

        Ashpool是一個由Java開發(fā)輕量級XML數(shù)據(jù)庫??梢允褂脴?biāo)準(zhǔn)的SQL92語法通過一個JDBC驅(qū)動來查詢,新增,更新和刪除XML文檔。

        4.Berkeley DB XML數(shù)據(jù)庫

        Berkeley DB XML是一個開放源碼的嵌入式原生數(shù)據(jù)庫。用來存儲和獲取XML格式的文檔,它建立在成功的Berkeley DB之上,提供基于XQuery的接口訪問存儲,支持XML Schema驗(yàn)證;

        5.Apache Xindice

        Xindice是起源于DBXML數(shù)據(jù)庫使用Java編寫開放源代碼的原生XML數(shù)據(jù)庫,使用解析的壓縮文檔存儲XML,并采用集合的方式來管理XML。Xindice可以以XML本身的格式存儲和檢索XML數(shù)據(jù),但其不支持XML校驗(yàn)和不能處理較大的XML文檔,因此在大型應(yīng)用中有所限制。

        6.Tamino

        Tamino是Software AG于1999年發(fā)布的Native XML服務(wù)器的第一個版本,其中包括Native XML數(shù)據(jù)庫。Tamino可以處理面向數(shù)據(jù)的文檔,有正規(guī)的結(jié)構(gòu),元素順序無關(guān)緊要,不會出現(xiàn)混合內(nèi)容和面向文檔的文檔,幾乎沒有正規(guī)的結(jié)構(gòu),元素順序非常重要,會出現(xiàn)混合內(nèi)容,也可以存儲其他類型的數(shù)據(jù)。

        [責(zé)任編輯 王 莉]

        国产免费无码一区二区三区| 国产又黄又湿又爽的免费视频| 日本一区二区三区经典视频| 久久精品国产99久久无毒不卡| 欧洲一卡2卡三卡4卡免费网站| 成人国产精品一区二区网站| 美女露屁股无内裤视频| 国产精品性色av麻豆| 天天躁夜夜躁狠狠躁2021a2| 亚洲国产精品久久久久秋霞1| 亚洲中文字幕久爱亚洲伊人| 久久精品国产亚洲av沈先生| 国产日产精品_国产精品毛片| 999久久久国产精品| 国产欧美日韩综合一区二区三区| 国产黄色看三级三级三级| 肥老熟女性强欲五十路| 中出人妻中文字幕无码| 被黑人做的白浆直流在线播放| 视频一区二区不中文字幕| 一本色道久久婷婷日韩| 欧美日韩不卡合集视频| 国产亚洲精品福利在线 | 最近中文字幕精品在线| 国产欧美亚洲精品第一页| 18级成人毛片免费观看| 精品一区二区三区中文字幕在线| 国语对白免费观看123| 国产精品高清免费在线| 国产av精品一区二区三| 久久久www成人免费无遮挡大片| 日本色偷偷| 国产精品老熟女乱一区二区| 无码人妻人妻经典| 国产精品理人伦国色天香一区二区| 亚洲av成人久久精品| 中文字幕人妻丝袜成熟乱| 亚洲av无码专区在线电影| 亚洲国产剧情一区在线观看| 亚洲国产中文字幕一区| 熟女少妇在线视频播放|