DB2 9 入门: 应用程序开发方面的增强

探索新的 Developer Workbench、更深入的 .NET 集成以及丰富的 XML 开发支持

IBM® DB2® 9 for Linux®, UNIX®, and Windows® 中为开发人员提供的增强包括一个新的 Developer Workbench、与 .NET 环境的更深入的集成、对 XML 和 SOA 环境的丰富的支持、用于 PHP 和 Ruby on Rails 的新驱动程序和适配器以及新的应用程序示例。本文是介绍 DB2 9 的特性的一个 系列 中的最后一篇文章,文中对这些增强作了概述。

Rav Ahuja (rsahuja@ca.ibm.com), DB2 程序经理, IBM

Rav Ahuja 是 IBM 多伦多实验室的一名世界级 DB2 程序经理。从第一版开始,他就一直从事 DB2 for Linux, UNIX, and Windows 方面的工作,在 DB2 开发、技术支持、市场 营销和产品战略等岗位上担任各种角色。他与世界各地的客户及合作伙伴打交道,帮助他们构建基于 DB2 和服务的解决方案,并使他们从中受益。Rav 经常发表 DB2 方面的论文、文章和书籍。他拥有麦吉尔大学计算机工程学士学位和西安大略大学的 MBA 学位。



2006 年 8 月 24 日

简介

DB2 9(以前的代号为 “Viper”)提供了大量的增强来简化数据库应用程序的开发,减少开发时间,以及提高开发人员的生产率。除了为健壮的企业应用提供一个平台外,DB2 9 还在快速构建基于 Web 服务、XML 提要、数据联合等技术的新型 “Web 2.0” 应用程序方面进行了优化。


新的 Developer Workbench

Developer Workbench 是一个可视化工具,用于辅助快速开发 DB2 业务对象,它是免费提供的。这个新设计出来的工具基于 Eclipse 框架,用于替代 DB2 Development Center(基于 Swing 架构)。

Developer Workbench 使以下任务变得容易:

  • 创建、查看和编辑数据库对象(例如表和模式)。
  • 浏览和编辑表和行中的数据。
  • 可视化地构造 SQL 和 XQuery 语句。
  • 开发和部署存储过程、用户定义函数(UDF)、例程和脚本。
  • 调试 SQL 和 Java™ 存储过程
  • 开发 SQLJ 应用程序。
  • 开发针对 XML 数据的查询和例程。
  • 执行数据移动(例如装载和提取)。
  • 与小组成员协作和共享项目。
  • 从 DB2 Development Center 中迁移项目。
  • 等等……

并不是 Developer Workbench 的所有特性在所有平台上都受支持。在初始发布的 Developer Workbench 中,较早版本的 DB2 可能不受支持。

除了为开发 DB2 9 on Linux, UNIX, and Windows 应用程序和对象提供界面外,Developer Workbench 还为在其他平台(DB2 for iSeries™ 和 DB2 for z/OS®)上使用 DB2 提供了一个公共接口。也可以将 Developer Workbench 与 IBM Cloudscape™ 或 Apache Derby 一起使用。

Developer Workbench —— 安装

Developer Workbench 安装媒体与基本 DB2 9 产品安装 CD 是分开的,但是可以在同一个媒体包中找到。由于 Developer Workbench 可以与各种不同平台和 IBM 数据服务器一起使用,因此可以从网上免费下载。它的安装非常简单,通过使用图形安装程序,只需单击几下鼠标就能完成安装。安装时所用空间大约为 400MB(在不同平台上可能有所差异),其中包含一个独立的 Eclipse 镜像,以减少与安装在系统上的其他基于 Eclipse 的工具之间的版本问题。随 Developer Workbench 一起安装的信息中心中含有 Developer Workbench 帮助和教程。

Developer Workbench —— 布局

Developer Workbench 有多个用于开发 DB2 业务对象的视图,例如:

  • Database Explorer 视图 —— 显示数据库中有哪些东西(例如表、存储过程、UDF、依赖关系、远程服务器),并允许执行针对这些对象的动作(例如创建、运行以及浏览属性)。
  • Data Project Explorer 视图 —— 在该视图中,可以通过一些简单的操作,如拖放、复制和粘贴、向导、上下文敏感的完成选项,进行过程、UDF 和 SQL 语句的开发。
  • Data Output 视图 —— 通过该视图可以查看在数据库上的数据开发动作的报告。
图 1. 显示多个视图的 DB2 Developer Workbench 布局
显示多个视图的 DB2 Developer Workbench 布局

通过 Developer Workbench 很容易开发 SQL 和 Java 例程(存储过程和 UDF)。这些服务器端对象可以帮助封装业务逻辑,并减少网络传输。对于例程,在 Developer Workbench 中可以执行以下动作:

  • 显示数据库服务器中已有的例程。
  • 使用向导创建一个新的例程。
  • 导入例程源文件,或者将已有的过程复制到开发项目中。
  • 用例程编辑器编辑过程源代码和属性。
  • 将 Java 过程打包在多个 JAR 文件中。
  • 将过程部署到不同的服务器上(例如,将为 DB2 for Windows 服务器开发的例程部署到 DB2 for System z™)。
  • 估计在 DB2 for z/OS 上运行语句的成本。
  • 并排比较和编辑例程。
  • 导出过程,以便独立于集成开发环境(IDE)进行批量部署。
  • 运行例程(测试调用)。
  • 通过在代码中逐步执行、设置断点、查看变量内容等方法调试存储过程。
  • 将例程从数据库连接拖放到项目中。
图 2. 使用 Developer Workbench 开发存储过程
使用 Developer Workbench 开发存储过程

更深入的 .NET 集成

DB2 是第一个提供对 Microsoft® .NET framework 内置支持的主流数据服务器,甚至早于 Microsoft 自己的 SQL Server。DB2 9 则更进一步,它提供了更丰富、更深入的 .NET 与 Visual Studio 之间的集成,以帮助您以更快的速度开发更强大的应用程序。DB2 在这方面的增强包括:

  • 更丰富的用于 Visual Studio 2005 的工具和插件。
  • 经过更新的用于 .NET framework Version 2.0 的数据提供程序。

更丰富的 Visual Studio 2005 插件

DB2 提供了用于 Visual Studio 的插件,来帮助您用少量或者完全不用 C# 或 Visual Basic 代码轻松构建 .NET 应用程序、Web 站点、Web 服务和数据库服务器端业务逻辑,并且这一切都不必离开 Visual Studio 环境。在 DB2 9 中,这些插件得到了极大的增强,包含了很多独特的功能,而其他数据服务器通常需要借助第三方的插件来获得这些功能。

这些增强的用于 Visual Basic 的 DB2 工具包括:

IBM Server Explorer 已经从用于 Microsoft Visual Studio 2005 的 IBM 数据库插件中消失,但是仍然保留在用于 Microsoft Visual Studio 2003 的 IBM 数据库插件当中。

  • 用于容易地处理数据库对象(例如表、视图、脚本、过程和结果集)的新的 IBM 设计器
  • 在无需编写代码的情况下生成和部署基于 DB2 的 Web 服务的能力
  • 与 Microsoft Server Explorer 的集成,用以执行数据库活动(例如管理连接和浏览数据库对象)
  • 容易地创建和调试 SQL 过程(包括公共语言运行时 [CLR] 存储过程)的能力
  • 克隆 DB2 数据库对象的能力
  • 用于快速访问模式信息的模式缓存
  • 高级对象过滤功能
  • 将数据导入和导出数据网格的功能
  • 与 Microsoft Query Builder 的集成
  • 用于重新运行例程的参数持久性支持
  • 对 IBM 家族的数据服务器,包括 Informix® Dynamic Server (IDS)、DB2 for z/OS、DB2 for iSeries 以及 DB2 for Linux, UNIX, and Windows 的支持
  • 对新的 DB2 pureXML™ 数据类型和特性的全面支持
图 3. Visual Studio 2005 中用于开发存储过程的 DB2 插件
Visual Studio 2005 中用于开发存储过程的 DB2 插件

要了解关于 DB2 9 与 Visual Studio 之间集成的更多细节,请参考 DB2 developerWorks zone for Visual Studio and .NET

经过更新的本地 DB2 .NET 数据提供程序

DB2 附带了一个经过更新、能用于 .NET framework Version 2.0 的本地 .NET 数据提供程序,并且该数据提供程序被集成到 Visual Studio Server Explorer 中。这个更新后的 .NET 数据提供程序包括以下增强:

  • 对 System.Data.Common 基类的支持 —— 这使您可以开发通用的 .NET 数据库应用程序,而不必引用任何与特定类相关的数据提供程序。在编写要在各种不同数据服务器(或提供程序)中重用的应用程序代码时,这一点尤其有用。在适当情况下,DB2 .NET 数据提供程序从 System.Data.Common 名称空间中的相应类继承而来。
    DbProviderFactory myFactory = 
      DbProviderFactories.GetFactory("IBM.Data.DB2");

    或者,也可以使用 DB2Factory 类来创建与 DB2 相关的 .NET 对象:
    DB2Factory myFactory = DB2Factory.Instance;
  • DB2 数据类型与 .NET 数据类型的对等关系 —— 在 .NET 中,对于所有 DB2 数据类型,DB2Type 名称空间中都有一个对等的数据类型。借助这一点,开发人员可以使数据类型完全保持原状。DB2Types 类型还提供了将 DB2 数据库列值表示为一个个可以为空的对象的方法。DB2Types 类的实例还可以作为 CLR 存储过程或用户定义函数的参数。
  • 可滚动和可更新结果集 —— 现有 DB2Command 类中添加了新的方法,用于创建可导航的结果集。这些方法使您的应用程序可以更新单个的列值,或者前后滚动结果集。
  • 数据分页功能 —— DB2Command 类现在有一个 ExecutePageReader 方法,该方法使应用程序可以从数据库中取一组特定的行。它允许应用程序指定从数据库中所取的起始行,以及所取的行数。在查找一组特定的行的时候,这个特性非常有用,而且比通过滚动整个结果集寻找所需的行要快得多,也简单得多。
  • 批量数据复制 —— 新的 DB2BulkCopyOperation 类提供了批量复制 DB2 表中的数据的能力。这使得插入来自 DataReader 之类的数据源或非 DB2 数据源的记录变得容易。
  • SQL 语句的批量更新 —— DB2DataAdapter 的 UpdateBatchSize 属性使应用程序可以在将 SQL 语句成批发送给 DB2 数据库服务器之前,确定要收集的 SQL 语句的数量。这可以大大提高性能,因为这样减少了客户机应用程序与数据库服务器之间零散的数据传输。

丰富的 XML 开发支持

DB2 9 包含 pureXML 技术,该技术为高度有效地管理和提供 XML 数据提供了一组独特的功能。pureXML 技术由一个真正的 XML 数据类型(按分层格式存储 XML,而不是将其存储为大型对象或分成几个关系列)、XML 索引能力、XML 文本搜索支持、SQL/XML 和 XQuery 支持、模式演变的灵活性以及大量其他的功能组成,这些功能在 “What’s new in DB2 Viper: XML to the Core”(developerWorks,2006 年 2 月)中有介绍。

作为 pureXML 技术不可或缺的一部分,DB2 9 包含了对开发以 XML 为中心和混合的应用程序的支持,以简化代码编写工作,减少开发时间,并提高应用程序的应变能力。DB2 9 中的 XML 开发支持包括:

  • 对各种编程语言和应用程序接口的支持
  • 对使用 XQuery 和 SQL/XML(或两者同时使用)查询数据的支持
  • Developer Workbench 中全面的 XML 功能(包括 XQuery builder)
  • pureXML 与 Visual Studio 和 .NET 的紧密集成
  • 新的 XML 开发代码示例和 DB2 SAMPLE 数据库增强

用于编程语言和接口的 XML 数据类型支持

DB2 客户机接口中已经添加了新的与特定语言相关的 XML 类型和绑定,以允许应用程序高效、无缝地使用 DB2 XML 数据类型。因此,DB2 XML 数据类型支持以下流行的编程语言和应用程序接口:

  • 语言 —— C/C++、Java、C#、Visual Basic、Cobol、PHP
  • 接口 —— JDBC、CLI / ODBC、.NET、Embedded SQL、SQLJ

以 DB2 对 JDBC 中的 XML 的支持为例。新的用于 JDBC 的 DB2 驱动程序已经在 XML 数据方面得到了增强。可以使用 Java 数据类型,例如字符串、字节数组和流,对作为查询结果和输入输出参数的 XML 数据进行绑定。由于当前的 JDBC 3.0 没有定义一种本地的 XML 数据类型,因此 DB2 提供了一种扩展 XML 类型,即 com.ibm.db2.DB2Xml。DB2Xml 扩展有很多非常有用的方法,这些方法使得对 XML 数据的处理变得容易。在下面的例子中,一个列被检索出来并存为 DB2Xml 对象。然后,getDB2String 方法返回 XML 值(没有 XML 声明)的字符串对象形式的串行化表示。接着,getDB2XMLBinaryStream("UTF-16") 返回一个用 UTF-16 编码 XML 值的二进制流,并提供了一个匹配的 XML 声明。

com.ibm.db2.jcc.DB2Xml xml1 = 
	(com.ibm.db2.jcc.DB2Xml) rs.getObject ("xml_stuff");
String s = xml1.getDB2String();
InputStream is = xml2.getDB2XMLBinaryStream("UTF-16");

要获得更多的例子,请参阅文章 “Develop Java applications for DB2 XML data”(developerWorks,2006 年 5 月)。

Developer Workbench 中的 XML 支持

Developer Workbench 包含对 XML 的全面支持:

  • 对 XML 数据类型的支持 —— 这种数据类型在 Developer Workbench 中被视作一等公民,因此可以在查询和例程中使用 XML 数据类型。您还可以查看、编辑和更新数据库中 XML 文档的内容。
  • 对存储过程的支持 —— 您可以创建和运行包含 XML 数据类型(输入或输出)的参数或者返回 XML 数据的存储过程。
  • 数据输出视图 —— 您可以在结果页面上查看 XML 数据类型的列,还可以将 XML 列的内容可视化成树或文档文本的形式。
  • 对 XML 模式的支持 —— 您可以从数据库中的 XML 模式库中装载已有的 XML 模式和 XML 模式文档,并查看各种属性,例如目标名称空间或模式位置。还可以注册新的 XML 模式(以及相应的 XML 模式文档)或者删除它们。
  • XML 文档验证 —— 您可以在已注册的 XML 模式上对 XML 文档执行 XML 值验证。
  • XQuery builder —— 通过 XQuery builder,可以创建完整的查询,而无需理解 XQuery 语义。您可以通过从一个模式或 XML 文档的树型表示中选择示例结果节点,并将这些节点拖放到一个返回网格中,从而可视化地构造一个 XML 查询。当一个节点在返回网格中被列出来时,就可以钻取(drill down)到查询中,添加谓词和排序方式。您可以在一个查询中钻取多层,以指定嵌套的谓词、子句和表达式。例如,您可以选择一个节点,然后钻取到查询中添加一个谓词。在那个谓词中,还可以再次向下钻取,以添加另一个谓词。在构造好查询之后,可以直接在 Developer Workbench 中运行它,以便测试该查询。
图 4. Developer Workbench 中的 XQuery builder
Developer Workbench 中的 XQuery builder

对 Visual Studio 的 pureXML 支持

用于 Visual Studio 的 DB2 插件包含对 pureXML 的全面支持,包括用于执行以下动作的功能:

  • 为列和过程使用 XML 数据类型。
  • 为 XML 列提供 XML 索引。
  • 将 XML 数据可视化的功能。
  • 更新、导入和导出 XML 数据。
  • 在已注册的 XML 模式上验证 XML 数据库。
  • 注册和注销 XML 模式。
  • 在 XML 模式的基础上生成示例数据。
  • 创建和注册带注释的 XML 模式。
  • 执行和可视化 XQuery 和 SQL/XML 脚本。
  • 应用 XSLT 到 XML 数据上,以定制可视化结果。

增强的用于 PHP 的 DB2 驱动程序

PHP 已成为最流行的 Web 应用程序开发语言之一。这种开放源码的脚本编制语言易于学习,并且带有很多强大的特性,这些特性使开发人员很容易与 HTML 进行交互。有了 Zend 等公司提供的支持和工具,PHP 在企业环境中也变得流行起来,并且被广泛地与数据库一起使用。

虽然 PHP 对 DB2 的支持已经提供了较长时间了,但是 IBM 提供的用于 PHP 的驱动程序却是 2005 年引入的。除了其他改进外,DB2 9 中的 pureXML 支持对于 (ibm_db2) PHP 扩展也是一个增强。最新的驱动程序可以从 PECL 网站免费下载,详情请参见 参考资料

这个用于 PHP 的 DB2 驱动程序还包括在 Zend Core for IBM 中,后者是一个特别适合 DB2、IBM Cloudscape 或 Apache Derby 数据服务器的受支持的 PHP 开发和生产环境,它具有无缝、即开即用和易于安装的优点。要了解关于 Zend Core for IBM 的更多信息,请参见 参考资料


用于 Ruby on Rails 的 DB2 支持

Ruby on Rails 是一种开放源码的 Web 框架,正迅速成为创建基于 Web 的应用程序的领先技术。Rails 奉行 “约定高于配置(convention over configuration)” 思想以及敏捷开发原则,它可以极大地减少开发时间和花在创建 Web 应用程序上的精力。

IBM 使 DB2 9 支持 Ruby on Rails,并发布了一个用于 DB2 的 Ruby 驱动程序和 Rails 适配器。用于 DB2 on Rails 的 Starter Toolkit 包括 DB2 Express-C (方便构建、部署、分发数据服务器)、教程、例子、flash 电影,还有其他学习资料。要获得更多详细信息,或者要下载 DB2 on Rails 相关产品,请参考本文 参考资料 部分给出的 alphaWorks Starter Toolkit。


结束语

在本文中,您看到了 DB2 9 在应用程序开发方面的一些增强,这些增强为开发新的敏捷应用程序提供了强有力的支持,并且可以提高开发人员的生产率。现在,就请测试驱动 DB2 9,并亲自体验其优点。

参考资料

学习

获得产品和技术

  • 下载试用版的 DB2 9
  • 现在可以免费使用 DB2。请下载 DB2 Express-C,这是为社区提供的免费版的 DB2 Express Edition,它包含了与 DB2 Express Edition 相同的数据特性,并为构建和部署应用程序提供了坚固的基础。
  • 用可直接从 developerWorks 下载的 IBM 试用软件 构建您的下一个开发项目。
  • http://pecl.php.net/ 下载最新的免费 IBM PHP 驱动程序。
  • Zend Core for IBM 中获得最新的用于 PHP 的 DB2 驱动程序。
  • 从 alphaWorks 下载 Ruby on Rails Starter Toolkit

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management, XML, Open source
ArticleID=155826
ArticleTitle=DB2 9 入门: 应用程序开发方面的增强
publish-date=08242006