XML 支援架構演進
DB2 UDB V8.x:XML 支援建立在關聯基礎設施之上。XML 資料要么以 CLOB 原樣儲存,要么分解至關聯表。透過 DB2 XML Extender(UDT、UDF、預存程序)與部分 SQL/XML 發布函數提供 XML 功能。
DB2 Viper (9):引入原生 XML 儲存,XML 作為新資料型別,以解析並加註釋的樹狀結構儲存,獨立於關聯儲存。新增基於 XML Schema 的索引技術,支援 XQuery 與 SQL/XML 查詢發布。仍提供增強的分解功能(使用帶註釋的 XML Schema 映射)供需分解場景。
詳細特性對比表
| 特性 | DB2 UDB V8.x | DB2 Viper |
| 儲存與索引 |
- 原樣文件:XMLCLOB/XMLVARCHAR/XMLFILE、BLOB/CLOB/VARCHAR
- 關聯副表建立間接索引
- 解析文件更新副表
- 分解:DAD 映射至現有關聯表,僅葉節點可映射,不支援命名空間,處理複雜 XML 能力有限
|
- 原生 XML 儲存:全新階層式儲存,保留任意樹狀結構
- XML 型別欄位
- 葉節點路徑運算式建立 XML 索引
- 插入時解析文件
- 分解:SQL/XML 函數與帶註釋 Schema 映射,支援 XML 片段映射至 XML 欄位、命名空間、擴展過濾功能
|
| 驗證 |
- DAD 隱含驗證、UDF svalidate 顯式驗證
- DTD 註冊儲存於內部表
- 從檔案系統取得 XML Schema
|
- 無隱含驗證
- SQL/XML XMLVALIDATE 顯式驗證
- 不支援 DTD 驗證
- DTD 與 XML Schema 註冊於 XML Schema Repository (XSR) 並儲存於資料庫
|
| 查詢與發布 |
- SQL/XML 與 XML Extender 函數
- 原樣文件:副表索引查詢、UDF 子文件查詢、XSLT 轉換
- 分解資料:SQL/XML 發布函數、DAD 映射
|
- SQL/XML 與 XQuery
- 原樣文件:混合 SQL/XML 與 XQuery 檢索發布、多 XML 欄位聯結、XSLT 支援、XQuery 查詢轉換發布
- 分解資料:SQL/XML 發布函數
|
| 更新 |
- SQL UPDATE 全文件更新、XML Extender UDF 更新
|
- SQL UPDATE 全文件更新
- 缺乏 XQuery 更新標準,不支援子文件更新(可下載更新預存程序實現部分更新)
|
| 啟用 XML |
需啟用 XML Extender |
XML 支援為引擎固有部分,無需啟用 |
| 工具整合 |
Control Center/Development Center 無整合 XML 支援;WSAD 提供 Schema/DTD/DAD 編輯器,查詢建構器不支援 SQL/XML |
XML 支援整合至各工具面向 |
DB2 9 的 pureXML 架構從根本上解決了 V8 時代 XML 處理的效能與靈活性瓶頸,是邁向混合資料管理的關鍵里程碑。