DB2 V9.7 for Linux, UNIX, and Windows

pureXML 概述 - DB2 作为 XML 数据库

pureXML® 功能部件允许您将格式良好的 XML 文档存储在具有 XML 数据类型的数据库表列中。通过将 XML 数据存储在 XML 列中,数据可保持其本机分层结构形式,而不是将其作为文本存储或映射为其他数据模型。

因为 pureXML 数据存储已完全集成,所以可利用现有 DB2® 数据库服务器功能来访问和管理存储的 XML 数据。

将 XML 数据以其本机分层结构形式来存储可以使 XML 的搜索、检索和更新效率更高。XQuery、SQL 或上述二者的组合可用于查询和更新 XML 数据。返回 XML 数据或采用 XML 自变量的 SQL 函数(称为 SQL/XML 函数)还能根据从数据库中检索的值来构造或发布 XML 数据。

查询和更新

可使用下列方法查询和更新存储在 XML 列中的 XML 文档:

XQuery
XQuery 是用于解释、检索和修改查询 XML 数据的通用语言。DB2 数据库服务器允许直接调用 XQuery 或从 SQL 调用 XQuery。因为 XML 数据存储在 DB2 表和视图中,所以提供了一些函数,用于通过直接命名表或视图或通过指定 SQL 查询从指定的表和视图中抽取 XML 数据。XQuery 支持各种用于处理 XML 数据、更新元素和属性之类的 XML 对象和构造新 XML 对象的表达式。XQuery 的编程接口提供了类似于 SQL 的功能,用于执行查询并检索结果。
SQL 语句和 SQL/XML 函数
许多 SQL 语句支持 XML 数据类型。这使得您能够对 XML 数据执行许多常见数据库操作,例如,创建具有 XML 列的表、将 XML 列添加至现有表、创建基于 XML 列的索引、对具有 XML 列的表创建触发器以及插入、更新或删除 XML 文档。DB2 数据库服务器支持的一组 SQL/XML 函数、表达式和规范利用 XML 数据类型。

可以从 SQL 查询中调用 XQuery。在这种情况下,SQL 查询可以将数据以绑定变量的形式传递至 XQuery。

应用程序开发

许多编程语言通过 SQL 和外部过程提供了对应用程序开发的支持:

编程语言支持
对新的 pureXML 功能的应用程序开发支持使得应用程序能够组合 XML 和关系数据的访问和存储。下列编程语言支持 XML 数据类型:
  • C 或 C++(嵌入式 SQL 或 CLI)
  • COBOL
  • Java(JDBC 或 SQLJ)
  • C# 和 Visual Basic(IBM® 数据服务器 .NET 提供程序)
  • PHP
  • Perl
SQL 和外部过程
通过在 CREATE PROCEDURE 参数特征符中包含 XML 数据类型参数,可将 XML 数据传递至 SQL 过程和外部过程。现有的过程功能支持围绕 SQL 语句实现过程逻辑流,它们产生或利用 XML 值以及变量中的 XML 数据值临时存储器。

管理

pureXML 功能提供用于管理 XML 文档的 URI 依赖关系的存储库并允许用于数据库管理的 XML 数据移动:

XML 模式存储库 (XSR)
XML 模式存储库 (XSR) 是用于存放在处理 XML 列中存储的 XML 实例文档时所需的所有 XML 工件的存储库。它存储 XML 文档中引用的 XML 模式、DTD 和外部实体。
导入、导出和装入实用程序
导入、导出和装入实用程序已更新为支持本机 XML 数据类型。这些实用程序象处理 LOB 数据一样来处理 XML 数据:这两种类型的数据都存储在实际的表之外。已更新的 db2Import、db2Export 和 db2Load API 还提供了用于导入、导出和装入 XML 数据的应用程序开发支持。这些已更新的实用程序允许移动存储在 XML 列中的 XML 文档数据,这类似于对关系数据的数据移动支持。

性能

使用存储在 XML 列中的 XML 文档时,可使用提高性能的功能部件:

基于 XML 数据的索引
对存储在 XML 列中的数据提供了索引支持。使用基于 XML 数据的索引可提高针对 XML 文档发出的查询的效率。与关系索引类似,XML 数据索引对列建立索引。 但是,它们的区别在于关系索引是对整个列建立索引,而XML 数据索引只是对部分列建立索引。通过指定 XML 模式(它是受限的 XPath 表达式),可指明要对 XML 列的哪些部分建立索引。
优化器
更新了优化器,以支持针对 XML 数据和关系数据对 SQL 函数、XQuery 函数和嵌入了 XQuery 的 SQL/XML 函数进行求值。优化器采用通过 XML 数据以及来自基于 XML 数据的索引的数据所收集的统计信息生成有效的查询执行计划。
说明和 Visual Explain
已更新说明工具和 Visual Explain GUI 工具,以便支持用于查询 XML 数据的 SQL 增强功能并支持 XQuery 表达式。对说明工具和 Visual Explain GUI 工具的这些更新允许您快速查看 DB2 数据库服务器针对 XML 数据对查询语句进行求值的方式。

工具

一些工具支持 XML 数据类型,这些工具包括控制中心、命令行处理器、IBM Data Studio 和 IBM Database Add-Ins for Microsoft Visual Studio。

带注释的 XML 模式分解

pureXML 使您能够将采用分层格式的 XML 数据作为 XML 存储和访问,但有时可能需要将 XML 数据作为关系数据来访问。带注释的 XML 模式分解根据 XML 模式中指定的注释来分解文档。

  • XML 数据类型
    此数据类型用于定义表中存储 XML 值的列,这些列中存储的所有 XML 值必须是格式良好的 XML 文档。引入此本机 XML 数据类型能够将格式良好的 XML 文档存储在数据库中其他关系数据旁边的本机分层格式中。
  • XML 输入和输出概述
    DB2 数据库服务器用于管理关系数据和 XML 数据,它提供了各种方法来输入和输出 XML 文档。
  • 比较 XML 模型和关系模型
    设计数据库时,需要确定数据更适合 XML 模型还是关系模型。 设计可利用 DB2 数据库的混合特点,即,同时在一个数据库中支持关系数据和 XML 数据的能够。
  • XQuery 和 XPath 数据模型
    XQuery 表达式对 XQuery 和 XPath 数据模型(XDM)的实例进行运算并返回数据模型的实例。XDM 是对一个或多个 XML 文档或片段的抽象表示。数据模型会定义 XQuery 中的表达式的允许值,包括中间计算期间使用的值。
  • 支持 XML 的工具
    IBM 和第三方工具支持使用 pureXML 功能部件。下列工具是随 DB2 数据库服务器提供的或者是可单独从 IBM 下载的:
相关概念:
带注释的 XML 模式分解
应用程序编程语言支持
比较 XML 模型和关系模型
说明工具
使用 SQL 查询 XML 数据简介
pureXML 样本
pureXML 教程
《Visual Explain 教程》
SQL 过程中的 XML 和 XQuery 支持
XML 数据移动
外部例程中的 XML 数据类型支持
XML 模式存储库
相关任务:
从 XML Extender 迁移至 pureXML
相关参考:
对 pureXML 功能的限制
受支持的函数及管理 SQL 例程和视图
相关信息:
XQuery 参考