當前位置:編程學習大全網 - 編程語言 - XML與關系數據庫的關系?

XML與關系數據庫的關系?

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

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

1、數據庫簡史

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

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

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

進入80年代之後,計算機硬件技術的飛速提高促使計算機應用不斷深入,產生了許多新的應用領域,例如計算機輔助設計、計算機輔助制造、計算機輔助教學、辦公自動化、智能信息處理、決策支持等。這些新的領域對數據庫系統提出了新的要求。但由於應用的多元化,不能設計出壹個統壹的數據模型來表示這些新型的數據及其相互關系,因而出現了百家爭鳴的局面,產生了演繹數據庫、面向對象數據庫、分布式數據庫、工程數據庫、時態數據庫、模糊數據庫等新型數據庫的研究和應用。

2、XML簡介

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

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

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

3、XML與數據庫

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

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

4、XML文件的存儲

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

4.1原生XML數據庫

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

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

  • 上一篇:面試前要準備的第壹件事就是寫簡歷,程序員如何寫壹份更好的簡歷?
  • 下一篇:鋼結構技術員的崗位職責
  • copyright 2024編程學習大全網