對比DB2 9和DB2 V8.x中的XML功能
簡介
DB2 UDB Version 8.x 中的 XML 支持基于 DB2 的關(guān)系基礎(chǔ)設(shè)施。XML 數(shù)據(jù)要么按原樣存儲為字符大對象(CLOB),要么分解到關(guān)系表中。另一方面,DB2 UDB Viper 具有真正的 XML 數(shù)據(jù)本機(jī)支持?,F(xiàn)在,將 XML 數(shù)據(jù)作為一種新的數(shù)據(jù)類型處理,存儲在一個經(jīng)過解析并加上注釋的樹中,這個樹是與關(guān)系數(shù)據(jù)存儲分開的。還引入了基于 XML 模式的 XML 索引技術(shù),并支持 XQuery 和 SQL/XML 作為查詢和發(fā)布 XML 數(shù)據(jù)的語言。
DB2 UDB Version 8.x 中的 XML 支持
DB2 8.x 使用 SQL/XML 和 DB2 XML Extender 向底層關(guān)系數(shù)據(jù)提供 XML 功能。DB2 XML Extender 提供許多用戶定義類型(UDT)、用戶定義函數(shù)(UDF)和存儲過程來支持 XML。XML 文檔存儲為關(guān)系形式,并使用 XML Extender 基礎(chǔ)設(shè)施為關(guān)系數(shù)據(jù)提供 XML 表現(xiàn)形式。還支持一些用來將關(guān)系數(shù)據(jù)發(fā)布為 XML 的 SQL/XML 函數(shù)。更多細(xì)節(jié)可以在 DB2 XML Extender Web 站點上找到。
DB2 還允許創(chuàng)建用戶定義的 Java 函數(shù)和存儲過程,可以將 XML 和 XSL 解析器(作為 DB2 8.x 的一部分安裝)合并到代碼中。
DB2 Viper 中的 XML 支持
DB2 Viper 支持本機(jī) XML 存儲,從而不再需要將 XML 分解到關(guān)系表中供查詢和發(fā)布。這種新的存儲方式將 XML 保存為與 XML 文檔對象模型(DOM)相似的經(jīng)過解析并加上注釋的樹形式。對于仍然需要將 XML 數(shù)據(jù)分解到關(guān)系表中的應(yīng)用程序,這個版本中還提供了增強(qiáng)的分解功能,這種功能使用帶注釋的 XML 模式映射。
XML 特性對比 —— DB2 UDB Version 8.x 和 DB2 Viper
表 1. XML 特性對比 —— DB2 UDB Version 8.x 和 DB2 Viper
DB2 UDB Version 8.x
DB2 Viper
存儲和索引
XML 數(shù)據(jù)存儲為兩種形式:
原樣的文檔:
- XMLCLOB、XMLVARCHAR、XMLFILE 類型的 XML Extender 列。
- BLOB、CLOB 或 VARCHAR 類型的列。
- 在關(guān)系副表中創(chuàng)建 XML 文檔的間接索引。
- 解析文檔來更新創(chuàng)建的副表。
- 使用文檔訪問定義(DAD)分解到現(xiàn)有的關(guān)系表。
- 只有 XML 中的葉節(jié)點可以分解并映射到 SQL 列類型。
- 不支持名稱空間。
- 功能有限,不能處理復(fù)雜的 XML 文檔。
原樣的本機(jī)文檔 XML 存儲。
- 從頭構(gòu)建了全新的層次化(本機(jī))存儲。這種存儲方式保存文檔的任意樹形式。
- XML 類型的列。
- 使用葉節(jié)點的路徑表達(dá)式建立 XML 索引。
- 在插入時對文檔進(jìn)行解析。
- 使用帶注釋的 XML 模式映射分解到現(xiàn)有的關(guān)系表。
- XML 片段也可以分解,映射到 XML 列類型。
- 處理名稱空間。
- 可以使用擴(kuò)展的功能過濾 XML 數(shù)據(jù),比如 DB2 表達(dá)式和條件。
- DAD 中定義的隱式驗證。
- 使用 XML Extender UDF svalidate 進(jìn)行顯式驗證。
- 文檔類型定義(DTD)注冊并存儲在內(nèi)部表中。
- 從文件系統(tǒng)獲得 XML 模式。
- 沒有與列相關(guān)聯(lián)的隱式驗證。
- 使用 SQL/XML 函數(shù) XMLVALIDATE 進(jìn)行顯式驗證。
- 不支持 DTD 驗證。
- DTD 和 XML 模式注冊在 XML 模式存儲庫(XSR)中,并存儲在數(shù)據(jù)庫中。
使用 SQL/XML 和 XML Extender 函數(shù)進(jìn)行查詢和發(fā)布。
對于原樣的 XML 文檔。
- 使用帶索引的副表查詢文檔,以 CLOB 形式獲得文檔。
- 可以使用 XML Extender 函數(shù)進(jìn)行子文檔查詢。
對于分解到關(guān)系表的 XML 數(shù)據(jù)。
- SQL/XML 發(fā)布函數(shù)。
- XML Extender DAD 映射和函數(shù)。
對于原樣的 XML 文檔。
- 可以混合使用 SQL/XML 和 XQuery 來檢索和發(fā)布關(guān)系數(shù)據(jù)和 XML 數(shù)據(jù)。
- 可以聯(lián)結(jié)多個 XML 列。
- 可以使用 XQuery 查詢、轉(zhuǎn)換和發(fā)布 XML。
- SQL/XML 發(fā)布函數(shù)。
- 使用 SQL update 語句進(jìn)行全文檔更新。
- 使用 XML Extender UDF update 進(jìn)行更新。
- 使用 SQL update 語句進(jìn)行全文檔更新。
- 由于缺少定義 XQuery 更新的標(biāo)準(zhǔn),不支持子文檔更新。
- 可以從 developerWorks 下載更新存儲過程,請參考 XML application migration from DB2 8.x to DB2 Viper, Part 1: Partial updates to XML documents in DB2 Viper (developerWorks,2006 年 5 月)。
Websphere Studio Application Developer
- XML Schema Editor
- DTD Editor
- DAD Mapping 工具
- 在查詢構(gòu)建器中不支持 SQL XML。
- Xerces 和 Xalan 解析器
- Java Database Connectivity(JDBC)驅(qū)動程序中沒有提供支持。
DB2 Control Center 和 DB2 Develope
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一篇
相關(guān)文章
解決db2事務(wù)日志已滿及日志磁盤空間已滿問題辦法詳解
本文主要講解了解決db2事務(wù)日志已滿及日志磁盤空間已滿的問題,DB2總的可用活動日志的最大空間是有限制的,當(dāng)達(dá)到限制之后,就會發(fā)生日志滿的問題2018-03-03國內(nèi)學(xué)院派專家對DB2 9新產(chǎn)品贊不絕口
國內(nèi)學(xué)院派專家對DB2 9新產(chǎn)品贊不絕口...2007-04-04常見數(shù)據(jù)庫系統(tǒng)比較 DB2數(shù)據(jù)庫
常見數(shù)據(jù)庫系統(tǒng)比較 DB2數(shù)據(jù)庫...2007-03-03