IBM DB2 Connect简介(1)

正在看的db2教程是:IBM DB2 Connect简介(1)。

在本系列的 第 1 部分中,我们初步地谈到了 DB2 Connect 提供的不同编程接口以及实现这些接口的驱动程序。在最后的几节中,我们大致地描述了 DB2 Connect 提供的通信基础设施,并看到这个基础设施如何大大减少对大型主机资源的使用,如何允许分布式应用程序充分利用大型主机平台的优势(例如轻松地管理混合工作负载以及提供连续的应用程序可用性)。

您可能仍记得图 1,在这幅图中,DB2 Connect 由编程接口(被实现为 JDBC™、SQLJ、ODBC、DB2 CLI、OLE DB、.NET® 和 Embedded SQL 驱动程序)和一个通信基础设施组成。

图 1. DB2 Connect 由编程接口和一个通信基础设施组成,通信基础设施使客户机服务器应用程序和基于 Web 的应用程序能利用大型主机的优势

我们将在本文中讨论上述通信基础设施的功能之一,即 DB2 Connect 如何提供对异构型分布数据的统一访问。

在讨论这种解决方案在统一访问、分布式和异构等方面的细节之前,我们需要先将目光转向通信基础设施本身。DB2 Connect 以通信服务器的形式提供这种通信基础设施,通信服务器可以部署在 Windows®、Linux (例如 Linux for zSeries)和 UNIX® 服务器上。这种通信服务器是使用在构建 DB2 UDB 数据库服务器时所用的相同代码基础构建的,因此,它继承了 DB2 UDB 服务器那种架构中具备的所有品质。

实际上,我们在本文中所描述的功能有一个要求,那就是在 DB2 Connect 服务器本身上创建一个数据库(在这里您不需要 DB2 Universal Database™ (UDB))。乍一看来,这似乎与本系列第 1 部分中的说法相矛盾,在那里我们说 DB2 Connect 只是将应用程序连接到 DB2 for z/OS 和 DB2 for iSeries® 数据库,DB2 Connect 并不管理数据。然而需要澄清的是,我们要在 DB2 Connect 服务器上创建的这个数据库并不存放数据。它只是作为一个单一的连接点来使用,以便向应用程序提供统一的或单一的数据库镜像。于是,DB2 Connect 服务器只是将对数据的请求路由到真正管理数据的不同数据库服务器。

虽然在第 1 部分您了解到真正使 DB2 Connect 有别于其他竞争者的通信管道的一些特性,但您很可能已经知道,DB2 Connect 至少尽到了责任(将应用程序连接到大型主机)。现在您对 DB2 Connect 的底层架构有了更好的理解,接下来是该提供比本系列文章的第 1 部分(副标题 - 内有乾坤)更进一步内容的时候 —— 我们将从这里开始第 2 部分。

在第 2 部分中,我们将谈到作为数据访问平台的 DB2 Connect,在这里我们不仅仅是谈论大型主机上的 DB2。例如,您知道吗,DB2 Connect 工作站可以在同一个事务中执行一个 DB2 for z/OS 数据库和 Windows 数据库上的 Informix® IDS 之间的分布式连接(join),它还可以在同一个提交范围内使用内建的对两阶段提交(two-phase commit,2PC)的支持来更新这些数据源。我提到过您将发现一些巧妙的特性,这就是其中之一!如果说这听起来像是联邦,或者更像是 WebSphere® Information Integrator (前身为 DB2 Information Integrator),那就对了。实际上,所有 DB2 UDB 和 DB2 Connect 服务器都附带了 WebSphere Information Integrator 对整个 DB2 UDB 家族和内建在引擎中的 Informix IDS 的联邦支持。WebSphere Information Integrator 之类的产品扩展了联邦引擎的范围,使之包括其他关系数据源(Oracle、Microsoft® SQL Server)、非关系数据源(ADABAS、VSAM)、OLE DB、XML 和企业中任何其他数据源。

对异构型分布数据源的统一访问

您也许知道统一(unified)、分布(distributed)和异构(heterogeneous)的意思是什么,但可能并不清楚 DB2 Connect 是如何实现这些概念的。您也许熟悉 IBM WebSphere Information Integrator 产品,并且会想,这些词语很好地描述了这些产品。请继续阅读本文,如此一来这些产品之间的相互关系就会变得更加清晰。

统一访问是减少在异构环境中开放应用程序的复杂性的一种非常好的方法。虽然应用程序编程人员总能一一建立到各个数据源的连接,但更容易的方式还是在应用程序中只使用一个数据库连接。到不同数据源的不同连接需要多个驱动程序(例如,一个单独的 DB2 和 Informix JDBC 驱动程序)。如果在应用程序中使用多个不同的连接,那么在对待数据时,就不能把数据看作是由单个数据库管理的那样(例如,应用程序编程人员必须从多个数据源取数据,然后才可以执行连接操作)。而且,当使用多个不同连接时,代码在应用程序中的位置便会固定下来,这样数据架构师就不能自由地修改数据的位置,以适应不断变化的业务需求。

相反,统一数据访问机制则为应用程序编程人员提供了到企业所有数据资产的单点连接。它允许使用单个 API (驱动程序),允许使用一种风格的 SQL(您不必担心 SQL Server 使用货币数据类型而 DB2 UDB 不使用这种类型),它还对数据位置进行抽象,以便可以在不影响现有应用程序的情况下更改数据位置。最后,它允许编程人员一致地对待所有数据,就好像它们来自同一个关系数据库,并且那个数据库可以在保证事务完整性的情况下管理对数据的连接、排序和过滤 —— 并且,由于有了对 DB2 Connect 基本特性的扩展,后端数据源不必一定是关系数据源(例如,它可以是 VSAM 或 ADABAS 数据源)。

我希望您已经清楚,使用单个数据库比起协调对多个数据源的访问来要简单得多。但我们 IBM 信息管理解决方案的不同之处在于,我们并不期望您取消现有的应用,全部移植到 DB2 数据库,因为那样不现实。

DB2 Connect 通过以下三种不同机制之一实现简单直观的访问方法:

联邦数据库

存储过程

SQL 函数

DB2 Connect 和联邦数据库

DB2 Connect 附带了一个内建的基础级联邦数据库功能。您可能对这个功能比较熟悉,因为之前 IBM DataJoiner 产品也提供了这个功能。从 Version 8 开始,联邦数据库支持已成为 DB2 Connect 和 DB2 UDB 服务器的一部分,任何人不需要购买额外的产品就可以使用该功能。换句话说,当您在 Linux、Windows 和 UNIX 服务器上部署了 DB2 Connect 服务器时,就可以创建一个联邦数据库,并且应用程序可以连接到这个联邦数据库。建立了与联邦数据库的连接后,请求被路由到真正的数据源 —— 但是函数补偿、数据类型转换、有效数据检索的优化等复杂性对用户来说是透明的。

DB2 Connect 的联邦组件包括对 DB2 UDB for Linux、DB2 UDB for UNIX 、DB2 UDB for Windows、DB2 UDB for VSE/VM、DB2 UDB for z/OS、DB2 UDB for iSeries 和 Informix IDS 数据库服务器的读/写支持。

您可以使用 DB2 Connect 中的联邦功能来执行跨这些服务器的分布式请求,如图 2 所示:

图 2. DB2 Connect 的联邦数据库功能

例如,以下语句:

SELECT * FROM T1, T2 where T1.C1

(0)

相关推荐

  • IBM DB2 Connect简介(1)

    正在看的db2教程是:IBM DB2 Connect简介(1). 在本系列的 第 1 部分中,我们初步地谈到了 DB2 Connect 提供的不同编程接口以及实现这些接口的驱动程序.在最后的几节中,我们大致地描述了 DB2 Connect 提供的通信基础设施,并看到这个基础设施如何大大减少对大型主机资源的使用,如何允许分布式应用程序充分利用大型主机平台的优势(例如轻松地管理混合工作负载以及提供连续的应用程序可用性). 您可能仍记得图 1,在这幅图中,DB2 Connect 由编程接口(被实现为 

  • 创建一个空的IBM DB2 ECO数据库的方法

    问:怎样才能创建一个空的 IBM DB2 ECO数据库? 答:一般情况下你需要一个空数据库作为存储 EcoSpace 的容器.Delphi 2005 提供了一张光盘,其中包括 IBM DB2 UDB 开发人员版.您可以使用 Control Center(可在 IBM DB2 General Administrator Tool 中找到).在 Control Center 中,可以使用树型视图来查看系统.DB2 实例和数据库.使用向导创建一个新的数据库,这将为您提供一个分为 7 步的向导,在那里只

  • IBM DB2 日常维护汇总(一)

    正在看的db2教程是:IBM DB2 日常维护汇总(一).: 1.DB2产品的级别有那些? 企业版的NTERPRISEEDITION 工作组版WORKGROUPEDITION 企业扩展版ENTERPRISEEXTENDEDEDITION 个人版的PERSONALEDITION 卫星版的SATELLITEEDITION 微型版的EVERYPLACE 2.可以连接到DB2数据库的产品有哪些? DB2客户端 DB2CONNECT DB2DATAPROPAGATOR DB2NET.DATA DB2DAT

  • IBM DB2 日常维护汇总(八)

    正在看的db2教程是:IBM DB2 日常维护汇总(八). 154.CONCAT() 返回两个字符串的连接. SELECTCONCAT(EMP_NO,EMP_NAM)FROMBSEMPMS; 155.YEAR() 返回数值的年部分. SELECTYEAR('2003/01/02')FROMBSEMPMS; 156.VARCHAR() 返回字符串,日期型,图形串的可变长度的字符串表示. SELECTVARCHAR(EMP_NAM,50)FROMBSEMPMS; 157.UCASE()ORUPPER

  • IBM DB2 基本性能调整

    正在看的db2教程是:IBM DB2 基本性能调整.缓冲池 如果你有使用DB2 UDB的经验,你应该知道, 缓冲池是内存中的一些单独分配给DB2 数据库管理器的空间,让它去做为数据库添加新数据或者去响应一个查询从磁盘返回一些数据数据页的缓冲区.由于从内存中访问数据势必比从磁盘上读取要快的多,因此通过减少磁盘的I/O操作缓冲池改善了数据库的整体性能. 实际上,研究缓冲池是怎样被创建和被使用在调整优化的数据库性能是最重要的一步. 由于缓冲区的重要性地位,每个DBA 都应该了解DB2 UDB怎么使用他

  • IBM DB2 日常维护汇总(四)

    正在看的db2教程是:IBM DB2 日常维护汇总(四). 46.如何快速清除一个大表? ALTERTABLETABLE_NAMEACTIVENOTLOGGEDINITALLYWITHEMPTYTABLE     ALTER TABLETABLE_NAME ACTIVE NOT LOGGED INITALLY  WITH EMPTYTABLE     两个commit之间的delete 动作是不记日志的      commit      alter table ab activate not l

  • IBM DB2 日常维护汇总(三)

    正在看的db2教程是:IBM DB2 日常维护汇总(三). 26.DB2实例的服务器的默认端口是? 50000 服务器名称为DB2CDB2 27.DB2UDB服务器端的认证类型有? SERVER SERVER_ENCRYPT CLIENT DCE DCE_SERVER_ENCRYPT KERBEROS KRB_SERVER_ENCRYPT 28.DB2客户端的认证类型有? SERVER SERVER_ENCRYPT DCS DCS_ENCRYPT CLIENT DCE 29.DB2中有哪几种类型

  • IBM DB2 日常维护汇总(九)

    正在看的db2教程是:IBM DB2 日常维护汇总(九). 167.REPEAT(EXP1,EXP2) 返回EXP1重复EXP2次后的字符串. SELECTCHAR(REPEAT('REPEAT',3),21)FROMBSEMPMS; 168.REAL() 返回一个数值的单精度浮点数表示. SELECTREAL(10)FROMBSEMPMS; 169.RAND() 返回0和1之间的随机浮点数. SELECTRAND()FROMBSEMPMS; 170.POWER(EXP1,EXP2) 返回EXP

  • IBM DB2 日常维护汇总(二)

    正在看的db2教程是:IBM DB2 日常维护汇总(二).    10.AIX下用哪个命令来安装DB2? INSTALLP命令 11.同一操作系统下可以安装多个DB2数据库? 可以的 12.如何停止实例? DB2STOP 13.如何启动实例? DB2START 14.如何修改注册项的值? DB2SET可以修改 如: 设定当前实例的一个参数 DB2SETPARAMETER=VALUE 设定一个全局级的参数 DB2SETPARAMETER=VALUE-G(小写) 查看能在配置文件注册表中设置的所有变

  • IBM DB2 日常维护汇总(六)

    正在看的db2教程是:IBM DB2 日常维护汇总(六). 91.如何创建DB2的概要表? DB2的概要表功能类似于ORACLE的实体化视图! 语法为: CREATESUMMARYTABLETABLE_NAMEAS(FULLSELECT)... 例如: 定义一个可以刷新的概要表: CREATESUMMARYTABLETABLE_NAMEAS(SELECT*FROMTABLE_NAME1WHERECOL1='AAA') DATAINITIALLYDEFERREDREFRESHDEFERRED 其中

随机推荐