对比DB2 9和DB2 V8.x中的XML功能
|
| XKER.COM 2006-8-30 7:59:48 来源:IBM开发网 点击: 次 |
|
|
|
DB2 UDB Viper 中引入的 XML 特性
在开始一步步地迁移示例应用程序之前,先简要地看看 DB2 UDB Viper 的 XML 支持。
XML 数据的存储
在与 DB2 的本机 XML 支持进行交互时,图 1 中所示的抽象是关系表中一个 XML 类型的列。任何良构的 XML 文档都可以插入这个列。在物理存储层,主存储单元是一个节点。
对于同时包含关系列和 XML 列的表,关系列存储为关系格式,XML 列存储为经过解析的树。
图 1. 与 DB2 的本机 XML 支持进行交互
XML 索引
XML 索引是一种新型索引,可以高效地计算 XML 路径表达式,从而提高查询 XML 文档的性能。
XML 索引使用一个 XMLPATTERN(没有谓词的 XPath,只有一个子轴(/)和后代或本身轴(//))来对一个 XML 列中存储的 XML 文档的路径和值建立索引。在创建索引时,可以指定要为什么路径建立索引以及类型。在此列中存储的 XML 中,与路径表达式或路径表达式集合匹配的任何节点都被索引。索引直接指向存储中的节点,节点与它的父节点和子节点链接,便于快速导航。
create index idx3 on dept(deptdoc) generate key using
xmlpattern '/dept/employee/name' as sql varchar(35);
| XML 模式存储库
XSR 是一个存储库,存储着用来验证和处理 XML 列中存储的 XML 实例文档的所有 XML 工件。XSR 避免了定位外部文档所需的额外开销以及可能产生的性能影响。每个数据库的数据库编目中包含一个 XML 模式存储库,并包含编目表、编目视图和一些系统定义的存储过程(用于进行注册)以便将数据输入这些编目表。XML 模式、DTD 和外部实体必须显式地在 XSR 中注册,然后才能使用。 带注释的模式映射
DB2 Viper 使用带注释的 XML 模式提供一种新的分解机制。并不创建单独的映射文件(DAD),而是用关系映射信息对 XML 模式进行注释。然后,将这些带注释的模式注册到 XSR。在运行时使用它们对要插入列中的 XML 文档进行分解。分解的 XML 值的数据类型是标准关系类型。可以使用关系索引技术为分解的关系列创建索引。更多信息请参考 “From DAD to annotated XML schema decomposition” (developerWorks,2006 年 4 月)。
图 2 给出一个带注释的模式映射示例。它展示整个 XML 文档以及从 XML 文档提取出的数据如何存储在同一个记录中。
图 2. 带注释的模式映射
原样的 XML 文档存储在 XMLPO 列(XML 类型)中,提取出的 orderID 存储在 ORDERID 列(VARCHAR)中,orderDate 存储在 ORDERDATE 列(DATE)中。
SQL/XML 函数
XML 发布函数
文档构造过程就是用元素和属性这样的小块内容组合出 XML 值。SQL/XML 为这个过程提供了几个函数,可以从关系数据构造出 XML 文档。
DB2 UDB Version 8.x 中有以下这些用来发布的 SQL/XML 函数:
| XMLAGG: 以提供的 XML 值作为输入,返回所有非空的输入 XML 值的连结。XMLATTRIBUTES: 生成被构造的 XML 元素的属性。XMLCONCAT: 连结非空的 XML 类型的输入表达式,返回一个 XML 值序列。XMLELEMENT: 根据输入参数构造一个 XML 元素。XMLFOREST: 从输入参数构建一个 XML 元素林。XMLNAMESPACES: 为由 XMLELEMENT 或 XMLFOREST 生成的元素构造名称空间声明。XML2CLOB 和 XMLSERIALIZE: XML 串行化函数将 XML 值转换为一个字符串值。 |
图 3. DB2 UDB V8.x 中的 SQL/XML 发布函数
DB2 Viper 支持 DB2 V8 中的所有 SQL/XML 函数(并接受或返回新的 XML 类型)。
还支持以下这些新的 SQL/XML 发布函数:
| XMLCOMMENT: 生成一个 XQuery 注释节点。XMLPI: 生成一个 XQuery 处理指令节点。XMLTEXT: 生成一个 XQuery 文本节点。XMLDOCUMENT: 生成一个 XQuery 文档节点。 |
下面是用于 IN/OUT 和验证的新的 SQL/XML 函数:
|
|
上一篇教程:DB2 中的数据类型 下一篇教程:DB2 9颠覆关系型数据库? |
|
【收藏本文】
【我要投稿】
【打印本文】
【论坛讨论】
【关闭窗口】 |
|
相关文章 |
|
|
| 学院文章搜索 |
|
|
|
| 推荐文章 |
|
| 阅读排行 |
|
| 专题教程 |
|
|
| 最新文章 |
|
|
|