分享好友 数据库首页 频道列表

对比DB29和DB2V8.x中的XML功能

DB2教程  2015-06-30 10:240
正在看的db2教程是:对比DB2 9和DB2 V8.x中的XML功能。

简介
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] 下一篇

查看更多关于【DB2教程】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
MySQL与Oracle的语法区别详细对比 (转)
Oracle和mysql的一些简单命令对比 1) SQL select to_char(sysdate,'yyyy-mm-dd') from dual;   SQL select to_char(sysdate,'hh24-mi-ss') from dual;   mysql select date_format(now(),'%Y-%m-%d');   mysql select time_format(now(),'%H-%i-%S&

0评论2023-02-09428

mysql通过对比一张表的数据来修改另一张表两种sql的对比
https://blog.csdn.net/weixin_39180123/article/details/78720222将表b 中的字段值 赋值给表a 字段值UPDATE powershu_aiops_biz_dev.aiops_cmdb_host a,bjetc_aiops_biz_deploy.aiops_cmdb_host b SET a.type=b.type ,a.zone = b.zone ,a.biz_category = b.b

0评论2023-02-09830

8 种常用的 NoSQL 数据库系统对比分析
这篇文章主要介绍了8 种 NoSQL 数据库系统对比,需要的朋友可以参考下

0评论2016-02-14134

MySQL数据库三种常用存储引擎特性对比
MySQL中的数据用各种不同的技术存储在文件(或内存)中,这些技术中的每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供广泛的不同功能和能力。在MySQL中将这些不同的技术及配套的相关功能称为存储引擎。

0评论2016-01-2852

MySQL查询随机数据的4种方法和性能对比
从MySQL随机选取数据也是我们最常用的一种发发,其最简单的办法就是使用”ORDER BY RAND()”,本文介绍了包括ORDER BY RAND()的4种获取随机数据的方法,并分析了各自的优缺点。

0评论2015-10-27189

对比Oracle临时表和SQL Server临时表的不同点
这篇文章主要介绍了Oracle数据库建立临时表的相关知识以及和SQL Server临时表的不同点的对比,希望能够对您有所帮助。

0评论2015-10-0973

与MSSQL对比学习MYSQL的心得(二)--显示宽度
MYSQL中的整数型数据类型都可以指定显示宽度,而SQLSERVER不行

0评论2015-09-30180

与MSSQL对比学习MYSQL的心得(四)--BLOB数据类型
在MYSQL中BLOB是一个二进制大对象,用来储存可变数量的数据,而MSSQL中并没有BLOB数据类型,只有大型对象数据类型(LOB)

0评论2015-09-30129

oracle 使用递归的性能提示测试对比
先递归循环出某个文件夹下面的所有的文件夹以及文件在关联文件表查找文件的内容这是正确的做法,感兴趣的朋友可以了解下,或许对你学习oracle递归有所帮助

0评论2015-08-25135

SQL中Charindex和Oracle中对应的函数Instr对比
在项目中用到了Oracle中 Instr 这个函数,顺便仔细的再次学习了一下这个知识,使用 Instr 函数对某个字符串进行判断,判断其是否含有指定的字符

0评论2015-07-28140

php连接MySQL的两种方式对比
这篇文章主要介绍了php连接MySQL的两种方式对比,一种是原生的链接方式另外一种是PDO方式,附上示例,推荐给大家,有需要的小伙伴可以参考下

0评论2015-07-1487

MySQL和MongoDB设计实例对比分析
MySQL是关系型数据库中的明星,MongoDB是文档型数据库中的翘楚。

0评论2015-07-13140

mongodb与mysql命令详细对比
MongoDB的好处挺多的,比如多列索引,查询时可以用一些统计函数,支持多条件查询,但是目前多表查询是不支持的,可以想办法通过数据冗余来解决多表查询的问题

0评论2015-07-10100

更多推荐