数据集成:历史、现状、未来艾静(Web组)引言:本文主要部分是对论文《DataIntegration:TheTeenageYears》[1]的介绍,这篇论文是第32届VLDB会议(VLDB2006)上十年最佳论文的获奖发言,作者在文中总结了DataIntegration这十几年来的发展成果,在商业领域的一些相关产品,并提出了目前数据集成系统普遍存在的问题以及未来面临的挑战。本文还对数据集成领域中的一些重要思想和几个热点问题做了更加详细的介绍,力争将数据集成这十几年来的发展状况尽可能清晰地展现给读者。一、背景介绍近几十年来,计算机网络的飞速发展和信息化的推进,使得人类社会所积累的数据量已经超过了过去5000年的总和。数据的采集、存储、处理和传播的数量也与日俱增。企业或社会组织实现数据共享,可以使更多的人更充分地利用已有的数据资源,减少资料收集、数据采集等重复劳动和相应费用。然而,这些为不同应用服务的信息都存储在许多不同的数据源之中,其管理系统也各不相同。为更有效地利用这些信息,需要从多个分布、异构和自治的数据源中集成数据,同时还需要保持数据在不同系统上的完整性和一致性。另外,必须向用户隐藏这些差异,提供给用户一个统一和透明的数据访问接口。研究的重点即在于确立一种具有普遍意义的、可操作性强的分布异构数据源的集成方法。因此,如何对数据进行有效的集成管理已成为增强企业商业竞争力的必然选择,尤其是对于那些拥有多部门多数据源的大型企业来说,数据集成更是至关重要。因为每一个部门都会拥有自己的数据库,这些数据库可能是独立、异构且自治的,为了各部门间更好的合作和数据共享,并且为用户提供更好的搜索查询质量,建立一个完善的数据集成系统是极有应用价值而且尤为重要的。二、InformationManifold:具有统一的查询借口!1.背景1996年AlonHalevy、AnandRajaraman、JoannOrdille三人合著的论文《QueryingHeterogeneousInformationSourcesusingSourceDescriptions》[2]发表在VLDB国际会议上,2006年被评为VLDB十年最佳论文。这篇论文提出了一个数据集成project——InformationManifold,InformationManifold和其他同类的project极大地促进了数据集成的发展,并导致了一系列数据集成系统商业产品的诞生。2.重要意义WAMDMTechnicalReport(WAMDM-TR-2006-2)InformationManifold的目的是为多数据源提供一个统一的查询接口。用户通过这个接口提交查询可以直接得到对多个数据源的查询结果,就像是对一个数据源进行查询一样。请看这个查询的例子:找出由WoodyAllen导演的在我所在的地区放映的电影的评论。这是一个复杂的查询,要回答这个查询需要对三个Web站点(相当于数据库中的表)的内容进行连接:一个有演员和导演信息的电影网站;一个电影放映时间和地点的网站,以及一个影评站点。如果用户不得不自己访问这三个Web站点,然后在三个站点上分别进行有关信息的查询(只能查询该站点的数据库支持的信息),再自己手动把这些信息连接起来,才能得到所需的信息,那么这种复杂度必定是不可忍受的。因此,数据集成研究工作的目标就是设计出一种合适的数据集成系统,它能够自动为用户完成这些操作,并且在可以接受的时间内返回查询的结果数据。至于这些结果信息是否来自多个自治而且异构的数据库,原来的形式是否各不相同,等等问题,都由系统来解决,用户的感觉就是对单一数据库的简单查询。InformationManifold就是在这方面比较成功的范例。3.主要成果InformationManifold对dataintegration这十年来的发展的主要贡献就是论文里提出的对已知的数据源内容的描述方式(称为sourcedescription,即源的描述)。一个数据集成系统会给它的用户提供一种模式,用于用户提交他们的查询。其中典型的代表就是中介模式(或称全局模式,mediatedschema)。用户提交的查询都是基于这个中介模式的,因此dataintegration系统必须预先建立好中介模式与数据源模式之间的语义映射(semanticmappings)。在这里,InformationManifold提出了一种著名的语义映射关系的构建方法,后来被称为LAV(Local-as-View)方法。有了模式间的映射关系,用户提交的基于中介模式的查询通过查询重写(queryreformulation)转化成对于各数据源的可执行的一系列查询。现在多使用LAV视图进行查询重写,被称为利用视图应答查询(Answeringqueriesusingviews,简称AQUV)。然后查询引擎再进行查询优化和执行。形象化描述如图1所示。wrapperwrapperwrapperwrapperwrapperMediatedSchemaSemanticmappingsoptimization&executionqueryreformulation图1以下是一些重要内容(上面综述中的黑体字部分)的小专题,这些基本上概括了数据集成过去十年内的主要研究成果:中介模式/全局模式(mediatedschema):中介模式是现在最典型的的数据集成方法,它通过提供一个统一的数据逻辑视图来隐藏底层的数据细节,使用户可以把集成的数据源看作一个统一的整体。数据集成系统通过中介模式将各数据源的数据集成起来,而数据仍存储在各个局部数据源中,通过各数据源的包装器(wrapper)对数据进行转换使之符合中介模式。用户的查询是基于中介模式的,不必知道每个数据源的模式。中介器(mediator)将基于中介模式的一个查询转换为基于各局部数据源模式的一系列查询,交给查询引擎做优化并执行。对每个数据源进行的查询都会返回结果数据,中介器再对这些数据做连接和集成,最后将符合用户查询要求的信息返回给用户。使用中介模式的数据集成方法解决了各数据源中数据的更新问题。因为当底层数据源发生变化时,只需要修改中介模式的虚拟逻辑视图就可以了,大大减少了数据集成系统的维护开销。这种方法也弥补了数据仓库方法的不足,数据仓库方法必须将各数据源的所有数据都预先取到一个中心数据仓库里,当数据发生改变时,还要到底层数据源中再取一次,还要更新与这些变化了的数据的相关的那些数据,维护开销太大。语义映射(semanticmappings):这里指的是一种能够描述中介模式和数据源模式之间的语义关系的映射,它把多个数据源的模式通过映射关系集成到中介模式上。这种映射关系就是我们前面提到的“sourcedescription”的主要组成部分。语义映射关系的构建方法:LAV和GAV目前,数据集成领域关于模式间映射关系构建的基本方法主要有两种:GAV(Global-as-View)方法和LAV(Local-as-View)方法。GAV方法是将各本地数据源的局部视图映射到全局视图,即全局模式被描述为源模式上的一组视图。用户查询直接作用于定义在数据源模式上的全局视图。GAV方法的优点是查询效率比较高,缺点是用这种方法构建出来的映射关系的可扩展性较差,不适合数据源存在动态变化的情况。因为一旦有任何一个局部数据源发生改变,全局视图都必须进行修改,维护起来较困难,开销也比较大。GAV是较早以前提出的方法。InformationManifold提出了一种新的、更适合数据源特点的语义映射关系构建方法,即LAV方法。LAV方法是将全局视图映射到各数据源上的本地局部视图,即各数据源模式被描述为全局模式上的视图。当用户提交某个查询时,中介系统通过整合不同的数据源视图决定如何应答查询。这种方法可看做利用视图回答查询。该方法的优点是映射关系的可扩展性好,适合于信息源变化比较大的情况,缺点是可能会造成“信息遗失”、信息查询效率低。LAV方法有如下两个显而易见的好处:第一,描述数据源变得更简单容易了。描述(即视图)只用描述本地数据库就可以了,不必再描述用户查询需要涉及到的其他的数据源和各数据源之间的关系。由于有这种特性,当有新的数据源要加入进来时,数据集成系统可以非常容易地适应,因为每个视图仅描述这个数据库的内容。在实际应用的数据集成系统中,往往要涉及到成百上千个数据源,而且经常需要去除旧的不用的数据源,加入新的源,再做集成,所以这个容易更新再集成的特性是极其重要的,所以LAV方法是现在最流行的数据集成方法。第二,对数据源的描述更加精确了。因为源的描述(sourcedescription)在视图定义语言的表达能力中起着最关键的作用,因为系统能够选取一个最小数量的数据源集合来回答一个特定的查询,所以比较节省时间和系统开销。目前兴起的GLAV(global-local-as-view)映射方法是一种GAV和LAV方法相结合的产物,它是由全局模式上的视图与各数据源上的视图相结合形成的。GLAV方法可以结合GAV和LAV的优势,能够为数据集成系统提供更具表达能力的语义映射。查询重写(queryreformulation):数据集成系统为多数据源提供统一的接口,利用视图描述一个自治的、异构的数据源的集合。用户基于中介模式提交一个查询,数据集成系统通过源模式与中介模式之间的映射关系将该查询重写为数据源可接受的语法形式传给数据源,在随后的阶段基于数据源的查询被优化并执行。利用视图应答查询(Answeringqueriesusingviews,简称AQUV)也被称为利用视图重写查询(rewritingqueriesusingviews),即给定一个数据库模式上的查询q,和同一数据库模式上的视图定义集V={V1,V2,…,Vn},能否仅使用视图V1,V2,…,Vn获得对查询Q的应答[6]。在使用LAV方法构建映射关系的数据集成系统中,各数据源模式是全局模式上的视图,数据源的内容由在中介模式上的视图来描述。因此可以将数据源看成是物化的视图(materializedviews),将视图定义看成是数据源描述(sourcedescription)。从而将在中介模式上构造的用户查询,重写为一系列的直接基于各数据源模式的查询[5],这就是利用视图应答查询问题。有时候我们不一定能得到与用户查询等价的重写查询,原因是物化视图越来越多,想全部覆盖这些视图是很困难的。在有些情况下,作为近似,我们可以找到最大包含集,它提供可用数据源上可能的最佳结果集。因此查询重写分为两种类型:相等的查询重写:重写的查询与原查询有相同的结果集,可以理解为等价的查询重写;最大包含的查询重写:重写的查询是原查询的最大子集。三、数据集成系统的发展建设1.模式间的映射关系的生成模式和模式间的语义映射关系是数据集成系统的构建基础。现在,建立“sourcedescription”已经迅速成为开发实际应用的数据集成系统的最主要的瓶颈。更准确地说,瓶颈是建立源模式与中介模式之间的语义映射关系。要创建这样的映射关系并且维护它们,需要专门的数据库专家来完成,而且,他们还必须同时具备丰富的商业知识,才能够理解需要进行匹配的模式所具有的意义。对于企业来说,聘请这样的专门人才来建立和维护数据库的模式匹配关系,代价肯定是比较大的。有需求就有发展的动力。这促成了数据集成研究领域里的一个相当重要的分支:半自动化生成模式映射关系。一般地,完全自动地生成映射关系是一个几乎不可能完成的问题,因此研究努力的方向应该是创造出能够加速mapping的生成并且尽可能减少人工干预的工具。在自动化生成模式匹配的研究领域中,现有的工作都是基于这样的思想:第一,用于建立模式之间的匹配的技术都基于那些模式本身所包含的线索,比如模式元素与数据值或属性值在语言上的相似性与重叠性,第二,据观察,这些方法没有一个是十分简单的,以后的数据集成系统的发展趋势必然是联合这一系列单独的技术,来创建模式之间的映射关系,才能达到比较良好的效果。第三,一个重要的观察结果是,模式匹配的创建工作常