• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見(jiàn)諒!~
            隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            開(kāi)源Xml數(shù)據(jù)庫(kù)評(píng)測(cè)

            一、        xml數(shù)據(jù)庫(kù)的概念及分類(lèi)

            Xml雖然已出現(xiàn)很多年,但在前些年通常只被做為數(shù)據(jù)交換文件來(lái)使用,或作為軟件配置文件,較深層次的應(yīng)用較少。隨著xml數(shù)據(jù)使用的越來(lái)越多,迫切需要一種能夠直接處理xml數(shù)據(jù)的數(shù)據(jù)庫(kù)來(lái)管理這些結(jié)構(gòu)或半結(jié)構(gòu)化的數(shù)據(jù)。之前處理xml數(shù)據(jù)都是在作為文本存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中。由于xml數(shù)據(jù)格式是層次關(guān)系,而且同類(lèi)文件格式也可能不同,用關(guān)系數(shù)據(jù)庫(kù)很難表示,更嚴(yán)重的是使用關(guān)系數(shù)據(jù)庫(kù)保存xml數(shù)據(jù)無(wú)法對(duì)xml數(shù)據(jù)中結(jié)點(diǎn)進(jìn)行檢索。使用新型存儲(chǔ)格式及檢索方式已是必然。隨著處理xml文件的一些方法被定義為標(biāo)準(zhǔn),例如XPath、XQuery等。Xml數(shù)據(jù)庫(kù)的應(yīng)用才越來(lái)越廣泛了。

             

            Xml數(shù)據(jù)庫(kù)即使用xml文件作為數(shù)據(jù)存儲(chǔ)格式的數(shù)據(jù)庫(kù)。根據(jù)數(shù)據(jù)庫(kù)實(shí)現(xiàn)模式,xml數(shù)據(jù)庫(kù)分為:

            1、可以使用xml文件的數(shù)據(jù)庫(kù)(Enable-XML Database):數(shù)據(jù)庫(kù)內(nèi)部含有處理xml數(shù)據(jù)的模塊,可以和xml數(shù)據(jù)文件交換數(shù)據(jù),即實(shí)現(xiàn)了xml數(shù)據(jù)的讀取,寫(xiě)入,刪除,更新等操作,但數(shù)據(jù)庫(kù)本身并不是為xml數(shù)據(jù)設(shè)計(jì)的。

            當(dāng)前比較流行的數(shù)據(jù)庫(kù)oracleMs SQL SeverIBM DB2,Ms Access等都屬Enable-XML Database類(lèi)型。目前大部分關(guān)系數(shù)據(jù)庫(kù)都支持xml數(shù)據(jù)。關(guān)于Enable-XML Dabase數(shù)據(jù)庫(kù)產(chǎn)品,可以參考“XML Database Products_ XML-Enabled Databases.pdf”文檔。

            此類(lèi)數(shù)據(jù)由于底層實(shí)現(xiàn)模塊中并不是專(zhuān)為xml數(shù)據(jù)設(shè)計(jì),所以在使用xml文件數(shù)據(jù)時(shí)必須通過(guò)使用類(lèi)似ODBC、JDBC等接口程序進(jìn)行數(shù)據(jù)交換。接口程序把xml數(shù)據(jù)讀入數(shù)據(jù)庫(kù)并轉(zhuǎn)換成數(shù)據(jù)庫(kù)可以識(shí)別的數(shù)據(jù)格式后才能操作數(shù)據(jù),操作完的數(shù)據(jù)在通過(guò)接口程序轉(zhuǎn)換成xml數(shù)據(jù)格式,這使得執(zhí)行效率大幅降低。

            2xml數(shù)據(jù)庫(kù)(Native-XML Database):滿(mǎn)足一下3個(gè)條件的就是純xml數(shù)據(jù)庫(kù):

            1)、為xml文檔定義了一個(gè)邏輯模型,xml數(shù)據(jù)的存儲(chǔ)和查詢(xún)都基于這個(gè)模型。這個(gè)模型至少要包含元素、屬性以及PCDATA等,并保持文檔順序。

            2)、將xml文檔作為邏輯存儲(chǔ)的基本單位,正如關(guān)系數(shù)據(jù)庫(kù)將行作為存儲(chǔ)的基本單位一樣。

            3)、不要求只能使用某一特定的底層物理模型或某種專(zhuān)有的存儲(chǔ)格式。

            數(shù)據(jù)以純xml文件格式保存,存儲(chǔ)在數(shù)據(jù)庫(kù)中的內(nèi)容與原xml文件格式可以保持一致,數(shù)據(jù)庫(kù)引擎直接操作xml數(shù)據(jù)文件,并通過(guò)XPathXQuery檢索數(shù)據(jù)。相對(duì)于Enable-XML Database數(shù)據(jù)庫(kù),由于省去了數(shù)據(jù)轉(zhuǎn)換過(guò)程,在處理xml數(shù)據(jù)時(shí)相對(duì)效率較高。

               目前純xml數(shù)據(jù)庫(kù)產(chǎn)品或單獨(dú)的xml數(shù)據(jù)庫(kù)引擎也有許多,較有代表性的產(chǎn)品有dbXml、Berkeley DB XML。有代表性的xml數(shù)據(jù)庫(kù)引擎有eXistXindice等,本次所作的所有的分析與測(cè)試都是基于eXistXindice數(shù)據(jù)庫(kù)引擎。關(guān)于目前Native-XML Database數(shù)據(jù)庫(kù)產(chǎn)品的介紹可以參考“XML Database Products_ Native XML Databases.pdf”文件。

               Xml數(shù)據(jù)庫(kù)由于可以保持原xml文件的物理格式不變,并且可以按照原格式檢索,所以有時(shí)候純xml數(shù)據(jù)庫(kù)也被稱(chēng)作原生態(tài)數(shù)據(jù)庫(kù)。如果當(dāng)前有許多xml文件但文件又格式不盡相同的話(huà),使用xml數(shù)據(jù)庫(kù)是個(gè)不錯(cuò)的選擇,通過(guò)數(shù)據(jù)庫(kù)來(lái)管理這些xml文件。利用XPathXQuery也能夠更方便的查找數(shù)據(jù)。但是由于目前用于xml數(shù)據(jù)庫(kù)的一些操作沒(méi)有明確的標(biāo)準(zhǔn)導(dǎo)致xml數(shù)據(jù)庫(kù)的引擎各有不同。

             

            二、        xml數(shù)據(jù)庫(kù)的優(yōu)缺點(diǎn)

            Xml數(shù)據(jù)庫(kù)應(yīng)用還不是很廣泛,這一點(diǎn)我們從目前市場(chǎng)上的主要數(shù)據(jù)庫(kù)產(chǎn)品就可以看出來(lái)。大型數(shù)據(jù)庫(kù)沒(méi)有使用純xml數(shù)據(jù)庫(kù)的。至少在上面提到的產(chǎn)品列表文件中沒(méi)有見(jiàn)到大型數(shù)據(jù)庫(kù)的身影。但是這也并不代表xml數(shù)據(jù)庫(kù)沒(méi)有優(yōu)勢(shì)。下面將對(duì)純xml數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)做個(gè)比較。

            優(yōu)點(diǎn):

            1、可以直接操作xml文件,對(duì)于處理大量xml文件,純xml數(shù)據(jù)庫(kù)有著先天的優(yōu)勢(shì):不必轉(zhuǎn)換數(shù)據(jù)。這樣就減少了系統(tǒng)資源消耗。普通的關(guān)系數(shù)據(jù)庫(kù)在處理xml數(shù)據(jù)時(shí)必須通過(guò)xml接口處理程序來(lái)轉(zhuǎn)換數(shù)據(jù)。這方面xml數(shù)據(jù)庫(kù)的處理效率明顯高于關(guān)系數(shù)據(jù)庫(kù)。

            2、存儲(chǔ)在xml數(shù)據(jù)庫(kù)中文件可以保持原文件的物理格式不變。由于xml文件是自描述的,即文件內(nèi)部不僅包含了數(shù)據(jù)還包含了對(duì)這些數(shù)據(jù)的描述信息。比如數(shù)據(jù)結(jié)構(gòu)和類(lèi)型。如果數(shù)據(jù)描述信息較多,關(guān)系數(shù)據(jù)庫(kù)就顯得力不從心了。

            3、原生檢索方式,這時(shí)純xml數(shù)據(jù)庫(kù)獨(dú)有的特點(diǎn),即純xml數(shù)據(jù)庫(kù)允許用戶(hù)使用對(duì)未作任何格式轉(zhuǎn)變的數(shù)據(jù)直接檢索。這就使得同一檢索式可以同時(shí)檢索不同格式xml文件。原生檢索方式對(duì)于擁有大量不同格式的xml文件的用戶(hù)來(lái)說(shuō)是最好的檢索方式。

            4、以分層的樹(shù)形結(jié)構(gòu)描述數(shù)據(jù),能夠檢索各個(gè)結(jié)點(diǎn)。

            缺點(diǎn):

            1、數(shù)據(jù)冗余度高,由于xml文件中帶有大量非數(shù)據(jù)的內(nèi)容,也許這些內(nèi)容比數(shù)據(jù)本身還要多,不僅占用大量的磁盤(pán)空間,還會(huì)給操作文件帶來(lái)困難。假如你需要在一個(gè)1GB的文件中間頻繁插入或刪除數(shù)據(jù)。

            2、檢索效率低下,如果數(shù)據(jù)訪(fǎng)問(wèn)速度不高,檢索就可想而知了。前面提到的檢索效率高是指在xml數(shù)據(jù)庫(kù)中和關(guān)系數(shù)據(jù)庫(kù)中都只處理xml數(shù)據(jù)時(shí)。但相對(duì)于關(guān)系數(shù)據(jù)庫(kù)中的普通數(shù)據(jù)來(lái)說(shuō)。純xml數(shù)據(jù)庫(kù)還遠(yuǎn)達(dá)不到這樣的高效。這也是妨礙純xml數(shù)據(jù)廣泛應(yīng)用的的主要缺陷。曾有人使用eXist作過(guò)一些測(cè)試,測(cè)試過(guò)程中,如果在1GB大小的xml文件檢索一個(gè)數(shù)據(jù),所消耗的時(shí)間大概是煮一杯咖啡的時(shí)間。

            3、純xml數(shù)據(jù)庫(kù)的XQuery語(yǔ)言標(biāo)準(zhǔn)不完善,現(xiàn)在XQuery語(yǔ)言的中不支持插入、刪除、更新操作,即使是部分xml數(shù)據(jù)庫(kù)廠(chǎng)家提供了類(lèi)似功能,也不能得到廣泛的應(yīng)用,因?yàn)闆](méi)有標(biāo)準(zhǔn)。它不能夠像SQL那樣功能強(qiáng)大。也由于這個(gè)缺陷給開(kāi)發(fā)基于xml數(shù)據(jù)庫(kù)的應(yīng)用程序帶來(lái)更多風(fēng)險(xiǎn),只能針對(duì)某種數(shù)據(jù)庫(kù)開(kāi)發(fā),而且許多本應(yīng)由XQuery本身提供的功能,比如插入、刪除、更新功能不得不由應(yīng)用程序開(kāi)發(fā)人員開(kāi)發(fā)。

            三、           本次測(cè)試中所使用的純xml數(shù)據(jù)庫(kù)介紹

            本次測(cè)試中所使用的純xml數(shù)據(jù)庫(kù)有兩個(gè),分別是eXist 1.0版和Xindice 1.1B4版,都是目前最高版本。關(guān)于它們?nèi)绾伟惭b使用請(qǐng)參考文檔“eXist數(shù)據(jù)庫(kù).doc”和“Xindice數(shù)據(jù)庫(kù).doc”。這里只對(duì)最后測(cè)試結(jié)果作一簡(jiǎn)單的介紹。

             

            eXist

            Xindice

            安裝方便程度

            方便

            一般

            使用方便程度

            方便

            一般

            程序穩(wěn)定性

            不穩(wěn)定

            不穩(wěn)定

            1M數(shù)據(jù)中檢索

            少于1

            堆棧溢出

            10M

            索引前20秒,索引后3

            堆棧溢出

            100M

            堆棧溢出

            堆棧溢出

            300M

            堆棧溢出

            堆棧溢出

            500M

            堆棧溢出

            堆棧溢出

            800M

            堆棧溢出

            堆棧溢出

            1000M

            堆棧溢出

            堆棧溢出

             

             

             

            測(cè)試總結(jié):

            這兩個(gè)數(shù)據(jù)庫(kù)引擎非常不穩(wěn)定,而且性能不好。

             

            四、            選擇純xml數(shù)據(jù)庫(kù)還是關(guān)系數(shù)據(jù)庫(kù)?

            這是一個(gè)比較重要的問(wèn)題,雖然它們都是數(shù)據(jù)庫(kù),但是除了數(shù)據(jù)庫(kù)本身有許多不同之外,在使用上也是大不相同。在項(xiàng)目中使用哪種數(shù)據(jù)庫(kù)還需要慎重考慮,根據(jù)上面的數(shù)據(jù)庫(kù)的對(duì)比分析,大體可以總結(jié)一下在何種情況下使用哪種數(shù)據(jù)庫(kù):

            1、              如果當(dāng)前有許多xml文件,并且xml文件的格式不統(tǒng)一或者用表格的方法難以表示,那么這時(shí)最好選用純xml數(shù)據(jù)庫(kù)。

            2、              如果在以后的工作中會(huì)產(chǎn)生大量格式或半格式的xml文件,那么選用純xml數(shù)據(jù)庫(kù)較合適。

            3、              如果經(jīng)常使用xml文件作為數(shù)據(jù)交換格式,則選擇純xml數(shù)據(jù)庫(kù)較好。

            4              如果你的數(shù)據(jù)之間有較多的關(guān)聯(lián),就最好選用關(guān)系數(shù)據(jù)庫(kù)。純xml數(shù)據(jù)庫(kù)只能表示簡(jiǎn)單的數(shù)據(jù)關(guān)系

            5              如果對(duì)數(shù)據(jù)庫(kù)的性能要求較高的話(huà),最好使用關(guān)系數(shù)據(jù)庫(kù),關(guān)系數(shù)據(jù)庫(kù)已發(fā)展成熟,而純xml數(shù)據(jù)庫(kù)目前發(fā)展還不完善,比如,插入,刪除、更新操作還未有標(biāo)準(zhǔn)。

             

            posted on 2009-08-18 21:27 肥仔 閱讀(1082) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 數(shù)據(jù)庫(kù)

            一本大道久久香蕉成人网| 99久久这里只有精品| 久久香蕉国产线看观看99| 久久夜色精品国产噜噜亚洲AV| 伊人精品久久久久7777| 久久久99精品成人片中文字幕| 婷婷久久综合九色综合绿巨人| 久久久久四虎国产精品| 五月丁香综合激情六月久久| 久久人人添人人爽添人人片牛牛| 欧美一级久久久久久久大| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久99久久成人免费播放| 99久久精品国内| 91久久精品国产免费直播| 久久播电影网| 久久人人添人人爽添人人片牛牛 | 一本久久知道综合久久| 亚洲国产高清精品线久久| 色综合久久中文字幕综合网| 久久国产免费直播| 久久国产精品无码一区二区三区| 国产农村妇女毛片精品久久| 久久久久久一区国产精品| 亚洲国产日韩欧美久久| 久久免费视频1| 国产精品久久久久久福利69堂| 国产精品免费久久久久久久久| 久久久这里只有精品加勒比| 18岁日韩内射颜射午夜久久成人| 精品久久久久久国产91| 99国内精品久久久久久久| 久久精品国产免费观看| 国产精品va久久久久久久| 欧美精品福利视频一区二区三区久久久精品| 亚洲午夜久久久影院| 99久久精品免费观看国产| 亚洲国产一成人久久精品| 久久国产视屏| 99精品国产在热久久无毒不卡| 香蕉久久夜色精品国产尤物|