跳到主要内容

5.3.3 数据集成

摘要

略。

数据集成的目的是运用一定的技术手段将系统中的数据按一定的规则组织成为一个整体,使得用户能有效地对数据进行操作。数据集成处理的主要对象是系统中各种异构数据库中的数据。数据仓库技术是数据集成的关键。

1. 数据集成层次

数据集成是将参与数据库的有关信息在逻辑上集成为一个属于异构分布式数据库的全局概念模式,以达到信息共享的目的。数据集成可以分为基本数据集成、多级视图集成、模式集成和多粒度数据集成四个层次。

(1)基本数据集成。

基本数据集成面临的问题很多。通用标识符问题是数据集成时遇到的最难的问题之一。由于同一业务实体存在于多个系统源中,并且没有明确的办法确认这些实体是同一实体时,就会产生这类问题。处理该问题的办法包括:

  • 隔离:保证实体的每次出现都指派一个唯一标识符。
  • 调和:确认哪些实体是相同的,并且将该实体的各次出现合并起来。 当目标元素有多个来源时,指定某一系统在冲突时占主导地位。数据丢失问题是最常见的问题之一,通常的解决办法是为丢失的数据产生一个非常接近实际的估计值来进行处理。

(2)多级视图集成。

多级视图机制有助于对数据源之间的关系进行集成:底层数据表示方式为局部模型的局部格式,如关系和文件;中间数据表示为公共模式格式,如扩展关系模型或对象模型;高级数据表示为综合模型格式。视图的集成化过程为两级映射:①数据从局部数据库中,经过数据翻译、转换并集成为符合公共模型格式的中间视图;②进行语义冲突消除、数据集成和数据导出处理,将中间视图集成为综合视图。

(3)模式集成。

模型合并属于数据库设计问题,其设计的好坏常视设计者的经验而定,在实际应用中可参考的成熟理论较少。实际应用中,数据源的模式集成和数据库设计仍有相当的差距,如模式集成时出现的命名、单位、结构和抽象层次等冲突问题,就无法照搬模式设计的经验。在众多互操作系统中,模式集成的基本框架如属性等价、关联等价和类等价可最终归于属性等价。

(4)多粒度数据集成。

多粒度数据集成是异构数据集成中最难处理的问题,理想的多粒度数据集成模式是自动逐步抽象。数据综合(或数据抽象)指由高精度数据经过抽象形成精度较低但是粒度较大的数据。其作用过程为从多个较高精度的局部数据中,获得较低精度的全局数据。在这个过程中,要对各局域中的数据进行综合,提取其主要特征。数据综合集成的过程实际上是特征提取和归并的过程。数据细化指通过由一定精度的数据获取精度较高的数据,实现该过程的主要途径有:时空转换,相关分析或者由综合中数据变动的记录进行恢复。数据集成是最终实现数据共享和辅助决策的基础。

2. 异构数据集成

数据集成的目的是为应用提供统一的访问支持,因此集成后的数据必须保证一定的完整性,包括数据完整性和约束完整性。数据集成还必须考虑语义冲突问题,信息资源之间存在的语义区别可能引起各种矛盾。从简单的名字语义冲突到复杂的结构语义冲突,都会干扰数据处理、发布和交换。此外,数据访问权限、异构数据源数据的逻辑关系、数据集成范围等问题都需要加以考虑。

1) 异构数据集成的方法

异构数据集成方法归纳起来主要有两种,分别是过程式方法和声明式方法。采用过程式方法,一般是根据一组信息需求,采用一种点对点(Ad-hoc)的设计方法来集成数据。在这种情况下,关键就是设计一套合适的软件模块来存取数据源。软件模块不需要一个关于完整数据模式的清晰概念,主要是依赖于Wrapper来封装数据源,利用Mediator来合并和一致化从多个Wrappers和其他Mediator传过来的数据、声明式力法的主要特点就是通过一套合适的语言来对多个数据源的数据进行建模,构建一个统一的数据表示,并且基于这一数据表示来对整体系统数据进行查询,通过一套有效的推理机制来对数据源进行存取,获得所需的信息。对于声明式数据集成方法,在设计过程中要重点考虑的两个关键问题就是:相关领域的概念化建模和基于这一概念化表示的推理可行性。

另一类方法是利用中间件集成异构数据库,该方法不需要改变原始数据的存储和管理方式。中间件位于异构数据库系统(数据层)和应用程序(应用层)之间,向下协调各数据库系统,向上为访问集成数据的应用提供统一的数据模式和数据访问的通用接口。各数据库仍完成各自的任务,中间件则主要为异构数据源提供一个高层次的检索服务。

2) 开放数据库互联标准

实现异构数据源的数据集成,首先要解决的问题是原始数据的提取。从异构数据库中提取数据大多采用开放式数据库互联(Open Database Connectivity,ODBC),ODBC是一种用来在数据库系统之间存取数据的标准应用程序接口,目前流行的数据库管理系统都提供了相应的ODBC驱动程序,它使数据库系统具有很好的开放性,数据格式转换也很方便。另一种提取数据的方法是针对不同的数据源编写专用的嵌入式C接口程序,这样可提高数据的提取速度。例如,Stanford大学的WHIPS数据仓库原型系统提出在每个数据源上建立一个捆绑器,数据源上的捆绑器用嵌入式C编写,以实现数据的提取和格式转换。

3)基于XML的数据交换标准

使用中间件作为组织异构数据源集成的解决方案时,需要为中间件选择一种全局数据模式,来统一异构数据源的数据模式。异构数据集成的全局模式需要满足的条件有:

  • 能够描述各种数据格式,无论其是结构化的还是半结构化的;
  • 易于发布和进行数据交换,集成后的数据可以方便地以多种格式发布并便于在应用之间交换数据;
  • 可以采用关系或对象数据模式为全局模式,但它们并不能很好地满足上述要求。

4)基于JSON的数据交换格式

在开发客户端与服务端的应用当时,数据交换接口通常都是通过XML格式来进行数据交换的。近年来,随着AJAX技术的兴起,JSON(JavaScript Object Notation)作为一种轻量级的 数据交换格式,以其易于阅读和编写的优点,被越来越多地应用到各个项目中。