DB2 9 Viper快速入门 |
本文标签:DB2 Viper DB2数据库在开发过程中开发出了很多新的版本,功能性较之前有了很大的提高,其中DB2 9 Viper就是其中之一,下文中详细为大家介绍DB2 9 Viper 。 为了帮助您快速掌握 DB2 自身的 XML 特性,请完成几个普通的任务,比如: 创建用于管理 XML 数据的数据库对象,包括一个测试数据库、一些示例表和视图 。
使用 INSERT 和 IMPORT 语句将 XML 数据填充到数据库中 。
验证您的 XML 数据 。使用 DB2 开发和注册您的 XML 模式,并在导入数据时使用 XMLVALIDATE 选项 。
后续文章将包括其他主题,比如使用 SQL 查询、更新和删除 DB2 XML 数据,使用 XQuery 查询 DB2 XML 数据,开发存取 DB2 XML 数据的 Java 应用程序和 Web 组件 。
创建数据库对象 让我们先来创建一个单独的 DB2 Unicode 数据库 。在 DB2 Viper 中,只有 Unicode 数据库才能同时存储 XML 文档和 SQL 数据的更多传统格式,比如整数、日期/时间、变长字符串,等等 。随后,您将在这个数据库中创建对象来管理 XML 和其他类型的数据 。 创建测试数据库 为了创建一个新的 DB2 Unicode “测试” 数据库,打开 DB2 命令窗口,发出语句来指定 Unicode 编码集合和支持的区域,如 清单 1: 清单 1. 创建用于存储 XML 数据的数据库 create database test using codeset UTF-8 territory us 旦创建了 Unicode 数据库,您就不需要发出任何专门的命令或采取任何进一步措施来使 DB2 能够以它自身分层的格式存储 XML 数据,因为您的 DB2 系统已经准备好了 。 创建示例表 为了存储 XML 数据,请创建包含一个或多个 XML 列的表 。这些表充当文档集合的逻辑容器;在幕后,DB2 实际上使用了不同的存储方案来存储 XML 和非 XML 数据 。然而,使用表作为管理各种受支持的数据格式的逻辑对象,简化了管理和应用程序开发问题,特别是当需要在一个单独的查询中集成不同的数据格式时 。 您可以对 DB2 表进行定义,使其只包含 XML 列、只包含传统 SQL 类型的列或者同时包含两者 。本文对后一种情况进行了建模 。清单 2 中的例子连接到 “测试” 数据库,并创建了两个表 。第一个是 “items” 表,追踪关于货物的销售情况和顾客对货物的评价信息 。第二个表追踪的是关于 “客户” 的信息,包括关于联系信息的数据 。注意 “comments” 和 “contactinfo” 是基于新的 DB2 XML 数据类型,而所有其他的列都是基于传统 SQL 数据类型的 。 清单 2. 创建用于 XML 数据的表 connect to test; create table items ( id int primary key not null, brandname varchar(30), itemname varchar(30), sku int, srp decimal(7,2), comments xml ); create table clients( id int primary key not null, name varchar(50), status varchar(10), contactinfo xml ); 如果您仔细地查看这些表定义例子,您将注意到 “comments” 和 “contactinfo” 列都没有进行 XML 文档内部结构的定义 。这是 DB2 的一个重要特性 。用户不需要为了存储数据而预定义一个 XML 数据结构(或者,更准确地说是一个 XML 模式) 。事实上,DB2 可以在一个单独的列中存储任何格式良好的 XML 文档,这意味着不同模式的 XML 文档 —— 或没有和任何注册的模式关联的文档 —— 都可以存储在相同的 DB2 列中 。当我们讨论如何在 DB2 中存储数据时,本文将深入讨论这个特性 。 创建视图 您可以随意地在包含 XML 数据的表上创建视图,就像您可以在只包含传统 SQL 数据类型的表上创建视图一样 。清单 3 中的例子创建具有 “Gold” 状态的客户的一个视图: 清单 3. 创建一个包含 XML 数据的视图 create view goldview as select id, name, contactinfo from clients where status=Gold; 关于索引的一点说明 最后,没有必要在 XML 列上创建专门的索引来提高数据的查询速度 。因为这是一篇介绍性文章,而且示例数据很少,所以本文不会涵盖到那个主题 。然而,在生产环境中,定义一个适当的索引对实现最佳的性能来说很关键 。查看本文结尾部分的 “参考资料”,以助于了解 DB2 的新索引技术 。
|