摘要:XML數(shù)據(jù)庫是數(shù)據(jù)庫研究的熱點(diǎn),本文首先簡(jiǎn)要介紹了XML技術(shù)及其特點(diǎn)和優(yōu)越性,詳細(xì)分析和介紹了基于XML技術(shù)的數(shù)據(jù)庫管理系統(tǒng)的建立、存儲(chǔ)機(jī)制、傳輸技術(shù)、查詢等關(guān)鍵技術(shù)。
關(guān)鍵詞:XML;數(shù)據(jù)庫;存儲(chǔ);查詢
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2008)09-11578-02
Application of XML Technology in Database System Administration
GUO Hao
(Zhoushan Subsidiary company of Zhejiang mobile communication company,Zhoushan316000,China)
Abstract: The XML database was the key point of database research, This article first briefly introduced the XML technology and its characteristic and the superiority, Analysied and introduced the database management system's establishment, the memory mechanism, the transmission technology, the inquiry and so on which were based on the XML technology on detail.
Key words: XML; Database; Memory; Inquiry
信息已經(jīng)成為現(xiàn)代企業(yè)生產(chǎn)和運(yùn)營(yíng)不可或缺的組成部分。對(duì)信息和數(shù)據(jù)在網(wǎng)絡(luò)環(huán)境下集成與共享的需求也日益迫切。隨著應(yīng)用對(duì)信息和數(shù)據(jù)需求量的不斷增加,將原來單一的數(shù)據(jù)統(tǒng)合起來,進(jìn)行集中分析和操作成為必然的趨勢(shì)。XML是為了用來對(duì)信息進(jìn)行描述而設(shè)計(jì)的一種新語言,XML是SGML(標(biāo)準(zhǔn)通用標(biāo)記語言)的子集,它并不是類似于HTML的預(yù)定義標(biāo)識(shí)語言,而是用于定義其他標(biāo)識(shí)語言的一種元語言,XML能夠使編程者輕松自如地完成許多有趣的事情,但XML并不是編程語言,也不是基于對(duì)象的平臺(tái),更不是操作系統(tǒng),它是一種能夠思考、交換和表示數(shù)據(jù)的,獨(dú)立于平臺(tái)的,強(qiáng)大而精巧的技術(shù)。它的出現(xiàn),使得統(tǒng)一不同數(shù)據(jù)庫模式成為可能。本文分析了XML技術(shù)的優(yōu)勢(shì)與特點(diǎn),詳細(xì)敘述了其在數(shù)據(jù)庫系統(tǒng)管理平臺(tái)的設(shè)計(jì)思想和實(shí)現(xiàn)技術(shù),結(jié)合實(shí)際的應(yīng)用項(xiàng)目驗(yàn)證了無模式XML數(shù)據(jù)管理平臺(tái)。
1 XML技術(shù)的優(yōu)勢(shì)與特點(diǎn)
1.1 適合于異構(gòu)數(shù)據(jù)庫間的數(shù)據(jù)傳遞
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的普及和Web技術(shù)的廣泛應(yīng)用,不同平臺(tái)上數(shù)據(jù)庫之間的數(shù)據(jù)傳遞也越來越頻繁。這種數(shù)據(jù)傳遞面臨的技術(shù)困難是數(shù)據(jù)庫之間的結(jié)構(gòu)不同以及數(shù)據(jù)庫所處平臺(tái)的不同,使得數(shù)據(jù)傳遞不能直接進(jìn)行,必須使用某種中間媒介進(jìn)行過渡。對(duì)這種媒介的基本要求是:不受操作系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的限制,即獨(dú)立于平臺(tái)。XML以其優(yōu)良的性能成為這種中間媒介的首選。同時(shí)充分利用XML技術(shù),對(duì)外部系統(tǒng),提供統(tǒng)一XML格式文件,對(duì)內(nèi)部系統(tǒng),統(tǒng)一接口方法,可以徹底解決數(shù)據(jù)轉(zhuǎn)換問題。
1.2 簡(jiǎn)單
XML的規(guī)范簡(jiǎn)單,其設(shè)計(jì)原則是希望與其相關(guān)軟件能具有高度的兼容性,且降低相關(guān)應(yīng)用程序撰寫的難度。XML采取一般計(jì)算機(jī)語言的語法,清晰易懂,同時(shí)XML是一個(gè)開放性標(biāo)準(zhǔn),不隸屬于任何一個(gè)公司或團(tuán)體。任何研究單位與公司都可以獲得XML,并以此為標(biāo)準(zhǔn)進(jìn)行開發(fā)。
1.3 可擴(kuò)展性
XML的可擴(kuò)展性從多個(gè)方面表現(xiàn)出來。首先,它不像HTML那樣受限于固定的詞匯集,允許為特定的應(yīng)用和行業(yè)使用XML定義專門的詞匯集。其次,與采用其它格式的應(yīng)用系統(tǒng)相比,只要結(jié)構(gòu)的改變只牽扯到添加、處理或應(yīng)用XML格式的應(yīng)用程序,則XML具有更強(qiáng)的抗變化能力。這樣的靈活性在其它數(shù)據(jù)格式中并不多見,這也是使用XML的顯著優(yōu)越性之一。XML沒有綁定到任何程序設(shè)計(jì)語言、操作系統(tǒng)或軟件銷售商上。事實(shí)上,使用各種各樣的程序設(shè)計(jì)語言都可以相當(dāng)直接地創(chuàng)建和使用XML。與平臺(tái)無關(guān)的特性使得XML成為非常有用的工具,在不同的程序設(shè)計(jì)平臺(tái)和操作系統(tǒng)之間達(dá)到交互操作的目的。
1.4 可控制管理
XML不僅可以描述結(jié)構(gòu)化數(shù)據(jù),還可以有效地描述半結(jié)構(gòu)化甚至非結(jié)構(gòu)化的數(shù)據(jù)。以XML為基礎(chǔ)結(jié)構(gòu)的數(shù)據(jù)庫,不但可以保存XML格式的數(shù)據(jù),還可以保存各種數(shù)據(jù)格式,包括關(guān)系數(shù)據(jù)庫表的數(shù)據(jù),以及圖形、圖像、影片、聲音等二進(jìn)制的數(shù)據(jù)。同時(shí)XML可通過類似數(shù)據(jù)庫的操作技巧來使用該份文件,可作為簡(jiǎn)易的網(wǎng)絡(luò)數(shù)據(jù)庫使用
1.5 其他
XML為純文本文件,不受操作系統(tǒng)、軟件平臺(tái)、數(shù)據(jù)庫的異構(gòu)性限制。XML使用者可以定制屬于自己的標(biāo)簽與文件架構(gòu),并且可以提供給其它使用者采用。對(duì)于同一份內(nèi)容,使用者只需要新建一次便可以使用多次,且通過傳輸可與其它對(duì)文件有需求的單位共享資料。可降低重復(fù)數(shù)據(jù)的傳輸,強(qiáng)化網(wǎng)絡(luò)資源的使用效率。
2 基于XML技術(shù)的數(shù)據(jù)庫管理系統(tǒng)的構(gòu)建
2.1 建立XML數(shù)據(jù)庫
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的建立,其思路是高層數(shù)據(jù)以對(duì)象形式出現(xiàn),底層數(shù)據(jù)由關(guān)系型數(shù)據(jù)庫組織。而XML數(shù)據(jù)庫是采用關(guān)系數(shù)據(jù)庫反映應(yīng)用數(shù)據(jù)集根節(jié)點(diǎn)的子節(jié)點(diǎn),而由XML組織根節(jié)點(diǎn)的各個(gè)子樹的內(nèi)容,形成數(shù)據(jù)對(duì)象,把由XML描述的數(shù)據(jù)組織在關(guān)系數(shù)據(jù)庫中,這樣的數(shù)據(jù)無論存儲(chǔ)形式還是表現(xiàn)形式都是結(jié)構(gòu)化的,無需再作數(shù)據(jù)分析。建立步驟簡(jiǎn)述如下:(1)建立元數(shù)據(jù)庫:將元數(shù)據(jù)的每個(gè)元素用XML標(biāo)記。若某元數(shù)據(jù)有多個(gè)元素,則分別置標(biāo),然后作為一個(gè)字符串存放于相應(yīng)字段中。由于標(biāo)記后的XML元素已成為獨(dú)立的對(duì)象,因此可以通過對(duì)象屬性的設(shè)置表示元數(shù)據(jù)的特殊含義;(2)建立文本對(duì)象數(shù)據(jù)庫:對(duì)于圖象、音頻、視頻等對(duì)象可以無需用XML置標(biāo).文本必須被XML置標(biāo)。根據(jù)內(nèi)容結(jié)構(gòu)將元數(shù)據(jù)分解為若干個(gè)對(duì)象裝入數(shù)據(jù)庫,同時(shí)在Catalog字段設(shè)置對(duì)象的ID和TiTle。這樣用戶可以通過查看Catalog選擇需要的部分。當(dāng)用戶查看某個(gè)對(duì)象的內(nèi)容時(shí),可通過ID和TiTie選擇子對(duì)象。
2.2 存儲(chǔ)數(shù)據(jù)
目前,XML主流的存儲(chǔ)方式有兩種,一種是基于文本方式的存儲(chǔ),即把XML作為文本存儲(chǔ),它可以是文件系統(tǒng)中的文件、關(guān)系數(shù)據(jù)庫中特定的文件格式。這種存儲(chǔ)方式對(duì)于恢復(fù)整個(gè)XML文檔很簡(jiǎn)單,因?yàn)樗恍枰亟浣Y(jié)構(gòu),但是對(duì)于查詢或恢復(fù)小部分的文檔片段效率很低,需要讀取和解析整個(gè)文檔。另一種是基于模型方式存儲(chǔ)?;谀P头绞绞侵笇?shù)據(jù)的概念模型轉(zhuǎn)換成物理存儲(chǔ)模型。有些數(shù)據(jù)庫將該模型存儲(chǔ)于關(guān)系型和面向?qū)ο蟮臄?shù)據(jù)庫中,例如在關(guān)系型數(shù)據(jù)庫中存儲(chǔ)DOM時(shí),就會(huì)有元素、屬性、PCDATA、實(shí)體、實(shí)體引用等表格。有些數(shù)據(jù)庫使用了專為這種模型作了優(yōu)化的專有存儲(chǔ)格式。
2.3 XML與數(shù)據(jù)庫之間的數(shù)據(jù)操作
XML的主要作用是為不同數(shù)據(jù)庫和數(shù)據(jù)存儲(chǔ)之間傳遞數(shù)據(jù)和顯示數(shù)據(jù),XML與數(shù)據(jù)庫之間的數(shù)據(jù)操作可以分為XML向數(shù)據(jù)庫輸人數(shù)據(jù)、數(shù)據(jù)庫中的數(shù)據(jù)以XML形式輸出。(1)XML向數(shù)據(jù)庫輸人數(shù)據(jù):可以使用DOM對(duì)象將XML文檔存人數(shù)據(jù)庫。表文件對(duì)象模型(DOM)提供了一種訪問和操XM文件的方法。比如在Microsoft IE5.0中包含了Microsoft XML2.0類庫,其中包含了各種DOM對(duì)象??梢栽贏SP中引用這些對(duì)象,從而實(shí)現(xiàn)XML與數(shù)據(jù)庫的交互;(2)數(shù)據(jù)的XML形式的輸出:ADO是ASP的內(nèi)置組件.它的特征是有一對(duì)新對(duì)象Record和Stream可以實(shí)現(xiàn)數(shù)據(jù)的XML形式的輸出。用ADO實(shí)現(xiàn)從數(shù)據(jù)庫中讀取XML格式數(shù)據(jù)的處理步驟是:首先從數(shù)據(jù)庫中取出數(shù)據(jù),存人記錄集RS中。創(chuàng)建Stream對(duì)象,由RecordSet生成XML格式的Stream,參數(shù)adPersistXML是生成XML格式的Stream的關(guān)鍵。然后將RecordSet中的數(shù)據(jù)轉(zhuǎn)換成XML,用Stream的ReadText方法生成XML文本SzXML。
2.4 XML數(shù)據(jù)的查詢
在基于關(guān)系數(shù)據(jù)庫的XML數(shù)據(jù)庫中查詢數(shù)據(jù)。就是把關(guān)系表中的數(shù)據(jù)以XML文檔的形式發(fā)布出來?;陉P(guān)系存儲(chǔ)的XML查詢最終都要將XML查詢轉(zhuǎn)化為SQL查詢,并將SQL查詢得到的平坦表形式的結(jié)果再轉(zhuǎn)化為XMI 文檔返回給用戶或應(yīng)用。由于XML查詢語言比SQL要復(fù)雜的多,它們一般通過路徑表達(dá)式來對(duì)XML文檔中的嵌套結(jié)構(gòu)進(jìn)行查詢,而且路徑表達(dá)式中可以包含各種查詢軸和謂詞。謂詞中又可以包含路徑表達(dá)式、操作符和函數(shù)等,因此轉(zhuǎn)換XML查詢?yōu)镾QL查詢是一個(gè)挑戰(zhàn),這種轉(zhuǎn)換技術(shù)及其實(shí)現(xiàn)性能對(duì)于基于關(guān)系的XML數(shù)據(jù)庫的發(fā)展前途可以起決定性的作用。目前,針對(duì)XML文檔和頁面的查詢多采用XQL實(shí)現(xiàn),XQL是ATT實(shí)驗(yàn)室提出的一種基于XML的半結(jié)構(gòu)數(shù)據(jù)的查詢語言,它能夠通過查詢從XML文檔中抽取信息,能夠在不同的DTD之間翻譯XML數(shù)據(jù)。同時(shí),它也能夠從多個(gè)XMI 文檔中進(jìn)行數(shù)據(jù)結(jié)合,對(duì)XML文檔進(jìn)行查詢、構(gòu)造、轉(zhuǎn)換和集成,XQL方案的作者按照數(shù)據(jù)庫的思路來解決問題,采用了用于訪問層次型數(shù)據(jù)庫的相同技術(shù),XQL與SQL語言很相似,有類似SELECT-FR0M-WHERE的查詢結(jié)構(gòu)。但是,XQL有一些很重要的區(qū)別于SQL語言的特點(diǎn),XQL的WHERE子旬由模式和條件表達(dá)式兩部分組成,這意味著滿足條件的數(shù)據(jù)項(xiàng)不僅要滿足條件表達(dá)式,而且數(shù)據(jù)項(xiàng)的類型和值必須與指定的模式匹配,引入模式匹配是XQL區(qū)別于SQL的最大特點(diǎn)。
總之,XML技術(shù)是近幾年才發(fā)展起來的,在各個(gè)領(lǐng)域以及各個(gè)行業(yè)都具有十分巨大的潛力。但是與傳統(tǒng)的系據(jù)庫技術(shù)相比,很多技術(shù)還不成熟,在規(guī)范化,引用完整性、安全機(jī)制等方面的研究工作才剛起步。但是隨著XML技術(shù)的不斷完善與發(fā)展,XML同數(shù)據(jù)庫結(jié)合必將會(huì)實(shí)現(xiàn)更強(qiáng)大的功能。
參考文獻(xiàn):
[1] 趙輝,陶世群,李麗萍.一種基于XML 的異構(gòu)數(shù)據(jù)源集成的方法與實(shí)現(xiàn)[J].山西大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,28(1):33-36.
[2] 李軍懷,周明全,耿國(guó)華,等.XML在異構(gòu)數(shù)據(jù)集成中的應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用,2002,22(9):10-12.
[3] 孟小峰,周龍?bào)J,王珊,數(shù)據(jù)庫技術(shù)發(fā)展趨勢(shì)[J].軟件學(xué)報(bào),2004,21(4).
[4] 方美琪.XML及其在電子商務(wù)中的應(yīng)用.清華大學(xué)出版社.2003:56-59.
[5] 游明坤.淺談XML在數(shù)據(jù)庫中的應(yīng)用技術(shù)[J].電腦知識(shí)與技術(shù),2004,(23):19-21.
[6] 王春枝,紀(jì)利群.利用XML實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫間互訪[J].微型機(jī)與應(yīng)用,2002,(8).
[7] 張素智,盧正鼎,李春林.XML數(shù)據(jù)庫及其應(yīng)用研究[J].計(jì)算機(jī)工程與應(yīng)用,2002(8):33-36.
[8] 李由,肖衛(wèi)東,徐振寧,等.XML數(shù)據(jù)庫存儲(chǔ)技術(shù)的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2002(7):86-88.
[9] 徐建平.XML與數(shù)據(jù)庫的交互技術(shù)和方法[J].信息系統(tǒng),2003(1):67-68.