熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

XML技術與數據庫的發展趨勢分析

2013-11-13 10:10:15  來源: .NET編程 

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

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

  數據庫簡史

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

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

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

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

  XML簡介

  XML推薦標准版發布於之後迅速在全球掀起了XML應用的浪潮XML是一種描述型的標記語言與HTML同為SGML(標准通用標記語言ISO國際標准)的一種應用由於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否則就是Wellformed

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

  XML與數據庫

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

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

  XML文件的存儲

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

  原生XML數據庫

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

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

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

  原生XML數據庫的結構

  原生XML數據庫的結構可分為兩大類基於文本的和基於模型的

  基於文本的NXD(TextBasedNativeXMLDatabases)將XML作為文本存儲它可以是文件系統中的文件關系數據庫中的BLOB或特定的文件格式基於文本的NXD與層次結構的數據庫很相似當存取預先定義好層次的數據時它比關系數據庫更勝一籌和層次結構的數據庫一樣當以其它形式比如轉置層次存取數據時NXD也會遇到麻煩這個問題的嚴重程度尚未可知很多關系數據庫都使用邏輯指針使相同復雜度的查詢以相同的速度完成

  基於模型的NXD(ModelBasedNativeXMLDatabases)是根據文件構造一個內部模型並存儲這個模型有些數據庫將該模型存儲於關系型和面向對象的數據庫中例如在關系型數據庫中存儲DOM時就會有元素屬性PCDATA實體實體引用等表格其他數據庫使用了專為這種模型優化了的存儲格式使用專用存儲格式的基於模型的NXD如果以文件的存儲順序讀取文件其性能與基於文本的NXD相似

  原生XML數據庫的特性

  原生XML數據庫的特性(FeaturesofNativeXML Databases)有()文件集(Document Collections)支持集合(Collection)的概念其作用相當於關系數據庫中的表和文件系統中的文件夾()查詢語言(Query Languages)最常用的有XPath(對多個文件的查詢作了擴充)和XQL以及專有的查詢語言()更新和刪除(Updates and Deletes)NXD對文件的更新和刪除方式從簡單的替換或刪除現有文件到修改當前活動的DOM樹以及用於指定如何修改文件片斷的語言()事務鎖定和並發(TransactionsLockingand Concurrency)支持事務處理鎖定通常是對整個文檔的所以多用戶並發性相對較低問題的大小取決於應用程序以及文件的構成()原生數據庫提供應用程序接口API(Application Programming InterfacesAPIs)()NXD的一個重要特性是它可以為XML文檔提供往返車票(roundtrip)可以將XML文件存放在NXD中而且再取回同樣的文件對於以文檔為中心的應用程序來說非常重要因為CDATA部分實體用法注釋和處理指令是這些文檔不可缺少的組成部分特別是對於法律和醫學文件按規定這些文檔必須要保持原樣()外部數據(Remote Data)某些NXD可包含有外部數據它來自存儲在數據庫中的文檔通常這些數據通過ODBCOLE DB或JDBC從關系數據中取出模型可以是基於表格的或對象關系型映射()支持元素和屬性的索引

  結論

  XML技術的出現使數據處理從文件方式到數據庫系統再到文件方式的循環但新的文件方式已經與最初的文件系統有了本質的區別格式化文檔XML和關系數據庫在數據應用和數據管理方面各有優勢

  一方面我們要研究數據庫的新技術探索數據庫的發展方向另一方面在數據庫的基本實現基礎上添加必要的新技術是探索新數據庫的發展方向


From:http://tw.wingwit.com/Article/program/net/201311/12776.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.