程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> XML成為DB2 9數據庫的一種內置數據結構

XML成為DB2 9數據庫的一種內置數據結構

編輯:DB2教程

能否讓企業從IT應用中真正體驗隨需應變,將是未來衡量一套信息系統是否能真正勝任企業未來要求的標准!“面向服務的計算架構-SOA”也就在當前時代要求下呼之欲出了!隨著SOA在企業IT架構中的重要性日益凸顯,XML因其天然的可擴展、與平台無關性和完全兼容Unicode編碼方式等特性,已然成為SOA的核心。於是對XML的各種支持的需求也才真正到來。

正當業界歡慶SOA時代到來的時刻,也立即感到了SOA帶來的新挑戰。IT英雄們面對著等待整合的企業級應用時,手中持有著BPEL(Business Process Execution Language,即業務過程執行語言)的強大力量,只因沒有正確的XML理論指導,面對著系統的復雜性會一籌莫展,有時甚至連分析問題的頭節點都無法把握;IT英雄們面對著按需變動的企業級應用時,也會猛然間發現曾經無所不能的WSDL是何等的浩大繁瑣,一個簡單變動所帶來的巨大的修改工作量遠遠超過改動普通程序的工作量,而且稍有不慎,一個有機的整體就有可能被一個輕微bug所破壞,影響整個IT基礎構架的運行。這種對缺陷放大的效果,直接導致IT英雄們花費更多的時間檢測和更正代碼,降低實現技術所帶來的效益,不僅有可能沒有達到隨需應變的初衷,還讓業務更加依賴應用、處處受制於應用,降低了企業核心競爭力。

那麼IT英雄們不禁要問,我們到底離SOA還有多遠?能否提供一種方式,使我們對於XML的使用就象是傳統的SQL數據庫一樣便捷?能否提供一種方式,使我們對XML的操作,就象是寫SQL一樣簡便?於是真正讓我們既享受到SOA所帶來的隨需應變,還能避免SOA所帶來的新弊端?IT英雄們不禁把目光投向了數據庫。。。

當前的數據庫系統狀態

當IT英雄們將最後的眼光投向數據庫時,無非就是想審視當前數據庫對XML的支持能力。

XML數據庫聽起來遠不像SOA這樣前衛,仿佛是一門非常成熟的技術,早在MS SQL Server2000、 Oracle9i等這些今天聽起來非常成熟的版本,就已經宣稱對XML做了很好的支持。但事實呢?首先,這些數據庫常常提供兩種基本的數據庫設計選項支持XML —— 將每個 XML 文檔完整地存儲為一個大型對象,或者將它 “撕開”,分散存儲在多個表的多個列中。在許多情況下,這些選項都會導致性能問題、管理困難、查詢的復雜性增加和其他問題。其次,管理和共享 XML 數據的一般方法效果不好,也許文件系統可以應付簡單的任務,但是在需要處理大量文檔時它們就表現得不好了,並發性、恢復、安全和可用性問題變得難以管理。最後,這些 XML DBMS 在 IT 基礎設施中引入了一種新型的環境,但是這種環境還沒有經過考驗,它的集成能力、需要的人員技能以及未來的生命力還不確定。

很顯然,這樣的XML數據庫是不成熟的,不能過分指望這樣的XML數據庫解決前現有SOA帶來的新挑戰。

那麼如果眼前的XML數據庫,能夠擺脫以上的存儲結構,把XML真正的作為數據庫本地固有結構,使得關系數據與XML具有一致綁定性,讓企業按需要變化進行動態調整,以適應變化;如果數據庫可以對XML支持到各個級別,並且對外部訪問透明,即可以使用SQL又可以使用XQuery對無論是關系數據還是XML進行查詢;如果數據庫可以對XML數據建立高效的檢索機制,粒度達到XML包含的每個元素、屬性。那麼,期待中的XML數據庫定然會對SOA產生核心的支持!隨著IBM DB2 9產品的推出,這樣的期待變成了現實!

IBM DB2 9 橫空出世 DB2數據庫產品的發展過程 DB2數據庫產品的發展過程



正如我們所期待,IBM DB2 9代表著26年來信息管理劃時代的技術創新,是IBM 領導數據管理走向新的高峰,是IBM持續創新能力的最佳體現!

IBM DB2 9對XML 數據提供了深入的、強大的支持,使其包含:

 新的存儲技術:將XML作為數據庫的固有結構,可以高效地管理 XML 文檔中固有的層次結構。特別值得強調得是,DB2 對 XML 的 “固有” 支持是在對其他技術的現有支持之外提供的,SQL、表格數據結構和各種 DBMS 特性等現有支持仍然存在。因此,用戶可以用一個數據庫對象同時管理 “傳統的” SQL 數據和 XML 文檔。而且,可以編寫一個查詢同時搜索和處理這兩種數據形式。

 新的索引技術,可以提高在 XML 文檔之間和內部進行搜索的速度。

 新的查詢語言支持(對於 XQuery)、新的圖形化查詢構建器(對於 XQuery)和新的查詢優化技術。

 新的管理功能,包括對關鍵數據庫工具的擴展。

IBM DB2 9特性,及對SOA/XML的支持

 XML被整合在IBM DB2 9的各個級別上,更核心的支持了SOA/XML DB2 9數據庫查詢流程示意 DB2 9數據庫查詢流程示意

通過上圖,我們可以得知,IBM DB2 9使客戶機應用程序能夠通過它們選擇的查詢語言 —— SQL或 XQuery —— 同時處理表格數據結構和 XML 數據結構。DB2 中的引擎級組件支持用這兩種語言指定的查詢。 DB2 9數據庫的內部示意 DB2 9數據庫的內部示意

從而對於一個SOA應用而言,操作XML就象是操作SQL一樣簡便,直接使得前文中所稱述的SOA弊端不負存在。

XML固化存儲特性(Native Storage)

XML 文檔集合存儲在 DB2 表中,這些表包含一個或多個新的 XML 數據類型的列。在創建 XML 列時,無須指定 XML 數據的內部結構。

這樣做的好處是什麼?

這種寬松的方式給用戶提供了很大的靈活性,更容易存儲包含不同屬性和內部結構的 XML 文檔集合;從而從容的處理因業務需求或業務情況變化,有時候可能缺少某些信息,導致XML 文檔的屬性和結構不一致的情況。

使管理員能夠使用熟悉的 SQL 數據定義語言(DDL)語句來創建存儲 XML 數據的數據庫對象。並且,利用這個熟悉的接口隱藏了一個事實:DB2 以不同的方式存儲 XML 數據。它使用新技術來存儲 XML 數據的層次結構,並支持高效地搜索原始 XML 數據的所有部分。

為了用戶易於集成傳統形式的業務數據和 XML 數據,DB2 管理員可以創建同時包含傳統 SQL 數據類型列和新的 XML 數據類型列的表。

強大的XML索引

基於XML的索引可以建立在該XML文本的任意元素或屬性上,或者建立在兩者的混合體上。新的具有XML特性的聯合與賦值方法,可以有效降低數據庫同一時刻下的I/O負載。

另一個與普通關系數據庫索引所顯著區別的是,IBM DB2 9的任意一張表中的一行可能會產生多個 XML 索引項,因為一個 XML 文檔可能包含零個、一個或許多個與指定的 xmlpattern 匹配的 “節點”。與此相反,非 XML 索引對於表中的每一行只包含一項。這樣可以為某些檢索全文的程序顯著的提高效率。

拓寬查詢理念,全方位支持XML查詢

IBM DB2 9根據對XML支持的強大特性所要求,拓寬了查詢理念,包含新的查詢語言功能。應用程序可以自由地使用兩種語言的語句: SQL 或 XQuery 搜索數據,甚至一個查詢語句可以結合使用 SQL 和 XQuery。這樣,XML與傳統的關系數據的互操作相互透明,從而對於SOA的支持變的異常突出與簡化,真正變成了一款能對SOA核心支持的數據庫。

IBM DB2 9還優化這樣的查詢。DB2 有兩個查詢語言分析器:一個用於 XQuery,另一個用於 SQL。它們都生成一種通用的與語言無關的內部查詢表示。這意味著用這兩種語言編寫的查詢都會從 DB2 的基於開銷的查詢優化技術獲益,這包括高效地重寫查詢操作符以及選擇低開銷的數據訪問計劃。另外,DB2 可以利用新的查詢和聯結操作符以及新的索引處理技術,為涉及 XML 文檔的查詢提供更好的運行時性能。

管理支持

提供如此強大的功能,在管理方面肯定是引入了新的挑戰,對於一個DB2管理員而言,到底是面對著一個全新的提供著挑戰的數據庫呢?還是面對著一個更易操作的數據庫?讓我們了解如下,就可以對這一疑惑有了全面的認識:

DB2 新的 XML 支持包括對熟悉的管理工具的擴展,可以幫助管理員管理調整數據庫。例如,備份和恢復設施都支持 XML 列中存儲的文檔。同樣,對 IMPORT 和 EXPORT 的擴展現在可以同時在傳統 SQL 數據和 XML 數據上操作。

DB2 的圖形化管理工具 DB2 Control Center 使管理員能夠浏覽包含 XML 數據的表、創建和管理基於 XML 的索引、發出 SQL/XML 和 XQuery 語句以及執行許多其他管理任務。

關於性能監測,相應的 DB2 設施也進行了擴展來適應 XML 數據。這些設施包括 DB2 Snapshot Monitor,它提供對某一時刻 DB2 活動的匯總(即 “快照”);RUNSTATS,它收集 DB2 數據庫中存儲的數據的統計信息;以及 EXPLAIN,它報告查詢優化器為滿足給定請求所選擇的訪問路徑。管理員可以通過研究 EXPLAIN 的輸出來判斷使用了哪些 XML 索引。

結尾

面對當前需要全面支持XML的時代背景,IBM DB2 9 版是 IBM 的第一個 “混合型”(即多結構)數據庫管理系統實現。除了支持表數據模型之外,DB2 還支持 XML 文檔和消息中固有的層次化數據模型。用戶可以在一個表中自由地混合存儲傳統 SQL 數據和 XML 數據。還可以使用 SQL和 XQuery來查詢和處理這兩種形式的數據。通過在經過實踐檢驗的數據庫管理基礎設施上進行擴展,IBM 為 IBM DB2 9 用戶提供了同時處理關系數據和 XML 數據的強大支持,為企業運算的隨需應變做出了核心的支持!

最後,我們提出一個對比表格,讓客觀事實來清晰的展現 IBM DB2 9的意義: 流行數據庫產品XML特性對比

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved