科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道IBM DB2 Connect简介

IBM DB2 Connect简介

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

对于那些脱离大型主机的应用程序 —— 分布式应用程序来说,IBM? DB2? Connect? 已成为向它们开放 DB2 for z/OS 数据库以及 zSeries 硬件平台传统公认的所有优点的首选方法。

来源:IT专家网 2008年6月6日

关键字: IBM 数据库 DB2

  • 评论
  • 分享微博
  • 分享邮件

对于运行在 Linux、UNIX 和 Windows 系统上的应用程序,还有其他方法可以访问大型主机数据和事务。为什么使用 DB2 Connect 和 DB2 存储过程,这是一个经常问到的问题。我们认为以下几条是这种方法的主要优点:

  • DB2 Connect 和存储过程解决方案不需要单独的驱动程序或者到这些非 DB2 大型主机数据源的单独连接。
  • 使用 DB2 存储过程的方法由 DB2 来保证非 DB2 大型主机数据源中数据的完整性,而不是将此任务委托给应用程序。这样一来,应用程序看到的就是一个统一的数据视图,而不必执行它自己的连接、过滤、排序等任务。
  • 使用 DB2 存储过程的方法可以提供一种良好管理的、可控制的可用于数据访问的环境 —— 这在大型主机领域中是必需的。对非 DB2 数据的访问完全由存储过程提供,只需通过授权对存储过程的访问,便可以授权或拒绝个人对数据的访问。大多数大型主机运营者都不大愿意接受借助用于 IMS 的 ODBC 驱动程序从 Microsoft Excel 到生产 IMS 数据库之类的即席(ad hoc)访问。此外,存储过程是在 Workload Managed (WLM) 地址空间中运行的,这样可以对资源消耗进行很好的控制和管理。

使用 SQL 函数提供异构型分布数据的统一视图

大多数程序员都熟悉数据库提供的 SQL 函数,这些 SQL 函数用于执行字符串处理,进行运算和统计计算,甚至计算地图上的位置。DB2 附带了多达数百个内建函数。除此以外,DB2 服务器还允许程序员创建他们自己的函数 —— s用户定义函数(User Defined Functions, UDF) —— 以补充产品中原有的函数。由于 DB2 Connect 服务器实际上建立在 DB2 UDB 数据库服务器基础之上,因此它也允许客户创建他们自己的函数。然而,因为 DB2 Connect 本身不存放数据,所以这些函数通常需要从其他数据源访问数据,并使这些数据作为联邦数据库的一部分提供出来。为了简化用户定义函数的创建,DB2 Connect 为四种类型的函数提供了内建的加速器:

  1. 用于使用 OLE DB API 连接到数据源的函数
  2. 用于连接到存储在文件中的 XML(DB2 之外)的函数
  3. 用于连接到业界标准的 Web 服务的函数
  4. 用于通过 MQSeries 消息队列获得数据的函数

所有这些函数都有一个共同点:当被调用时,每个函数都返回一个结果集,这个结果集看上去像一个 DB2 表(这正是我们将其称作表函数的原因)。就像其他的内建函数一样,表函数也可以在 SQL SELECT 语句中使用。另外,这些函数还常用于定义视图,让应用程序使用视图,而不是直接使用函数。

OLE DB 是 Microsoft 的一种技术,它被嵌入在 Windows 操作系统中。OLE DB 的目标(就像它之前的 ODBC 的目标)是提供对各种关系和非关系数据源的透明的访问。在 DB2 Connect 的上下文中,只要有可用的 OLE DB 驱动程序(其实更恰当的名称是 provider,但由于很多人使用 driver 这个术语,因此我们在这里同时使用了这两个术语),用户编写的 UDF 便可以使用 OLE DB 接口访问任何数据源。幸运的是,对于大多数数据源(关系的和非关系的),都有可用的 OLE DB 提供程序(provider)。例如, Microsoft Data Access Components (MDAC) 提供了用于 Microsoft Access、SQL Server、文本文件和 Excel 电子表格等常见数据源的 OLE DB 驱动程序。如前所述,由于大多数供应商都为他们各自的数据源提供了 OLE DB 驱动程序,因此还有很多其他的拥有 OLE DB 驱动程序的数据源。DB2 Connect 为 DB2 提供了 OLE DB 驱动程序 —— 但通过内建的联邦支持提供了比 OLE DB UDF 更好的访问 DB2 数据源的方案。下面的图 6 提供了使用 OLE DB UDF 访问 OLE DB 数据源的一个例子:

图 6. 使用 DB2 Connect 中的 OLE DB 函数来访问数据

使用 <a href='http://www.ibm.com/developerworks/cn/db2/zones/db2ii/index_old.html?S_TACT=105AGX52&S_CMP=w-cto' target='_blank' style='font-size:14px;text-decoration:none;color: #0000FF;'>DB2</a> Connect 中的 OLE DB 函数来访问数据


实际上,不需要编写任何代码便可以创建前面图中的 UDF(它将存储在 Microsoft Access 数据库中的数据暴露成一个视图)。它是如此的简单,所以一旦和 DB2 Development Center (我们在本系列的应用程序开发部分将会加以阐述)相结合的话,就只需要点几下鼠标了。详细的说明超出了本文的范围 —— 但是您可以查阅 developerWorks 来了解更多信息。

OLE DB 访问很伟大(也是很必要的),但如今大多数数据并不是规规矩矩地就放在行和列之中(当我们大肆谈论关系数据库时,这一事实有时候竟被遗忘了)。虽然非关系数据的范围过于广泛,但是有必要至少简要地谈谈 DB2 Connect 和两种最流行的数据媒介:XML 和消息队列。

如前所述,DB2 Connect 包括内建的 XML 支持,并且可以访问存储在 DB2 数据库和文件系统中的 XML。为了访问存储在 DB2 以外的 XML 数据,您可以在 DB2 Connect 联邦数据库中创建一个 UDF。该函数将从一个文件中读取 XML 文档,然后以结构化数据输出的形式返回内容。

DB2 Connect 服务器上的 XML 函数可以辅助开发那样的 UDF。例如,db2xml.XMLVarcharFromFile、db2xml.XMLCLOBFromFile 和 db2xml.Content 这些函数都可以用于在一个 UDF 中把 XML 数据从文件读到内存。就像 OLE DB UDF 返回的数据一样,由从文件读 XML 的 UDF 返回的数据可以通过直接调用这些 UDF 来访问,或者也可以通过定义使用这些函数来实现(materialize)的视图来访问 —— 而且,还有一个向导来帮助创建这些函数!

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章