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

XML +SQL=數據庫的未來?

2013-11-13 12:41:50  來源: SQL語言 

  XML標准和文檔的出現為關系數據庫出了一道難題以訪問二維表數據為主的SQL和XML的結合就成了一條中和之路於是乎漫長的SQL/XML結合之旅開始了

  隨著新XML文檔規范的問世廠商正在加大在RDBMS(關系型數據庫管理系統)中對XML支持的力度

  當XML五年前推出時它所具有的改寫數據管理規則的前景引起了關系型數據庫廠商的注意不過他們並沒有恐慌十年前就經歷過這一幕當時對象數據庫被人們賦予了范例改變者的作用這種新軟件規范的確出現了並普及了持久性概念即無需費勁地轉換關系表格就能保存和檢索編程語言對象的能力但結果是RDBMS學會了新把戲那就是找到了如何利用SQL:對象模型保存復雜的數據類型的辦法現在已經有了用於關系型數據庫和對象數據庫的JDO(Java 數據對象)應用微軟表示即將推出的Yukon版SQL Server將能夠保持Net對象

  吸收了對象後RDBMS廠商現在正為吸收XML文檔而努力工作不過不要指望歷史能夠簡單重演我們都知道運營企業的大部分信息存儲在我們創建和交換的文檔中這些文檔很少被保存在企業數據庫中既然XML既可以代表我們看到和接觸到的文檔(如采購訂單)又可以代表在Web服務網絡上交換這些文檔的信息因此我們的數據庫能否保存和管理XML文檔比以往更加至關重要一枚真正的重磅炸彈正在制造中沒人准確知道它將生產什麼影響但是目前可以分析它做出一些有根據的猜測

  SQL/XML結合之旅第一步

  漫長的SQL/XML結合之旅第一步是將關系型數據作為XML格式發布XML發布是合乎邏輯的起點因為它可以容易地在XML中代表SQL結果集合因為那麼多的動態網頁都是由SQL查詢來提供的傳統的方法要求用程序訪問結果集合和用程序構建網頁新方法以完全公布的方式制作動態網頁利用SQLtoXML查詢生成數據的XML表示並利用XSLT(可擴展樣式表語言轉換)將XML溶入到HTML中

  最初這些虛擬文檔是利用專有的SQL擴展來創建的現在有了一種叫做SQL/XML的新ISO/ANSI標准這項標准定義了一種通用的方法目前SQL/XML得到了Oracle和DB的支持它定義了用於這些產品中的本機XML數據類型的面向XML的操作符SQL Server現在還不支持XML數據類型或SQL/XML擴展微軟定於年推出的Yukon將支持它們

  存儲文檔的方式

  企業中的大多數信息保存在存儲文檔中而不是關系型數據庫中將這些文檔輸入到數據庫中的理由始終存在那就是集中式管理和全文本搜索但是在缺少一種將文檔中的數據與數據庫中的數據建立關系方法的情況下這些理由不具有說服力而XML則為人們提供了論據

  當企業文檔從已有格式映射到XML時(這是一條才剛剛開始的漫長路程)將兩種風格的數據建立關系成為了可能比如說有一種在關系型表格中保存索賠數據和以XML格式保存索賠文檔的保險應用混合型SQL/XML數據庫使這個應用可以從文檔子集中提取XML段落這個子集可以通過將文檔中的XML元素與關系型表格中的列值結合在一起來創建

  利用一些不同類型的存儲和查詢戰略目前取得了巨大的進展在存儲方面存在兩種通用的方法一種是可以將整個文檔輸入到數據庫的列中或者可以將文檔撕碎後放到多個關系型表格中後一種方法充分利用了數據庫的查詢引擎和強大的更新功能但是從不規則XML數據到SQL的映射比從SQL到XML的映射要困難得多如果你的XML文檔由XML模式描述控制的話將對映射有所幫助XML模式描述為XMLtoSQL映射器提供了線索並且用戶可以向這類描述添加注釋來更准確地控制映射如果數據庫支持可以接收形狀不規則的XML數據對象的話也將對映射有所幫助Oracle公司擴展了關系型數據庫技術使它包括了作為SQL一部分的對象在其i和i上已經成熟到了這種程度那就是可以在對象/關系類型中表示XML 模式的類型系統

  查詢戰略

  XPath是所有面向XML查詢戰略的基礎這是一種用於向下生成樹型結構和刪除樹枝的語法當一張XSLT樣式表轉換XML文檔時它使用XPath來隔離文檔的分段支持XML查詢的關系型數據庫(包括老牌產品OracleDB和SQL Server以及像OpenLink Software的Virtuoso這樣的新軍但還不包括MySQL)以同樣的方式使用XPath起初這種對XPath的支持是以專有擴展的形式提供的最近SQL/XML標准定義了具有XPath意識的SQL擴展的通用集合XPath還在WC即將發布的XQuery標准中得到了應用XQuery標准致力於使SQL數據連接功能適應半結構化XML數據世界IBM公司表示其正在努力開發XQuery以使SQL開發人員可以他們熟悉的方式處理XML內容

  盡管廠商急不可待地等待XQuery 的最終完成但是它們的XQuery應用在某些方面將不如目前的SQL/XML應用強大最明顯的是XQuery 沒有定義用於更新XML文檔中的元素的語法雖然SQL/XML的更新機制還沒有得到批准但它已經被定義了已被應用在Oracle和DB

  SQL/XML搶走了XQuery的風頭嗎?從短期看XQuery看起來只是一種完成可能用SQL和XPath同樣可以完成工作的替代方法但是從長期看開發人員可能希望在他們的所有數據源上保持XML抽象在這種情況下作為一種為處理復雜的數據而開發的豐富而全面的編程語言XQuery可能將成為一種重要的范例

  文檔的未來

  讓我們假設年的某個時刻有一張正在流經業務過程的采購訂單這是一個利用像InfoPath這樣的工具創建的XML文檔它上面混合記錄著核心數據和上下文元數據包括商品號和部門代碼的核心數據將輸入到一張關系型表格的列中可能包含由請求人審查人和批准人參加的包括討論的上下文元數據將仍以文檔形式保存目前這種上下文內容從來沒有被保存在RDBMS中重要的是了解數據怎樣到達那裡以及它的含意

  一旦填寫後這張采購訂單就被輸入到在Web服務網絡上流動的工作流中安全服務可以通過更新SOAP頭來執行授權政策編排服務可以搜索具有同樣相關ID的SOAP頭的文檔集合這些活動的中間階段將需要某種數據庫技術來管理透明地出現在查詢中的XML不過這可能不是Oracle或DB的任務這時一個專門的XML數據庫如Software AG的Tamino 或Sleepycat Software的Berkeley DB XML可能更適於完成這項任務它們的速度很快可以很好地用於動態XML文檔甚至在這些文檔缺少RDBMS SQL/XML映射器所依賴的模式時

  在工作流過程以及在完成後文檔將通過某個URL可以供有關各方訪問這個URL可以決定文檔的映射從混合的SQL/XML RDBMS到一台Intranet Web服務器或WebDAV存儲庫; 或者可以決定本機保存在RDBMS中的文檔基礎實例不管是哪一種情況業務過程的狀態(核心數據和上下文元數據)將在任何時候都可以為對它感興趣並獲得授權的人員所訪問此外文檔中保存的兩種類型的數據將可以跨越企業查詢從而將SQL和XML數據源整合在一起創建融合的視圖

  企業數據管理風格正在發生重大改變有許多重要的架構問題還沒有得到解決毫不奇怪Oracle希望將各種東西都保存在集中式混合DBMS中而IBM則表示寧願讓你能夠跨多種來源將數據結合在一起每一種戰略都有自己的長處而大多數企業最終將由於不同的原因以不同的方式購買這兩種技術盡管存在這些不同我們正在見證一次神聖的結合SQL和XML結為夫妻蜜月開始了


From:http://tw.wingwit.com/Article/program/SQL/201311/16403.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.