简介
DB2 UDB Version 8.x 中的 XML 支持基于 DB2 的关系基础设施。XML 数据要么按原样存储为字符大对象(CLOB),要么分解到关系表中。另一方面,DB2 UDB Viper 具有真正的 XML 数据本机支持。现在,将 XML 数据作为一种新的数据类型处理,存储在一个经过解析并加上注释的树中,这个树是与关系数据存储分开的。还引入了基于 XML 模式的 XML 索引技术,并支持 XQuery 和 SQL/XML 作为查询和发布 XML 数据的语言。
DB2 UDB Version 8.x 中的 XML 支持
DB2 8.x 使用 SQL/XML 和 DB2 XML Extender 向底层关系数据提供 XML 功能。DB2 XML Extender 提供许多用户定义类型(UDT)、用户定义函数(UDF)和存储过程来支持 XML。XML 文档存储为关系形式,并使用 XML Extender 基础设施为关系数据提供 XML 表现形式。还支持一些用来将关系数据发布为 XML 的 SQL/XML 函数。更多细节可以在 DB2 XML Extender Web 站点上找到。
DB2 还允许创建用户定义的 Java 函数和存储过程,可以将 XML 和 XSL 解析器(作为 DB2 8.x 的一部分安装)合并到代码中。
DB2 Viper 中的 XML 支持
DB2 Viper 支持本机 XML 存储,从而不再需要将 XML 分解到关系表中供查询和发布。这种新的存储方式将 XML 保存为与 XML 文档对象模型(DOM)相似的经过解析并加上注释的树形式。对于仍然需要将 XML 数据分解到关系表中的应用程序,这个版本中还提供了增强的分解功能,这种功能使用带注释的 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 数据存储为两种形式:
原样的文档: XMLCLOB、XMLVARCHAR、XMLFILE 类型的 XML Extender 列。 BLOB、CLOB 或 VARCHAR 类型的列。 在关系副表中创建 XML 文档的间接索引。 解析文档来更新创建的副表。 分解到关系 XML Extender(XML 集合): 使用文档访问定义(DAD)分解到现有的关系表。 只有 XML 中的叶节点可以分解并映射到 SQL 列类型。 不支持名称空间。 功能有限,不能处理复杂的 XML 文档。 XML 数据存储为两种形式:
原样的本机文档 XML 存储。 从头构建了全新的层次化(本机)存储。这种存储方式保存文档的任意树形式。 XML 类型的列。 使用叶节点的路径表达式建立 XML 索引。 在插入时对文档进行解析。 用关系 SQL/XML 函数和带注释的模式映射进行分解。 使用带注释的 XML 模式映射分解到现有的关系表。 XML 片段也可以分解,映射到 XML 列类型。 处理名称空间。 可以使用扩展的功能过滤 XML 数据,比如 DB2 表达式和条件。 验证 DAD 中定义的隐式验证。 使用 XML Extender UDF svalidate 进行显式验证。 文档类型定义(DTD)注册并存储在内部表中。 从文件系统获得 XML 模式。 没有与列相关联的隐式验证。 使用 SQL/XML 函数 XMLVALIDATE 进行显式验证。 不支持 DTD 验证。 DTD 和 XML 模式注册在 XML 模式存储库(XSR)中,并存储在数据库中。 查询和发布
使用 SQL/XML 和 XML Extender 函数进行查询和发布。
对于原样的 XML 文档。 使用带索引的副表查询文档,以 CLOB 形式获得文档。 可以使用 XML Extender 函数进行子文档查询。 可以使用 Extender 函数进行 XSLT 转换。
对于分解到关系表的 XML 数据。 SQL/XML 发布函数。 XML Extender DAD 映射和函数。 使用 SQL/XML 和 XQuery 进行查询和发布。
对于原样的 XML 文档。 可以混合使用 SQL/XML 和 XQuery 来检索和发布关系数据和 XML 数据。 可以联结多个 XML 列。 使用 XML Extender XSLT 函数支持 XSLT。 可以使用 XQuery 查询、转换和发布 XML。 对于分解到关系表的 XML 数据。 SQL/XML 发布函数。 更新 对于原样的 XML 文档。 使用 SQL update 语句进行全文档更新。 使用 XML Extender UDF update 进行更新。 对于原样的 XML 文档。 使用 SQL update 语句进行全文档更新。 由于缺少定义 XQuery 更新的标准,不支持子文档更新。 可以从 developerWorks 下载更新存储过程,请参考 XML application migration from DB2 8.x to DB2 Viper, Part 1: Partial updates to XML documents in DB2 Viper (developerWorks,2006 年 5 月)。 为数据库启用 XML 功能 需要为数据库启用 XML Extender 功能。 不需要启用数据库,因为 XML 支持现在是 DB2 引擎的固有部分。 工具 在 DB2 Development Center 或 Control Center 中没有集成 XML 支持。
Websphere Studio Application Developer XML Schema Editor DTD Editor DAD Mapping 工具 在查询构建器中不支持 SQL XML。 Xerces 和 Xalan 解析器 Java Database Connectivity(JDBC)驱动程序中没有提供支持。 XML 支持集成到了工具的各个方面。
DB2 Control Center 和 DB2 Develope
[1][2][3][4][5][6][7][8][9][10]下一篇