IBM 新的 DB2 9 为开发人员提供了一种更快、更有效的方式来管理关系数据库中的 XML 文档。然而,为了挖掘出更多的潜能,数据库开发人员还需要在他们的武器库中增加一种新的语法:XQuery。虽然 XQuery 学起来很简单,但是它非常完善,足以构造更高级的耗时且费力的查询。
进入 DB2 9 Developer Workbench。新的 Workbench 被打包成一个单独的安装程序,它取代了其前辈 DB2 Development Center。它基于 Eclipse 引擎,在 Visual XQuery Builder 中提供了新的高级 XML 功能,包括基于已有的 XML 字段或单独的 XML 模式文档可视化地设计 XQuery 的能力。Developer Workbench 还可以与 DB2 for z/OS 数据服务器一起使用。
Visual XQuery Builder
您可以在 SAMPLE 数据库上运行一些简单的查询,试一试 XQuery Builder。随 DB2 9 一起发布的 SAMPLE 数据库中有一些具有 XML 字段的表,这些表都填充了示例数据。例如 CUSTOMER 表,这个表有 XML 类型的 INFO 和 HISTORY 字段。还可以用命令 db2sampl -xml 创建自己的示例数据库。
要试一下 XQuery Builder,可以打开 DB2 Workbench,并开始一个新项目:选择 File → New → Data Development Project,或者单击 New Project 图标,然后选择 Data Development Project。
接着,将该项目命名为 XQueryProject,并保留其他默认设置。如果已经连接到 SAMPLE 数据库,那么在 Use an Existing Connection 下选择它。如果还没有连接到 SAMPLE 数据库,那么采取以下步骤:
- 选择 Create a New Connection。
- 在 Connection Parameters 下, 选择 DB2 UDB v9.1。
- 指定 SAMPLE 作为数据库名,保留其他默认设置。
- 输入登录名和密码(如果不特别指定的话,就是系统登录名/密码),然后单击 Test Connection。
- 如果一切正常,则单击 Next 继续。
在 New Project 向导的最后一部分,保留 Routine Parameters 的默认设置,并单击 Finish。
Workbench 创建好新项目之后,应该可以在左上区的 Data Project Explorer 中看到这个项目。在 Database Explorer 中,在新建的项目下面可以看到 SAMPLE 数据库。如果还没有连接到该数据库,那么单击右键,选择 Connect 或 Reconnect,并输入凭证。
展开这两个窗口中的条目。注意,在 Data Project Explorer 中的新项目下,有下面一些空的文件夹:
- XML Queries
- SQL Scripts
- Stored Procedures
- XML Schema Documents
- User-Defined Functions。
Developer Workbench 的部分威力依赖于它所提供的一组向导,其中大多数向导可以在这些文件夹上通过上下文菜单打开。在这里可以添加 XSD 文件到项目中,以便于 XML 操纵。还可以构建新的存储过程、脚本,甚至包括自己的函数。但是在这里我们将把注意力放在第一个文件夹上:XML Queries。
创建一个 XML 查询
您可以通过打开 New XML Query 向导来创建第一个 XML 查询。首先,在 Data Project Explorer 面板中的 XML Queries 文件夹上单击右键,然后选择 New XML Query。 将这个 XML 查询命名为 SimpleXQuery。
当看到 Add representative XML documents 选项时,单击 Add。这里有两个选项,一是让 Workbench 根据示例数据发现并创建一个 XML 模式,另外一种选项是使用一个已有的模式:
- Local workspace:如果已经为要使用的数据集生成了一个模式,或者已经将一个已有的 XSD 或 DTD 文档保存到工作区,那么选择该选项并找到该模式。
- Database: 如果要根据已有的 XML 数据创建一个新模式,那么选择 Database 选项。
对于这个例子,选择 Database。 对于 XML 列或模式,导航到 CUSTOMER.INFO(如果不确定如何找到它,可以在线参考图 A)。
在该向导接下来的屏幕中,可以将文档与特定的 XML 文档关联起来,您将在该 XML 文档上构建查询。在 SAMPLE 数据库中,每一行可以包含一个具有不同模式的 XML 文档。在这里,可以在行之间导航,以选择要使用的模式。对于这个例子,选择 Document 2 (见图 1)。
图 1. XML 文档行
在该向导的最后一个屏幕中,该向导要求您将文档与 XML 列相关联。如果您一直使用一个已有的 XML 模式,那么需要在这里关联它。但是这个例子是基于已有数据的模式的,因此默认情况下模式文档已经是关联的。
现在您已经创建了一个新的 XQuery View,并将其命名为 SimpleXQuery.xqm。我们花一点时间来探索一下这个视图。您将看到,示例数据使用指定列的第一行的 XML 模式列出。您还将看到大量的语法,这些语法可以直接被拖放到设计工作区,包括 Constructors、Expressions、Functions 和 Variables,它们都是基于目前万维网联盟(W3C)正在评审的 XQuery 规范的。