DB2 V9.7 pureXML 增强 XML 数据的业务洞察力和可伸缩性

IBM DB2® for Linux®, UNIX®, and Windows®, Version 9.7(2009 年 4 月 22 日发布)为 pureXML 提供新的数据库设计、管理和开发特性。了解这些技术如何帮助公司更有效地把 XML 数据集成到业务智能化环境中,以及公司如何应对不断增长的 XML 数据量。本文总结新的 pureXML... 显示全部
IBM DB2® for Linux®, UNIX®, and Windows®, Version 9.7(2009 年 4 月 22 日发布)为 pureXML 提供新的数据库设计、管理和开发特性。了解这些技术如何帮助公司更有效地把 XML 数据集成到业务智能化环境中,以及公司如何应对不断增长的 XML 数据量。本文总结新的 pureXML 功能,解释如何使用它们,讨论示例应用场景。

  简介

  许多组织力求创建灵活可靠的 IT 环境,从而更好地洞察力关键业务操作,这要求核心信息管理系统能够适应不断变化的业务需求。为了帮助公司解决这个难题,IBM 在几个重要方面改进了 DB2 9.7 的 pureXML 特性。

  DB2 9.7 中的新特性提供针对 XML 数据的新的数据库设计选项,包括散列分区(数据库分区)、范围分区(表分区)和多维聚簇。这些选项可以帮助公司应对巨大的数据量,实现并行处理环境,简化时间敏感数据的添加或删除,提高许多查询的性能。通过单独或结合使用这些 DB2 设计选项,公司可以把 XML 数据集成到关系数据仓库中;为 XML 消息、文档和数据 feed 创建操作性数据存储;提高 XML 事务处理工作负载的可伸缩性。

  这些新的数据库设计选项只是 DB2 9.7 提供的 pureXML 改进的一部分。本文介绍这些选项和其他新的 pureXML 功能,解释它们对哪些场景最有帮助,提供帮助您入门的提示。本文讨论以下主题:

  DB2 pureXML 简要概述,帮助不熟悉这种技术的读者了解基本知识。


  DB2 pureXML 的 示例用例 和应用场景。


  基于散列的分区,这会显著提高可伸缩性。

基于范围的分区,这有助于随时间的推移滚入 和滚出 数据(数据仓库中的一项常见需求)。


  多维聚簇,常常能够提高分析查询的性能。


  XML 数据和索引的压缩,这会改进某些工作负载的存储效率和运行时性能。


  用户定义函数,它们可以使用、处理和返回 XML 数据。这些函数有助于促进代码重用,简化查询的开发和维护。


  新的存储过程、系统提供的函数、性能改进和其他特性,它们可以简化 DB2 pureXML 管理和应用程序开发

  DB2 pureXML 概述

  从 2006 年开始,DB2 9 为表和 XML 层次结构中建模的数据提供一种通用的应用程序编程接口和数据库管理平台。这种混合型数据库管理体系结构(见图 1)让公司能够扩展传统的关系数据库环境,直接管理 XML 消息和文档,而不需要把数据分解 或映射到多个表的多个列(由此把 XML 转换为传统的 SQL 数据类型)。XML 数据可以按照原有的层次化格式与关系数据一起存储。应用程序可以轻松高效地获取 XML 数据的相关部分。应用程序还可以简便地集成 XML 数据和关系数据。

图 1. 支持关系和 XML 数据的 DB2 9 体系结构



  为了使用 DB2 pureXML 功能,管理员必须创建 XML 类型的一个或多个列。XML 索引、查询优化、存储管理和其他 DB2 服务有助于确保出色的效率和运行时性能。

接下...... 收起
参与7

返回mudanjiang 的回答

“答”则兼济天下,请您为题主分忧!
接上......

清单 8 创建一个包含内联的 XML 列的表,如果 XML 文档占用的空间小于 1000 字节,就把 XML 文档内联存储在关系行中,否则存储在 XML Data Area 中。在表中插入一些数据之后,通过调用两个新函数,判断 (a) XML 文档是否内联存储在行中,(b) 在当前行中允许文档内联的 XML 文档估计长度。

  在线创建和重组 XML 索引

  在以前的 DB2 版本中,在创建或重组 XML 数据上的索引时,插入、更新或删除事务无法修改表中的数据。DB2 中新的改进消除了这一限制,这可以显著提高灵活性,避免在需要创建和重组 XML 索引时出现应用程序延迟或停止运行。因此,DB2 能够为应用程序提供更好的数据可用性。

  在 DB2 9.7 中,与创建关系索引一样,XML 索引创建操作在默认情况下允许并发的写操作。在重组 XML 索引时,数据库管理员可以通过在 REORG INDEXES 命令中使用 ALLOW WRITE ACCESS 子句允许并发的写操作。

  分解多个 XML 文档

  DB2 的新版本扩展了内置的分解功能,能够处理多个 XML 文档。以前的 DB2 版本只允许每个分解操作处理一个 XML 输入文档。在 DB2 的新版本中,有一个系统提供的新的存储过程 (XDB_DECOMP_XML_FROM_QUERY),它以一个现有的 DB2 表作为输入,让管理员能够分解给定列中包含的数据。对于需要分解 XML 数据的部分或全部内容的数据库设计,可以在批量装载 XML 或 BLOB 数据之后调用这个存储过程。与以前的 DB2 版本一样,DB2 的分解功能依靠带注释的 XML 模式把 XML 属性和元素映射到关系表的特定列。

  获取 XML 模式检验诊断信息

  系统提供的存储过程 XSR_GET_PARSING_DIAGNOSTICS 向程序员提供详细的诊断信息,帮助他们了解 DB2 在解析 XML 文档或针对 XML 模式检验 XML 文档时检测到的错误。这个功能是在 DB2 9.5, Fix Pack 3 中首次引入的,它可以帮助程序员判断问题并根据需要纠正 XML。

如果 XML 文档不是良构的,或者对于给定的 XML 模式是无效的,那么对此文档调用 XSR_GET_PARSING_DIAGNOSTICS 过程并可选地提供 XML 模式。过程会产生详细的错误信息,包括:

  XML 文档中错误位置的行号和列号


  指向文档中错误位置的 XPath


  原始错误消息、原因编码和任何适用的错误标志

  使用全局临时表

  这里有必要提到现在支持在声明的全局临时表中包含 XML 列,因为这可以帮助程序员提高应用程序的运行时性能。如果程序员需要获取将在应用程序中频繁使用的数据,那么可以把数据缓存在声明的全局临时表中,然后在应用程序会话中反复操作这些数据。这会尽可能减少锁和日志记录。在会话终止时删除临时表的内容。

  改进对 XML 数据的 SQL 访问

  DB2 9.7 中的查询优化技术能够提高针对 XML 数据的关系视图的查询处理效率。DB2 会在适合的情况下自动地应用这种技术,所以程序员不需要做任何事,就能够享有运行时性能收益。

  在处理针对 XML 数据的关系视图的查询时,DB2 9.7 会尽可能使用 XML 索引。下面通过一个简单的示例说明它的工作原理。清单 9 创建一个职员数据表,其中包含一个 XML 列。它还在职员办公室编号上创建一个 XML 索引,这个数据可能作为 XML 元素在职员记录中出现。最后,它创建一个视图,这个视图提取并以关系列的形式提供职员 ID、名字、姓氏和办公室编号。

清单 9. 创建表、XML 索引和关系视图

-- Create a table with an XML column. 
CREATE TABLE emp(doc XML); 
 
-- Create an XML index on the table. 
CREATE INDEX officeIdx ON emp(doc) GENERATE KEYS USING 
XMLPATTERN '/dept/employee/office' AS SQL VARCHAR(20); 
 
-- Create a relational view of the XML data managed by the table. 
CREATE VIEW emp_rel_view(id, first_name ,last_name ,office) AS 
SELECT X.* FROM emp, 
 XMLTABLE ('$d/dept/employee' passing doc as "d" 
  COLUMNS 
   empID   INTEGER   PATH '@id', 
   firstname VARCHAR(5) PATH 'name/first', 
   lastname  VARCHAR(5) PATH 'name/last', 
   office   INTEGER   PATH 'office') AS X; 


  现在考虑清单 10 中的 SQL 语句,它通过查询视图选择办公室 R344 中所有职员的 ID 和名字。

清单 10. 用筛选条件(查询谓词)查询视图

SELECT id, first_name 
FROM emp_rel_view 
WHERE office = 'R344'; 

  WHERE 子句中的谓词限制关系列 office,而视图把这一列映射到 XML 文档中的路径 /dept/employee/office。DB2 9.7 中新的优化技术让 DB2 能够自动地使用底层 XML 列上定义的 XML 索引 officeIdx 来处理这个查询。在适当的情况下使用可用的 XML 索引能够提高运行时性能。

  不能直接理解 XML 数据的应用程序(比如许多业务报告工具)可以受益于这种视图和 DB2 9.7 技术(这有时候称为谓词下推 )。这种优化特性让应用程序能够使用 SQL 查询通过传统的关系接口高效地查询 XML 数据。

  结束语

  在 DB2 9.7 中,IBM 在一些重要的方面继续扩展了 DB2 pureXML 技术。新的数据库设计选项能够提高分析应用程序和面向事务的应用程序的可伸缩性和性能。新的 XML 数据和索引压缩支持可以减少所需的磁盘空间,可以提高受 I/O 限制的操作的运行时性能。支持在用户定义函数和全局声明临时表中使用 XML,这有助于开发应用程序。最后,系统提供的新的函数和存储过程有助于简化数据库设计和维护工作。
2009-12-21
浏览805

回答者

mudanjiang
擅长领域: 数据库
评论80

mudanjiang 最近回答过的问题

回答状态

  • 发布时间:2009-12-21
  • 关注会员:0 人
  • 回答浏览:805
  • X社区推广