联邦体的可扩展性和开放性
所有系统都需要随时间而发展。在联邦系统内,可能需要新的数据源来满足用户业务不断变化的需求。IBM 使增加新的数据源变得很方便。联邦数据库引擎通过称为包装器的软件组件来访问数据源。通过为那个数据源获得或创建包装器来访问新型的数据源。包装器体系结构支持新包装器的创建。一旦存在包装器之后,简单的数据定义(DDL)语句允许在不停止正在进行的查询或事务的情况下动态地将数据源添加到联邦体。
可以包装任何数据源。IBM 支持 ANSI SQL/MED 标准 [1] <http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/0203haas/0203haas.html>(MED 表示外部数据的管理,Management of External Data)。这个标准记载了联邦服务器与外部数据源通信所采用的协议。任何写到 SQL/MED 接口的包装器可以结合 IBM 的联邦数据库一起使用。因而可以由第三方和 IBM 编写包装器,然后结合 IBM 的联邦数据库一起使用。
数据源的自治
通常,数据源有现有的应用程序和用户。所以,当将数据源引入联邦体时,不影响它的操作是很重要的。IBM 的联邦数据库不影响现有数据源的本地操作。现有应用程序的运行不会发生变化,既不会修改数据也不会移动数据,接口也保持相同。尽管对联邦系统执行全局查询可能会涉及各种数据源,但数据源处理数据请求的方式并不受此影响。同样,当数据源进入或离开联邦体时,不会影响本地系统的一致性。唯一的例外是在对加入联邦体的数据源执行联邦的两阶段提交处理期间,会受到影响。(但在 DB2 V7 中不存在这种问题,联邦的两阶段提交用在 DataJoiner 中。)在同一工作单元中所涉及到的数据源将需要参与到提交处理过程之中,如果有必要,可能会要求回滚相关的更改。
与其它产品不同,我们的包装器体系结构不需要在主管数据源的机器上安装任何软件。通过使用数据源正常的客户机,我们通过客户机服务器体系结构与数据源进行通信。用这种方式,使 IBM 的联邦数据源看上去就象这个数据源的另一个应用程序。
优化的性能
优化器是关系数据库管理系统的组件,它决定执行每条查询的最佳方式。关系查询是非过程化的,每个关系运算符通常有几种不同的实现,而且在执行一条查询时,可供选择的运算符的可行顺序有许多种。虽然一些优化器使用启发式规则来选出一种执行策略,但 IBM 的联邦数据库考虑各种可能的策略,对每种策略可能的成本建模,然后选出一种成本最低的策略。(通常,根据所消耗的系统资源来衡量成本。)
在联邦系统中,优化器必须决定是由联邦服务器来执行查询中所涉及到的各种操作还是由存储数据的数据源来执行这些操作。它还必须决定操作的顺序,以及采用哪些实现来执行查询的本地部分。为了做出这些决定,优化器必须以某种方式了解每个数据源能够做什么,了解它的成本如何。例如,如果数据源是一个文件,那么认为它是智能的,并请它来执行排序或应用某种函数,显然是毫无意义的。另一方面,如果数据源是一个关系数据库系统,它能够应用一些谓词,并可做一些连接操作,那么如果利用这个数据源的功能能减少返回给联邦引擎的数据量,那应是个不错的想法。这通常取决于每条查询的具体细节。IBM 优化器对查询中所涉及到的各种数据源使用包装器来评价各种可能性。通常,在执行策略上,好的决定和差的决定所引起的性能差异可以达到几个数量级。IBM 的联邦数据库能够使用包装器来对不同数据源进行联邦查询成本进模,在这方面,它是数据库行业中独一无二的。因此,用户可以期望从他们的联邦系统中获得最佳性能。
为了进一步增强性能,每个包装器实现使用数据源的本机 API 来利用每个数据源所提供的可操作的调节器。例如,将多个生成的行组成一条消息(又名为块存取)是一种常见的性能调整。查询编译器与包装器进行通信以指出哪些查询段可以利用块存取,因而在没有丧失查询语义的情形下,在运行时达到最佳性能。
附件2:外文原文(复印件)
IBM Federated Database Technology
In a large modern enterprise, information is almost inevitably distributed among several database management systems. Despite considerable attention from the research community, relatively few commercial systems have attempted to address this issue. This article describes the technology that enables clients of IBM's federated database engine to access and integrate the data and specialized computational capabilities of a wide range of relational and nonrelational data sources.
Introduction
In a large modern enterprise, it is almost inevitable that different portions of the organization will use different database management systems to store and search their critical data. Competition, evolving technology, mergers, acquisitions, geographic distribution, and the inevitable decentralization of growth all contribute to this diversity. Yet it is only by combining the information from these systems that the enterprise can realize the full value of the data they contain.
For example, in the finance industry, mergers are an almost commonplace occurrence. The newly created entity inherits the data stores of the original institutions. Many of t