存儲DB2 9 XML 數據的作用有哪些?
在關系數據庫中存儲DB2 9 XML 數據將會提供一些更為具有可靠性、可管理性以及 RDBMS 的等一些其他的優點。但是假如你所采用笨拙的存儲方法,應用程序的性能將會出現問題。以下就是正文的主要內容描述。
在關系數據庫中存儲 XML 數據會提供可靠性、可管理性以及 RDBMS 的其他優點。但是,如果采用笨拙的存儲方法(比如分解和 CLOB),應用程序的性能就會出現問題。當 IBM 在 DB2 9 中引入 pureXML 之后兩年,這個問題已經解決了。
當 IBM 在 2006 年推出 DB2 9 時,它的 pureXML 技術引起了廣泛的關注。但是,人們并沒有馬上接受 “關系/XML” 混合型 DBMS 的思想。這種思想的好處很明顯:通過把 XML 引擎和現成的 RDBMS 集成在一起,XML 數據可以輕松地合并到數據操作中,還可以對 XML 數據應用關系系統的許多數據管理特性,比如安全性和存檔。
但是,這種做法的性能怎么樣呢?考慮到對象-關系數據庫過去的性能,人們對混合型系統的性能抱著懷疑態度。
兩年之后,pureXML 的性能影響不僅停留在理論上,而且已經在真實環境中表現出來了。
希望通過DB2 9 XML 獲得什么?
在開發 pureXML 和 DB2 9 的 5 年中,IBM 深入研究了 XML 的性質(XML 具有強大的靈活性,同時也非常繁瑣),發現了需要改進的五個方面。IBM 主要關注兩個性能因素:存儲模型和查詢優化。
XML 數據由一個層次化的樹結構表示,通常包含多個層和大量節點,因此這種格式很難優化和編制索引。它還涉及某種形式的壓縮。因此,XML 查詢可能變得非常復雜。
存儲 XML 數據的一種常用方法是字符大對象(CLOB)。與二進制大對象(BLOB)一樣,CLOB 通常作為一個整體存儲,很少為編制索引或查詢優化進行預處理。另一種方法是把 XML 數據 “分解” 為關系數據的列;這種方法需要復雜的解析技術,通常使用大量存儲空間。
DB2 pureXML 把 XML 數據存儲為經過預先解析的層次化格式,這種格式反映數據的底層嵌套結構。這種格式支持編制復雜的索引,并允許對物理存儲中的數據進行壓縮。在執行查詢時,pureXML 把 XQuery 和 SQL/XML 查詢轉換為一種在多方面(跨語言、查詢重寫、優化索引和成本)經過優化的統一格式。
XML 壓縮、查詢優化以及關系和 XML 處理的混合(在 DB2 9.5 中還改進了插入和更新性能)改進了數據庫的處理性能;IBM 的測試和真實項目表明,與 DB2 V8 或其他 DBMS 中的相似操作相比,速度提高了 10 到 20 倍(參見相關內容中 “成功帶來的喜悅”部分)。
更適合DB2 9 XML 的模型
pureXML 的性能特點還包括其適應性。要點:XML 數據并不會取代關系數據。對于標準的金融業務,XML 數據很難超越關系數據庫,但是 RDBMS 很難處理出版物,比如整本書、雜志或期刊。如果應用程序中的數據具有復雜的層次結構,或者包含大量非結構化信息,RDBMS 也很難處理。
例如,生命科學組織正在把許多常用數據由各種專有格式轉換為 XML。在某些情況下,對于難以在傳統 RDBMS 中存儲和提取的數據,XML 格式提供了優化的數據訪問路徑,這使 XML 數據庫在根本上具有顯著的性能優勢。
XML DBMS 還有一個優點:它們能夠通過 Web 服務或其他方法與 XML 應用程序直接通信。因為 XML 在因特網上使用廣泛,應用程序之間的通信也大量采用 XML 格式,所以讓整個通信鏈(應用程序 - 消息 - 數據庫)都采用 XML 格式是很有意義的。
IBM 的 pureXML 在技術方面有許多重要的創新(68 項新專利!),但是 IBM 關系/XML 模型真正的價值在于它在主流企業應用程序中表現出的性能。
【編輯推薦】