XML技術與數(shù)據(jù)庫的發(fā)展

相關專題: 中國聯(lián)通

摘要 簡要介紹了XML技術,探討XML與數(shù)據(jù)庫技術的關系,分析了原生XML數(shù)據(jù)庫,對國產(chǎn)數(shù)據(jù)庫的發(fā)展給予建議。

關鍵詞 XML 數(shù)據(jù)庫 NXD

0、前言

數(shù)據(jù)庫技術及其應用系統(tǒng)經(jīng)歷了從層次數(shù)據(jù)庫、網(wǎng)狀數(shù)據(jù)庫到關系數(shù)據(jù)庫以及面向?qū)ο髷?shù)據(jù)庫的發(fā)展,在傳統(tǒng)的商業(yè)和事務處理領域內(nèi)逐步成熟,取代了原有的基于文件系統(tǒng)的數(shù)據(jù)處理方式,成為計算機信息系統(tǒng)中的重要基礎和支柱。但隨著Internet的飛速發(fā)展,Web的出現(xiàn)改變了人們習慣的處理方式,也給數(shù)據(jù)庫技術提出了必須面對的重要問題:即如何有效地存儲和管理Web上的數(shù)據(jù)(文檔),使其既能被高效地操作和維護,又能在Internet平臺上方便地表示和交換。

XML技術自出現(xiàn)以來發(fā)展非常迅速,在許多領域內(nèi)得到廣泛的支持而有著廣闊的應用前景。例如電子數(shù)據(jù)交換、電子商務等更是將XML作為一種基礎性、支柱性的技術來看待。

1、數(shù)據(jù)庫簡史

數(shù)據(jù)庫系統(tǒng)是隨著計算機技術的不斷發(fā)展,在特定的歷史時期、特定的需求環(huán)境下出現(xiàn)的。在1946年的第一臺計算機到20世紀60年代這漫長的20年里,計算機操作系統(tǒng)主要局限于文件的操作,對數(shù)據(jù)的管理也主要是通過文件系統(tǒng)來實現(xiàn)。進行計算所需要的各種數(shù)據(jù)存放在各自的文件里,使用這些數(shù)據(jù)時將文件打開,讀取文件中的數(shù)據(jù)到內(nèi)存中,當計算完畢后,將計算結果仍舊寫入到文件中去,它的不足主要集中在無法對數(shù)據(jù)進行有效的統(tǒng)一管理。針對文件系統(tǒng)的重要缺點,人們逐步發(fā)展了以統(tǒng)一管理數(shù)據(jù)和共享數(shù)據(jù)為主要特征的系統(tǒng),即數(shù)據(jù)庫系統(tǒng)。1964年,美國通用電氣公司開發(fā)成功了世界上的第一個數(shù)據(jù)庫系統(tǒng)IDS(Integrated Data Store)。IDS奠定了網(wǎng)狀數(shù)據(jù)庫的基礎,并得到了廣泛的發(fā)行和應用,成為數(shù)據(jù)庫系統(tǒng)發(fā)展史上的一座豐碑。1969年,美國國際商用機器公司(IBM)也推出世界上第一個層次數(shù)據(jù)庫系統(tǒng)IMS(Information Management System),同樣在數(shù)據(jù)庫系統(tǒng)發(fā)展史上占有重要的地位。

70年代初,E.F.Codd在總結前面的層次、網(wǎng)狀數(shù)據(jù)庫優(yōu)缺點的基礎上,提出了關系數(shù)據(jù)模型的概念及關系代數(shù)和關系演算。在70年代,關系數(shù)據(jù)庫系統(tǒng)無論從理論上還是實踐上都取得了豐碩的成果。在理論上確立了完整的關系模型理論、數(shù)據(jù)依賴理論和關系數(shù)據(jù)庫的設計理論;在實踐上,世界上出現(xiàn)了很多著名的關系數(shù)據(jù)庫系統(tǒng),比較著名的如System R、INGRES、Oracle等。

與文件系統(tǒng)相比,數(shù)據(jù)庫系統(tǒng)有幾個方面的特點:向用戶提供高級的接口;向用戶提供非過程化的數(shù)據(jù)庫語言(即SQL語言);查詢的處理和優(yōu)化;并發(fā)控制;數(shù)據(jù)的完整性約束。

進入80年代之后,計算機硬件技術的飛速提高促使計算機應用不斷深入,產(chǎn)生了許多新的應用領域,例如計算機輔助設計、計算機輔助制造、計算機輔助教學、辦公自動化、智能信息處理、決策支持等。這些新的領域?qū)?shù)據(jù)庫系統(tǒng)提出了新的要求。但由于應用的多元化,不能設計出一個統(tǒng)一的數(shù)據(jù)模型來表示這些新型的數(shù)據(jù)及其相互關系,因而出現(xiàn)了百家爭鳴的局面,產(chǎn)生了演繹數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫、分布式數(shù)據(jù)庫、工程數(shù)據(jù)庫、時態(tài)數(shù)據(jù)庫、模糊數(shù)據(jù)庫等新型數(shù)據(jù)庫的研究和應用。

2、XML簡介

XML推薦標準1.0版發(fā)布于1998年2月,之后迅速在全球掀起了XML應用的浪潮。XML是一種描述型的標記語言,與HTML同為SGML(標準通用標記語言,ISO-8879國際標準)的一種應用。由于XML在可擴展性、可移植性和結構性等方面的突出優(yōu)點,它的應用范圍突破了HTML所達到的范圍。

一篇XML文檔由標記和內(nèi)容組成。XML中有六種標記:元素(elements)、屬性(attributes)、實體引用(entity references)、注釋(comments)、處理指令(processing instructions)和CDATA段(CDATA sections)。XML與HTML最顯著的不同是XML文檔中引入了“文檔類型聲明”(Document Type Declarations)。DTD使文檔可以與分析器交流關于它的內(nèi)容的元信息。DTD的出現(xiàn),賦予了XML文檔可擴展性、結構性和可驗證性,使XML具備了類似于數(shù)據(jù)庫的一些性質(zhì),可以利用XML來組織和管理信息;又可以與HTML一樣在瀏覽器中方便地表示,在Internet上高效地傳遞和交換?紤]到與HTML的兼容,DTD并不是XML文檔必需的成份。具有DTD的XML文檔稱作“Valid”,否則就是“Well-formed”。

目前,處理XML文檔的方式主要有SAX與DOM兩種。SAX(Simple API for XML)是一種基于流的、以事件處理方式工作的接口。SAX 2.0在2000年5月發(fā)布,增強了許多功能,包括對名字空間的支持。DOM(Document Object Model)則是在對XML文檔進行分析后,在內(nèi)存中建立起一個完整的樹結構,然后在此基礎上進行各種操作。簡單地比較來看,SAX對系統(tǒng)資源要求低、速度快,但對文檔的操作是只讀的;DOM的處理能力強大,但要求大量的系統(tǒng)資源,尤其是對于大的文檔。而后還出現(xiàn)了Xpath和Xpointer用以完成XML的搜索和轉(zhuǎn)換;XSL、XSLT和SOAP用以完成XML的遠程對象訪問,XML Query Languages的出現(xiàn)使XML查詢語言可用于任何XML文檔。

3、XML與數(shù)據(jù)庫

XML文件是數(shù)據(jù)的集合,它是自描述的、可交換的,能夠以樹型或圖形結構描述數(shù)據(jù)。XML提供了許多數(shù)據(jù)庫所具備的工具:存儲(XML文檔)、模式(DTD,XML schema,RE1AX NG等)、查詢語言(XQuery,XPath,XQL,XML-QL,QUILT等)、編程接口(SAX,DOM,JDOM)等。但XML并不能完全替代數(shù)據(jù)庫技術。XML缺少作為實用的數(shù)據(jù)庫所應具備的特性:高效的存儲、索引和數(shù)據(jù)修改機制;嚴格的數(shù)據(jù)安全控制;完整的事務和數(shù)據(jù)一致性控制;多用戶訪問機制;觸發(fā)器、完善的并發(fā)控制等。因此,盡管在數(shù)據(jù)量小、用戶少和性能要求不太高的環(huán)境下,可以將XML文檔用作數(shù)據(jù)庫,但卻不適用于用戶量大、數(shù)據(jù)集成度高以及性能要求高的作業(yè)環(huán)境。

隨著Web技術的不斷發(fā)展,信息共享和數(shù)據(jù)交換的范圍不斷擴大,傳統(tǒng)的關系數(shù)據(jù)庫也面臨著挑戰(zhàn)。數(shù)據(jù)庫技術的應用是建立在數(shù)據(jù)庫管理系統(tǒng)基礎上的,各數(shù)據(jù)庫管理系統(tǒng)之間的異構性及其所依賴操作系統(tǒng)的異構性,嚴重限制了信息共享和數(shù)據(jù)交換范圍;數(shù)據(jù)庫技術的語義描述能力差,大多通過技術文檔表示,很難實現(xiàn)數(shù)據(jù)語義的持久性和傳遞性,而數(shù)據(jù)交換和信息共享都是基于語義進行的,在異構應用數(shù)據(jù)交換時,不利于計算機基于語義自動進行正確數(shù)據(jù)的檢索與應用;數(shù)據(jù)庫屬于高端應用,需要昂貴的價格和運行環(huán)境。而隨著網(wǎng)絡和Internet的發(fā)展,數(shù)據(jù)交換的能力已成為新的應用系統(tǒng)的一個重要的要求。XML的好處是數(shù)據(jù)的可交換性(portable),同時在數(shù)據(jù)應用方面還具有如下優(yōu)點:(1)XML文件為純文本文件,不受操作系統(tǒng)、軟件平臺的限制;(2)XML具有基于Schema自描述語義的功能,容易描述數(shù)據(jù)的語義,這種描述能為計算機理解和自動處理;(3)XML不僅可以描述結構化數(shù)據(jù),還可有效描述半結構化,甚至非結構化數(shù)據(jù)。

4、XML文件的存儲

XML文件的存儲方式有三大類:(1)將文件存儲于文件系統(tǒng)(Storing Documents in the File System);(2)將文件存儲于BLOB(Storing Documents in BLOBs),利用數(shù)據(jù)庫的事務管理、安全、多用戶訪問等優(yōu)點。此外許多關系數(shù)據(jù)庫提供的檢索工具可以進行全文檢索、近似檢索、同義詞檢索和模糊檢索。其中某些工具將會支持XML,這樣就可消除將XML文件作為純文本檢索所帶來的問題。(3)將文件存儲于原生XML數(shù)據(jù)庫(Native XML Databases,NXD)。NXD是專用于存儲XML文件的數(shù)據(jù)庫,支持事務管理、安全、多用戶訪問、編程API和查詢語言等。與其它數(shù)據(jù)庫的唯一區(qū)別在于其內(nèi)部模型是基于XML的。其中,最重要的存儲方式當屬原生XML數(shù)據(jù)庫。

  4.1 原生XML數(shù)據(jù)庫

原生XML數(shù)據(jù)庫(Native XML Databases)為XML文檔定義了一個(邏輯)模型,并根據(jù)該模型存取文件。這個模型至少應包括元素、屬性、PCDATA和文件順序。其例子有XPath數(shù)據(jù)模型、XML In-foset以及DOM所用的模型和SAX 1.0的事件。它以XML文件作為其基本存儲單位,對底層的物理存儲模型沒有特殊要求。例如,它可以建在關系型、層次型或面向?qū)ο蟮臄?shù)據(jù)庫之上,或者使用專用的存儲格式,比如索引或壓縮文件。

NXD最適于存儲以文檔為中心的文件。這是由于NXD保留了文件、順序、處理指令、注釋、CDA-TA塊以及實體引用等,而支持XML的數(shù)據(jù)庫XED(XML-enabled database)無法做到。XED是在原有數(shù)據(jù)庫基礎上擴展了XML支持模塊,完成XML數(shù)據(jù)和數(shù)據(jù)庫之間的格式轉(zhuǎn)換和傳輸。從存儲粒度上,可以把整個XML文檔作為RDBMS表中一行,或把XML文檔進行解析后,存儲到相應的表格中。為了支持W3C的一些XML操作標準,Xpath、XED提供一些新的原語(如Oracle9iR2增加了一些數(shù)據(jù)包來操作XML數(shù)據(jù)等),并優(yōu)化了XML處理模塊。

NXD一般采用層次數(shù)據(jù)存儲模型,保持XML文檔的樹形結構,省掉了XML文檔和傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)轉(zhuǎn)換過程。NXD還適用于存儲“天然格式”為XML的文件,NXD還可以存儲半結構化數(shù)據(jù)、在某種特定情形下提高存取速度以及存儲沒有DTD的文件(良構的文件)。

4.2 原生XML數(shù)據(jù)庫的結構

原生XML數(shù)據(jù)庫的結構可分為兩大類:基于文本的和基于模型的。

基于文本的NXD(Text-Based Native XML Databases)將XML作為文本存儲。它可以是文件系統(tǒng)中的文件、關系數(shù)據(jù)庫中的BLOB或特定的文件格式;谖谋镜腘XD與層次結構的數(shù)據(jù)庫很相似,當存取預先定義好層次的數(shù)據(jù)時,它比關系數(shù)據(jù)庫更勝一籌。和層次結構的數(shù)據(jù)庫一樣,當以其它形式比如轉(zhuǎn)置層次存取數(shù)據(jù)時,NXD也會遇到麻煩。這個問題的嚴重程度尚未可知,很多關系數(shù)據(jù)庫都使用邏輯指針,使相同復雜度的查詢以相同的速度完成。

基于模型的NXD(Model-Based Native XML Databases)是根據(jù)文件構造一個內(nèi)部模型并存儲這個模型。有些數(shù)據(jù)庫將該模型存儲于關系型和面向?qū)ο蟮臄?shù)據(jù)庫中,例如在關系型數(shù)據(jù)庫中存儲DOM時,就會有元素、屬性、PCDATA、實體、實體引用等表格。其他數(shù)據(jù)庫使用了專為這種模型優(yōu)化了的存儲格式。使用專用存儲格式的基于模型的NXD如果以文件的存儲順序讀取文件,其性能與基于文本的NXD相似。

4.3 原生XML數(shù)據(jù)庫的特性

原生XML數(shù)據(jù)庫的特性(Features of Native XML Databases)有:(1)文件集(Document Collections),支持集合(Collection)的概念,其作用相當于關系數(shù)據(jù)庫中的表和文件系統(tǒng)中的文件夾。(2)查詢語言(Query Languages),最常用的有XPath(對多個文件的查詢作了擴充)和XQL,以及專有的查詢語言。(3)更新和刪除(Updates and Deletes),NXD對文件的更新和刪除方式從簡單的替換或刪除現(xiàn)有文件,到修改當前活動的DOM樹,以及用于指定如何修改文件片斷的語言。(4)事務、鎖定和并發(fā)(Transactions,Locking,and Concurrency),支持事務處理。鎖定通常是對整個文檔的,所以多用戶并發(fā)性相對較低。問題的大小取決于應用程序以及“文件”的構成。(5)原生數(shù)據(jù)庫提供應用程序接口API(Application Programming Interfaces,APIs)。(6)NXD的一個重要特性是它可以為XML文檔提供“往返車票(round-trip)”。可以將XML文件存放在NXD中,而且再取回“同樣的”文件。對于以文檔為中心的應用程序來說非常重要,因為CDATA部分、實體用法、注釋和處理指令是這些文檔不可缺少的組成部分。特別是對于法律和醫(yī)學文件,按規(guī)定這些文檔必須要保持原樣。(7)外部數(shù)據(jù)(Remote Data),某些NXD可包含有外部數(shù)據(jù),它來自存儲在數(shù)據(jù)庫中的文檔。通常這些數(shù)據(jù)通過OD-BC、OLE DB或JDBC從關系數(shù)據(jù)中取出,模型可以是基于表格的或?qū)ο?關系型映射。(8)支持元素和屬性的索引。

5、結論

XML技術的出現(xiàn),使數(shù)據(jù)處理從文件方式到數(shù)據(jù)庫系統(tǒng)再到文件方式的循環(huán),但新的文件方式已經(jīng)與最初的文件系統(tǒng)有了本質(zhì)的區(qū)別----格式化文檔。XML和關系數(shù)據(jù)庫在數(shù)據(jù)應用和數(shù)據(jù)管理方面各有優(yōu)勢。

一方面,我們要研究數(shù)據(jù)庫的新技術、探索數(shù)據(jù)庫的發(fā)展方向;另一方面,在數(shù)據(jù)庫的基本實現(xiàn)基礎上,添加必要的新技術是探索新數(shù)據(jù)庫的發(fā)展方向。

作者:劉斌 來源:中國聯(lián)通網(wǎng)站


微信掃描分享本文到朋友圈
掃碼關注5G通信官方公眾號,免費領取以下5G精品資料
  • 1、回復“YD5GAI”免費領取《中國移動:5G網(wǎng)絡AI應用典型場景技術解決方案白皮書
  • 2、回復“5G6G”免費領取《5G_6G毫米波測試技術白皮書-2022_03-21
  • 3、回復“YD6G”免費領取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復“LTBPS”免費領取《《中國聯(lián)通5G終端白皮書》
  • 5、回復“ZGDX”免費領取《中國電信5GNTN技術白皮書
  • 6、回復“TXSB”免費領取《通信設備安裝工程施工工藝圖解
  • 7、回復“YDSL”免費領取《中國移動算力并網(wǎng)白皮書
  • 8、回復“5GX3”免費領取《R1623501-g605G的系統(tǒng)架構1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息