联邦数据库的概念是由Heimbigner与Mcleod于1985年提出的 [5] ,联邦数据库系统是由一些彼此相互协作而又相对独立的成员数据库组成,该系统对其成员数据库按不同程度进行集成,联邦数据库管理系统对整体提供控制和协作。每个成员数据库又可以加入多个不同的联邦数据库系统,集中式和分布式的存储模式都是允许的 [6] 。基于联邦数据系统的集成是一种相对较早的集成方法。
一种构建联邦数据库的方法是将各数据源的数据视图集成为全局模式,用户在访问各数据源的数据时能够透明地以全局模式进行。用户直接在全局模式的基础上提交请求,由数据集成系统处理这些请求,转换成各个数据源在本地数据视图基础上能够执行的请求。这种模式集成方法的特点是直接为用户提供透明的数据访问方法。该方法集成度较高,用户参与少,但缺点是构建一个全局数据模式的算法复杂,扩展性差。另一种是在联邦模式下,各数据源之间相互提供访问接口,分享数据。数据库提供本地使用的同时也参与联邦系统的运作。该方法集成度不高,但其数据源的自治性强、动态性好,且联邦数据库系统不需要维护一个全局模式。使用联邦数据库集成方法,当集成系统的数量和规模很大时,则面临着工作量极大的困境。
联邦数据库系统具有以下特点。
(1)联邦数据库系统具有分布性:系统中数据可以分布在多个成员数据库中,成员数据库可存储在单个或多个计算机系统中,也可以存储在同一地点或通信系统连接的多个地点。
(2)联邦数据库系统具有自治性:自治性体现在成员数据库管理系统能够独立地控制成员数据库,但其他的数据库可以共享其中的数据。当联邦数据库系统调用成员数据库中的数据时,成员数据库中数据不会被修改及移动。成员数据库系统进入或离开联邦数据库系统时,对成员数据库系统的一致性不会造成影响。
(3)联邦数据库系统具有异构性:由于各成员数据库都是独立设计的,成员数据库的实现技术(硬件、通讯系统等)不一致、语义不一致造成了成员数据库系统之间的异构。
(4)联邦数据库系统具有透明性:透明性体现在设计良好的联邦数据库系统会很好地屏蔽成员数据库系统之间的差异,使用户感觉到联邦数据库作为一个整体系统存在。
联邦数据库系统的中心问题是如何能够将分布异构的数据库系统透明地集成起来,在用户看来,其作为一个整体系统存在,同时,不影响每个成员的自治性。
基于中间件的数据集成是目前比较常用的数据集成方法。中间件在异构数据源和应用程序间,其作用在于协调下面的各数据源系统,并为应用程序访问集成数据提供了一个统一的数据模式和数据访问接口。中间件方法通过构造一个逻辑视图使得不同数据源之间能映射到这个中间层,中间件并不存储具体的数据,只存储所有数据的逻辑模式,且不改变数据源数据的存储和管理方式,对于数据源数量较大且数据频繁变化的集成环境较为适用。
中间件注重全局查询的处理和优化,与联邦数据库系统相比,其优势在于能够集成非数据库形式的数据源,且查询性能很好,自治性强;中间件的缺点在于它通常只具有读取数据源数据的能力,而联邦数据库对成员数据库的读写都支持。除用于数据集成的数据库中间件外,还有远程过程调用中间件、消息中间件、对象请求代理中间件以及事务处理中间件等 [7] 。
中间件为开发人员提供统一的开发环境,隐藏操作系统的异构性,使程序设计的复杂程度降低。开发人员不用再考虑程序在不同操作系统上的移植工作,可专注于解决业务问题,从而显著提高了效率 [8] 。应用中间件可以降低应用系统开发的复杂程度,缩短开发周期,并且减少了系统维护、运行和管理的工作量。此外,中间件还能使不同操作系统、不同数据库上开发的应用系统集成起来,成为一个整体。中间件的这一作用,使得在技术不断更新发展之后,以往应用软件上所做的工作仍然可用,从而节约了企业的投入。
“数据仓库之父”William H.Inmon对数据仓库进行了定义:数据仓库是一个面向主题的、集成的、时变的和非易失的数据集合,用以支持管理部门的决策 [9] 。
( 1 ) 面向主题: 数据仓库中的数据组织是围绕某些特定的分析目标进行的,这些特定的分析目标称为主题,如销售、产品、顾客等。数据仓库不是将各种数据无序、随意进行存储的数据集合,而是为了分析的目标主题,可支持围绕主题的高效分析而组织起来的。数据仓库存储模型将根据决策者的分析需求而构建,对于决策支持无用的数据将被排除,目的是提供特定主题的简明分析视图。
( 2 ) 集成的: 数据仓库中的数据是从原有的多个异构数据库中按照一定的主题和规则抽取出来的,通过数据清理、转换等步骤以及集成技术,使命名约定、结构、属性度量等具有一致性。
( 3 ) 时变的: 数据仓库中存储的数据会随时间不断变化,含有大量与时间相关的综合数据。这就需要不断进行数据内容的更新,包括将新产生的数据存入以及旧的数据转出。
( 4 ) 非易失的: 数据仓库在数据存储上总是以物理方式分开进行,这种存储上的分离,使得数据仓库不需要并发控制、恢复以及事务处理等数据库系统的机制。
数据仓库对多个异构数据源中的数据进行集成,经过数据抽取、转换、清洗、加载后的数据具有统一的存储结构及较高的数据质量,使查询、深层数据分析及挖掘可在统一高质量的数据环境下进行。分析及挖掘结果将用来辅助决策的制定。
尽管数据仓库查询效率较高,但它是通过牺牲存储空间而实现的,数据集成因集中复制数据而消耗大量的存储空间,而且只能定期更新数据,因此无法实时反映数据的变化,实时性差。
按照数据仓库的结构,可将数据仓库划分为企业级数据仓库和部门级的数据集市。
企业级的数据仓库顾名思义是汇总了整个企业的数据,对所有需要的数据按照主题进行数据集成,集成的数据既有细节数据也有汇总数据,能够为企业各部门提供决策支持,但一般构建企业级的数据仓库需要耗费多年的时间来构建和完善。
数据集市一般是针对企业某些特定主题而构建的,是部门级别的,有时也被称为部门级的数据仓库。数据集市分为两种类型,一种是从属数据集市,另一种为独立数据集市。从属数据集市是在企业已有数据仓库基础上针对某些主题而构建的,其目的是为频繁访问数据仓库的重要业务部门提供一个快速高效的查询分析机制,而且能够缓解中央数据仓库的压力。独立的数据集市数据直接来源于各操作型数据库系统,它的数据提取过程与建立一个企业的数据仓库基本一样,只不过数据集市构建针对特定的主题,但前期数据获取的复杂程度并没有比数据仓库降低多少。相对于企业数据仓库构建花费大、周期长的问题,数据集市更受到一些规模小的企业所青睐,节省了开发周期与投资。但从长远角度来看,企业发展到一定规模后,多个数据集市将导致信息孤岛问题,而利用数据仓库可以解决从整个企业视图来分析数据的问题。