XML技術(shù)從誕生之日就預(yù)示了它輝煌的未來(lái),特別是隨著近一、兩年Web Service的蓬勃發(fā)展,XML越來(lái)越多地活躍在數(shù)據(jù)交換和存儲(chǔ)領(lǐng)域。
XML數(shù)據(jù)量指數(shù)級(jí)的增長(zhǎng),要求更有效的數(shù)據(jù)管理能力和更快、更精確的查詢(xún)。在傳統(tǒng)數(shù)據(jù)庫(kù)廠商宣布支持XML的同時(shí),一種新的數(shù)據(jù)庫(kù)技術(shù),Native XML DBMS(NXD)也已嶄露頭角,打破了RDBMS傳統(tǒng)數(shù)據(jù)庫(kù)一統(tǒng)天下的局面,為數(shù)據(jù)庫(kù)技術(shù)的研究提供了一次良好的發(fā)展契機(jī)。
本文將向您介紹XML和數(shù)據(jù)庫(kù)的關(guān)系,NXD的技術(shù)特點(diǎn),傳統(tǒng)數(shù)據(jù)庫(kù)和NXD的比較和NXD的現(xiàn)狀和前景。
XML和數(shù)據(jù)庫(kù)的關(guān)系
XML是數(shù)據(jù)庫(kù)嗎?
XML文檔具有"可自描述"、"無(wú)限嵌套"、"樹(shù)形結(jié)構(gòu)"等特點(diǎn),因此在某種意義上,一個(gè)XML文檔就是一個(gè)數(shù)據(jù)庫(kù)或其中的一張表。
下面所示的XML文檔Student.xml,描述了一個(gè)學(xué)生的信息:學(xué)號(hào)、姓名等。我們可以很方便的將其對(duì)應(yīng)于傳統(tǒng)RDBMS中一張二維表(table):標(biāo)簽student為行,標(biāo)簽id、name等作為列。
Student.xml
<student> <id>19803001</id> <name> <lastname>Johnson</lastname> <firstname>Jack</firstname> </name> <email>jack@ipedo.com</email> ... </student> |
我們可以把相關(guān)的XML文檔放在一個(gè)目錄下,利用文件系統(tǒng)來(lái)管理,提供查詢(xún)、更改、增刪操作。為更好地支持XML,W3C還制定了一些相關(guān)技術(shù),如:文檔模式(DTD、XML Schema),查詢(xún)語(yǔ)言(XPath、XQuery等),編程接口(DOM、SAX等),來(lái)方便開(kāi)發(fā)應(yīng)用程序。
但如果從更高的技術(shù)角度出發(fā),就會(huì)發(fā)現(xiàn),對(duì)XML文檔簡(jiǎn)單的文件管理是遠(yuǎn)遠(yuǎn)不夠的:低效拇媧⒆櫓⑺饕檠際酰惶峁┦攣瘛踩指椿疲薹ūVな蕕耐暾院鴕恢灤裕揮脅⒎⒖刂啤⒁浦補(bǔ)ぞ叩取?
數(shù)據(jù)庫(kù)在XML應(yīng)用中的角色
事實(shí)上,XML作為數(shù)據(jù)交換的標(biāo)準(zhǔn),更著重于統(tǒng)一數(shù)據(jù)格式,而不是提供數(shù)據(jù)庫(kù)的特性。因此在XML應(yīng)用中,數(shù)據(jù)庫(kù)作為數(shù)據(jù)管理的位置依然沒(méi)有改變。
XML數(shù)據(jù)本身的樹(shù)形結(jié)構(gòu)不同于關(guān)系模型中的二維表結(jié)構(gòu),這種差別反映在數(shù)據(jù)庫(kù)產(chǎn)品處理XML數(shù)據(jù)的技術(shù)上,形成兩大陣營(yíng):XML-Enabled DBMS(XED)和Native XML DBMS(NXD)。
XED是在原有數(shù)據(jù)庫(kù)基礎(chǔ)上擴(kuò)展了XML支持模塊,完成XML數(shù)據(jù)和數(shù)據(jù)庫(kù)之間的格式轉(zhuǎn)換和傳輸。從存儲(chǔ)粒度上,可以把整個(gè)XML文檔作為RDBMS表中一行,或把XML文檔進(jìn)行解析后,存儲(chǔ)到相應(yīng)的表格中。為了支持W3C的一些XML操作標(biāo)準(zhǔn),如XPath,XED提供一些新的原語(yǔ)(如Oracle9iR2增加了一些數(shù)據(jù)包來(lái)操作XML數(shù)據(jù)等),并優(yōu)化了XML處理模塊。
NXD則出現(xiàn)在XML數(shù)據(jù)處理領(lǐng)域內(nèi),一般采用層次數(shù)據(jù)存儲(chǔ)模型,保持XML文檔的樹(shù)形結(jié)構(gòu),省掉了XML文檔和傳統(tǒng)數(shù)據(jù)庫(kù)的數(shù)據(jù)轉(zhuǎn)換過(guò)程。詳見(jiàn)2。
兩種文檔類(lèi)型
“以數(shù)據(jù)為中心”(data-centric)
“以數(shù)據(jù)為中心”的XML文檔著重于文檔中的數(shù)據(jù),而非文檔格式,如航班信息、銷(xiāo)售定單、科學(xué)計(jì)算結(jié)果等。這種文檔的數(shù)據(jù)一般由機(jī)器產(chǎn)生,來(lái)源于傳統(tǒng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。主要應(yīng)用在電子商務(wù)、ERP、EAI等領(lǐng)域,集成不同數(shù)據(jù)源的數(shù)據(jù),交換信息。
“以數(shù)據(jù)為中心”的XML文檔具有以下特點(diǎn):
· 結(jié)構(gòu)化的數(shù)據(jù)
· 數(shù)據(jù)粒度大小適中
· 很少或沒(méi)有混和內(nèi)容(Mixed Content)
· 文檔順序(Document-order)不重要
student.xml就是一個(gè)典型的"以數(shù)據(jù)為中心"的XML文檔,記錄了學(xué)生的信息。每個(gè)學(xué)生的信息都很規(guī)整,而且粒度合適,同級(jí)元素(element)間的順序不重要,交換兩個(gè)同級(jí)元素(element)并不會(huì)破壞文檔的可讀性。
“以文檔為中心”(document-centric)
"以文檔為中心"的XML文檔主要是用來(lái)表示人類(lèi)自然語(yǔ)言描述的數(shù)據(jù),如電子郵件、書(shū)和用戶(hù)手冊(cè)。這種文檔具有更復(fù)雜的結(jié)構(gòu),一般不是機(jī)器自動(dòng)產(chǎn)生的。目前,Web上的大部分?jǐn)?shù)據(jù)都可以表示成這種文檔。
"以文檔為中心"的文檔具有以下特點(diǎn):
· 半結(jié)構(gòu)化或非結(jié)構(gòu)化的數(shù)據(jù)
· 較多的混和內(nèi)容(Mixed Content)
· 文檔順序(Document-order)重要
下面的products.xml就是典型的一個(gè)"以文檔為中心"的XML文檔。
products.xml
<Product> <Intro> The <ProductName>IPEDO Native XMLDB</ProductName> from <Developer> Ipedo,Inc.</Developer> is <Summary>like a true native XML Database, ...</Summary> </Intro> ... </Product> |
對(duì)于"以數(shù)據(jù)為中心"的XML文檔,XED可以方便地將其中的數(shù)據(jù)抽取,存儲(chǔ)在傳統(tǒng)數(shù)據(jù)庫(kù)中,但對(duì)于 "以文檔為中心"的XML文檔則顯得力不從心了。NXD由于無(wú)需在兩種模型之間轉(zhuǎn)換數(shù)據(jù),因此在處理"以文檔為中心"的XML文檔就很有優(yōu)勢(shì)。
NXD的技術(shù)特點(diǎn)
NXD是專(zhuān)門(mén)為存儲(chǔ)XML文檔設(shè)計(jì),也兼有一般數(shù)據(jù)庫(kù)的特性,例如支持事務(wù),并發(fā)控制,查詢(xún)語(yǔ)言,安全機(jī)制,二次開(kāi)發(fā)接口等。唯一的不同之處在于其內(nèi)部存儲(chǔ)模型是基于XML文檔樹(shù)形結(jié)構(gòu),而非關(guān)系模型。
Ronald Bourret在其"XML and Databases"一文中,對(duì)NXD有如下定義:
“NXD的邏輯模型建立在XML文檔,而非文檔中的數(shù)據(jù)之上,并根據(jù)它來(lái)存取數(shù)據(jù)。該模型至少包括元素(element)、屬性(Attribute)、PCDATA和文檔順序,例如XPath的數(shù)據(jù)模型……NXD的最小存儲(chǔ)單位是XML文檔,……”
一般認(rèn)為,NXD應(yīng)該具有以下幾個(gè)特性:文檔集合(Document Collection),查詢(xún)、更新,事務(wù)、鎖和并發(fā)控制、二次開(kāi)發(fā)接口等。
文檔集合
很多NXD產(chǎn)品都支持“文檔集合”的概念,就像文件系統(tǒng)中的一個(gè)目錄或RDBMS中的一張表,一個(gè)“文檔集合”把一類(lèi)文檔聚集在一起,方便用戶(hù)操作。集合級(jí)別上的查詢(xún)、修改操作都會(huì)反映到集合內(nèi)的每個(gè)文檔。
一般說(shuō)來(lái),一個(gè)“文檔集合”關(guān)聯(lián)一種模式。將文檔加入到有模式的"文檔集合"時(shí),會(huì)對(duì)要加入的文檔進(jìn)行模式檢查。只有符合"文檔集合"模式的文檔才可以加入。
不同于RDBMS中表必須具有模式,NXD還提供"無(wú)模式"的文檔集合,即將一個(gè)文檔放入該集合中時(shí),不必檢查該文檔的模式。"無(wú)模式"的文檔集合大大方便了用戶(hù)存儲(chǔ)格式很難統(tǒng)一,半結(jié)構(gòu)化的XML文檔。
查詢(xún)語(yǔ)言
XPath和XQuery是W3C推薦的針對(duì)XML文檔的查詢(xún)語(yǔ)言。目前大部分NXD產(chǎn)品都支持XPath,。另外還有一些NXD提供專(zhuān)有的查詢(xún)語(yǔ)言。
XPath是基于XML文檔樹(shù)形模型,給出從某個(gè)結(jié)點(diǎn)起的查詢(xún)路徑,搜索文檔。目前,XPath作為數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言還有不少缺陷:不能分組、排序、連接等。
而XQuery更像一種編程語(yǔ)言,支持循環(huán)等邏輯,支持分組、排序、連接等。相對(duì)于傳統(tǒng)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)SQL語(yǔ)句, XQuery在對(duì)XML數(shù)據(jù)的查詢(xún)方面,是一種功能更強(qiáng)大、更易于編程的方法。
事務(wù)、鎖和并發(fā)控制
幾乎所有的NXD都支持事務(wù)處理。但是,鎖的粒度通常比較大,對(duì)整個(gè)文檔的而不是對(duì)文檔片斷(Fragment)的,所以多用戶(hù)并發(fā)性的支持相對(duì)較低。具體的并發(fā)程度取決于應(yīng)用程序以及"文檔"的構(gòu)成。
二次開(kāi)發(fā)接口
幾乎所有NXD都提供編程接口:提供數(shù)據(jù)庫(kù)連接、瀏覽元數(shù)據(jù)、執(zhí)行查詢(xún)和返回結(jié)果的方法。返回結(jié)果通常是XML字符串、DOM樹(shù)、返回文檔的SAX解析器。如果查詢(xún)返回結(jié)果是多個(gè)文檔或文檔片斷(Fragment)的話,通常都會(huì)提供枚舉這些結(jié)果的方法。對(duì)于以Client/Server模式運(yùn)行的數(shù)據(jù)庫(kù)產(chǎn)品,還可以將結(jié)果通過(guò)網(wǎng)絡(luò)協(xié)議(如HTTP)回傳給客戶(hù)端。
Round-tripping
NXD一個(gè)重要特性是它為XML文檔提供了Round-tripping:可以將XML文檔存放在NXD中,而且再取回"同樣的"文檔。對(duì)于以"文檔為中心"的應(yīng)用程序來(lái)說(shuō)非常重要,因?yàn)橐妆?span lang="EN-US">XED忽略的CDATA部分、實(shí)體應(yīng)用、注釋和處理指令是這些文檔不可缺少的組成部分。特別是對(duì)于法律和醫(yī)學(xué)領(lǐng)域中格式不允許隨意竄改的數(shù)據(jù)文檔。
所有NXD都能夠在元素(element)、屬性(Attribute)、CDATA和文件順序的級(jí)別上為文檔提供Round-tripping,能達(dá)到的具體程度取決于數(shù)據(jù)庫(kù)產(chǎn)品。
更新和可持久化的DOM
大多數(shù)NXD對(duì)XML文檔的更新是通過(guò)其提供的API調(diào)用完成的,或者簡(jiǎn)單的替換整個(gè)文檔來(lái)實(shí)現(xiàn)的。某些NXD還提供了可持久化的DOM(Persistent DOM,PDOM):在某種持久性存儲(chǔ)介質(zhì)上實(shí)現(xiàn)了DOM模型,對(duì)PDOM所作的改變直接反映在數(shù)據(jù)庫(kù)中。由于PDOM樹(shù)是"現(xiàn)場(chǎng)"的,數(shù)據(jù)庫(kù)通常和應(yīng)用程序在同一個(gè)進(jìn)程空間。
傳統(tǒng)數(shù)據(jù)庫(kù)與NXD的比較
XED依靠傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)二三十年的積累,在與NXD競(jìng)爭(zhēng)的前期,占據(jù)了XML應(yīng)用市場(chǎng)的很大份額:在Intellor公司2001年3月份的調(diào)查報(bào)告中,XED的市場(chǎng)份額將近是NXD的3倍,約12億美元。NXD雖然出場(chǎng)較晚,但市場(chǎng)份額增長(zhǎng)速度卻非常強(qiáng)勁,在短短的3年中,已經(jīng)由1999年的2,300萬(wàn)美元發(fā)展到2001年的3.9億美元,并在今后兩年內(nèi)將保持200%的增長(zhǎng)率。目前,NXD主要應(yīng)用在制造業(yè)、生物醫(yī)藥、電信等領(lǐng)域。
通過(guò)對(duì)比XED和NXD技術(shù),我們可以更清楚地看到二者的差別,特別是反映到應(yīng)用領(lǐng)域。這一點(diǎn)對(duì)那些需要選擇數(shù)據(jù)庫(kù)開(kāi)發(fā)XML應(yīng)用的用戶(hù)非常有意義。
XED存取XML數(shù)據(jù)的技術(shù)特點(diǎn)
XED中這部分工作是由XML網(wǎng)關(guān)模塊完成,它處于用戶(hù)邏輯模塊和數(shù)據(jù)庫(kù)邏輯模塊之間,將傳統(tǒng)數(shù)據(jù)庫(kù)包裝起來(lái),給用戶(hù)提供了一個(gè)透明的XML數(shù)據(jù)源。
XED存取XML文檔面臨以下幾個(gè)技術(shù)難點(diǎn):
XML文檔模式和XED模式的映射為了把XML文檔存到XED中,我們必須將XML文檔的模式(DTD或XML Schema)映射到數(shù)據(jù)庫(kù)模式。同樣,將數(shù)據(jù)從XED取出來(lái)重新組合成XML文檔,要完成相反的操作。這種轉(zhuǎn)化發(fā)生在元素(element),屬性(attribute)和文本(text)上。由于XED注重的是數(shù)據(jù)而非格式,所以在這個(gè)過(guò)程中,XML文檔的大部分物理結(jié)構(gòu)(CDATA、實(shí)體等)和一部分邏輯結(jié)構(gòu)(處理指令、注釋等)都被忽略,而數(shù)據(jù)被保存。這種轉(zhuǎn)換可能會(huì)丟失信息,一個(gè)XML文檔存到XED里后再取出來(lái),可能會(huì)變成另外一種格式。相對(duì)于NXD提供的Round-tripping,XED只能在數(shù)據(jù)層面實(shí)現(xiàn)信息的保留。
對(duì)XML數(shù)據(jù)的查詢(xún)支持
由于XML文檔模式和XED模式很難保持一致,所以在存取過(guò)程中經(jīng)常用XSLT完成轉(zhuǎn)換。但XSLT非常耗時(shí),這會(huì)對(duì)查詢(xún)性能造成很大影響。所以較好的解決方法是XED提供一種查詢(xún)語(yǔ)言來(lái)返回XML文檔。
目前已經(jīng)有很多XED產(chǎn)品提供了這種語(yǔ)言,主要分三類(lèi):
基于模板(Template-Based)的查詢(xún)
這是目前RDBMS XED最流行的方法,將SQL語(yǔ)句嵌入到已寫(xiě)好的XML文檔模板中,在實(shí)際查詢(xún)時(shí)候用結(jié)果替換。
基于SQL(SQL-Based)的查詢(xún)
通過(guò)在SQL語(yǔ)句的實(shí)現(xiàn)中增加對(duì)XML的支持,完成對(duì)XML數(shù)據(jù)的查詢(xún)。例如Oracle9iR2中,增加了XMLTYPE類(lèi)型和一些新的函數(shù)包以支持XMLDB。
XML查詢(xún)
包括XPath和XQuery。與上面兩種不同,這種查詢(xún)是建立在XML文檔模型上。也就是說(shuō),如果XED要支持這種查詢(xún)方式,必須提供虛擬的XML文檔。基本上目前的XED只支持XPath。
數(shù)據(jù)類(lèi)型、空值,字符集等
在XML文檔和XED的轉(zhuǎn)換過(guò)程中,還會(huì)遇到數(shù)據(jù)類(lèi)型的匹配、空值和字符集處理等問(wèn)題。
XML文檔中除了不被解析的一些實(shí)體外,所有數(shù)據(jù)的類(lèi)型都以文本(text)來(lái)表示。在轉(zhuǎn)換過(guò)程中,可能會(huì)遇到類(lèi)型不匹配的問(wèn)題,諸如受到JDBC驅(qū)動(dòng)模塊的限制、日期的不同國(guó)際化表示。
XML文檔以靈活的方式來(lái)支持空值,如省略某個(gè)元素(element)、零長(zhǎng)度的元素(element)和屬性(Attribute)等。而這些在XED中則有不同的意義。
同樣問(wèn)題還出現(xiàn)在字符集、二進(jìn)制數(shù)據(jù)、對(duì)XML文檔標(biāo)簽的處理上。
XED和NXD的比較
- XED的優(yōu)、劣勢(shì)
優(yōu)勢(shì):
用戶(hù)不需要將傳統(tǒng)數(shù)據(jù)庫(kù)中原有數(shù)據(jù)重新移植到新系統(tǒng)中,只是稍加改變,就可以支持XML應(yīng)用。
傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù),例如并發(fā)控制、事務(wù)等,已經(jīng)很成熟
傳統(tǒng)數(shù)據(jù)庫(kù)知識(shí)和經(jīng)驗(yàn)依然有效,用戶(hù)不需要為了應(yīng)用XML而再去學(xué)習(xí)一套新的數(shù)據(jù)庫(kù)技術(shù)
劣勢(shì):
XML文檔存入到數(shù)據(jù)庫(kù)時(shí)需要將其"打碎",取出時(shí)需要"組合",不僅耗時(shí),而且文檔的格式可能會(huì)不同
XML文檔和數(shù)據(jù)庫(kù)之間的模式轉(zhuǎn)換復(fù)雜,在前期開(kāi)發(fā)階段需要投入很大
對(duì)"以文檔為中心"、格式復(fù)雜的XML文檔處理性能較差
在采納XML技術(shù)標(biāo)準(zhǔn)方面較落后
- NXD的優(yōu)、劣勢(shì)
優(yōu)勢(shì):
XML文檔存取無(wú)需模式轉(zhuǎn)換,存取速度快
對(duì)格式復(fù)雜的XML文檔支持比XED要好
支持大部分的最新的XML技術(shù)標(biāo)準(zhǔn)
劣勢(shì):
在傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)方面比較薄弱,沒(méi)有經(jīng)過(guò)時(shí)間的考驗(yàn)
知識(shí)比較新,相應(yīng)的支持人員和文檔資源都比較少
應(yīng)用范圍僅局限在XML應(yīng)用領(lǐng)域中
事實(shí)上,兩者的優(yōu)劣并沒(méi)有統(tǒng)一的答案,而是和具體的應(yīng)用相關(guān)。在開(kāi)發(fā)格式較簡(jiǎn)單、數(shù)據(jù)內(nèi)容比格式更重要的應(yīng)用時(shí),XED是不錯(cuò)的選擇,特別是在已有的傳統(tǒng)數(shù)據(jù)庫(kù)上要提供XML的訪問(wèn)接口的情況下。相反,如果XML文檔格式復(fù)雜,數(shù)據(jù)本身就有層次性關(guān)系,或是只有XML數(shù)據(jù)的時(shí)候,就可以考慮NXD,因?yàn)樗峁└玫男阅埽瑢?duì)XML標(biāo)準(zhǔn)有更完備的支持。另外,由于NXD在事務(wù)、數(shù)據(jù)恢復(fù)等傳統(tǒng)數(shù)據(jù)庫(kù)技術(shù)方面還未得到時(shí)間的檢驗(yàn),因此對(duì)數(shù)據(jù)安全要求較高的一些應(yīng)用,如銀行、金融系統(tǒng)的數(shù)據(jù)庫(kù),建立在傳統(tǒng)數(shù)據(jù)庫(kù)上的XED相對(duì)來(lái)說(shuō)更有優(yōu)勢(shì)。
NXD的現(xiàn)狀和前景
在3、4年前IT業(yè)界還在為應(yīng)該選用NXD還是傳統(tǒng)數(shù)據(jù)庫(kù)爭(zhēng)的不可開(kāi)交時(shí)候,就已經(jīng)有一些公司悄悄地投入到NXD的開(kāi)發(fā)中。到今天,已有了十多種NXD產(chǎn)品。IBM,Microsoft和Oracle等傳統(tǒng)數(shù)據(jù)庫(kù)廠商,也正在踏入NXD的領(lǐng)域。
但走在NXD隊(duì)伍前面的卻是一些"小"公司。PC Magazine在2002年6月份,針對(duì)市場(chǎng)上的4種主流產(chǎn)品做了詳細(xì)評(píng)測(cè),包括性能、安全、易用性和對(duì)新技術(shù)的支持等。這4種產(chǎn)品是eXcelon的Extensible Information Server 3.1,Ipedo的Ipedo XML Database 3.0,NeoCore的NeoCore XMS 2.0和Software AG的Tamino XML Server 3.1,其中Ipedo XML Database 3.0以滿(mǎn)分5分獲"Editor Choice"獎(jiǎng)。下面我們以Ipedo XML Database 3.0(IXD3)為例,窺探一下NXD技術(shù)的現(xiàn)狀。
IXD3支持
· 事務(wù)、并發(fā)控制,提供可靠的數(shù)據(jù)恢復(fù)機(jī)制
· 支持XPath和XQuery兩種查詢(xún)和In-memory的高速索引
· 基于圖形和命令行的用戶(hù)界面,并提供了各種工具,如導(dǎo)入/導(dǎo)出,備份等
· 支持XML文檔的多版本控制
· 支持DOM、SOAP、COM、EJB和Java API多種數(shù)據(jù)庫(kù)訪問(wèn)協(xié)議和開(kāi)發(fā)接口
· 多種平臺(tái):Windows,Linux和Solaris;
在去年7月份發(fā)布的IXD3.1版本中,還提供基于ACL的安全控制、WEB_DAV等新功能,并集成了內(nèi)容管理模塊,為基于Web Service等新技術(shù)的應(yīng)用提供了一整套解決方案。詳細(xì)介紹請(qǐng)參閱[2]。
可見(jiàn),NXD發(fā)展到今天,技術(shù)已經(jīng)日趨成熟,不僅提供傳統(tǒng)數(shù)據(jù)庫(kù)絕大部分功能,而且支持XML的最新技術(shù)標(biāo)準(zhǔn),非常方便XML開(kāi)發(fā)人員進(jìn)行開(kāi)發(fā)。最近在對(duì)Ipdeo XMLDB3.1、Tarmino3.0和Oracle9iR2內(nèi)嵌的XMLDB的測(cè)試過(guò)程中,筆者發(fā)現(xiàn)NXD在開(kāi)發(fā)XML應(yīng)用方面不僅開(kāi)發(fā)速度快,而且提供了更為豐富的API接口。
同時(shí)我們也應(yīng)該看到,NXD技術(shù)發(fā)展時(shí)間相對(duì)傳統(tǒng)數(shù)據(jù)庫(kù)來(lái)說(shuō)還很短,技術(shù)基礎(chǔ)還不是很牢固。在某些XML應(yīng)用方面,NXD并不具有比XED很明顯的優(yōu)勢(shì),特別是在對(duì)數(shù)據(jù)安全要求很高的數(shù)據(jù)庫(kù)應(yīng)用領(lǐng)域。
但NXD在處理XML數(shù)據(jù)時(shí)擁有傳統(tǒng)數(shù)據(jù)庫(kù)所不能比擬的天生優(yōu)勢(shì),已促使越來(lái)越多的目光聚焦到它上面。隨著時(shí)間的推移,相信NXD也會(huì)得到檢驗(yàn)。面對(duì)未來(lái)幾年巨大的市場(chǎng)份額,以及它每年200%的增長(zhǎng)速度,我們沒(méi)有理由不為它的前景看好。
參考資料:
關(guān)于XML數(shù)據(jù)庫(kù)的資料:http://www.rpbourret.com/xml/XMLDBLinks.htm
Oracle XML數(shù)據(jù)庫(kù)的資料:http://www.oracle.com/ip/index.html?xmldb_intro.html
Ipedo數(shù)據(jù)庫(kù)的介紹:http://www.ipedo.com 或 http://www.ipedo.com.cn
關(guān)于作者
朱亮,現(xiàn)任Ipedo中國(guó)(上海)研發(fā)中心高級(jí)軟件工程師,從事IPEDO Native XML數(shù)據(jù)庫(kù)的開(kāi)發(fā)。對(duì)數(shù)據(jù)庫(kù)、XML、WebService等技術(shù)有較深研究,可以通過(guò)leon@ipedo.com與他聯(lián)系。