基于XML 的异构数据库集成的研究
2011-02-19王雅轩
王雅轩,顼 聪
WANG Ya-xuan,XU Cong
(大连外国语学院 软件学院,大连 116044)
0 引言
随着计算机的发展,许多企业为了满足自身的需求,设计自己的信息系统,而这些信息是独立设计的,并且操作系统和网络结构的不同造成了各种不同类型的信息资源。我们把这些不同的信息资源称为异构信息[1]。由于异构信息的存在,使企业之间难以实现数据的共享。为了实现资源的有效利用以及系统间信息的高度共享,集成异构数据库就成为迫切的需要。目前数据集成典型的方法主要有模式集成方法和数据复制方法[2]。
1 XML 及其相关技术
异构数据集成必须把各种异构数据最终都转化为一种统一的全局数据模式,以供用户访问。XML是W3G设计的一种可扩展标记语言,利用XML人们对于不同数据源,按照一定规则转换成统一的数据模式,可以对其进行统一访问[3]。目前XML与数据库之间的映射主要有两种方法:模板驱动和模型驱动。在基于模板驱动的映射中,并不预先定义文档结构和数据库结构之间的映射关系,而是在数据转换软件的处理模板中嵌入说明命令,让数据传输中间件来执行该模板。以模型驱动的映射模式的原理就是利用XML文档中的数据模型的结构显性或隐性地将其映射成数据库的结构,反之亦然。具体实现时,把一个XML 文档表示为由数据对象构成的树,每个元素类型和对象模式中的对象相对应,然后使用传统的对象-关系映射技术将这个模型映射到关系数据库。
2 用XML 实现异构多数据源的集成
文中提出了一种基于XML 技术的异构数据库数据集成的构架,属于模式集成方法。通过在用户应用程序和各种数据源之间建立一个中间层,来对用户层屏蔽数据源的差异。从而向用户层提供一致的数据视图,完成从实际数据源到用户数据视图的转换,并在中间充当数据总线[4]。
本系统的集成框架图如图1 所示,系统分为三层,从下至上各层的基本服务功能如下:
图1 异构数据库数据集成的构架图
1)数据服务器层:系统数据的提供者,它包括各种类型的数据库。每个数据源与企业内部各部门的MIS系统相连,构成自己的本地应用。
2)应用服务器层:以XML 格式的文档作为异构数据源的集成,并对用户层的访问提供支持;提供必要的数据转换功能进行数据与XML 格式的相互转换,将数据存储到XML 数据空间中,并维持XML数据空间与各异构数据源之间的映射关系。
3)用户层:用户层可以是Web 浏览器或专用的客户端,提供对集成数据的应用服务器层进行数据访问。
3 异构数据库集成方案中的关键技术
从实现角度来看,由于用户层和数据服务器层相对比较简单,在此主要对应用服务器层的关键技术进行讨论。应用服务器层的详细框架图如图2所示。
图2 XML中间件层框架图
3.1 公共模型的建立
这部分主要包括局部数据库关系模式的提取及关系数据模式到XML Schema 的转换。关系模式提取方法的目的是构建共享数据库的关系模式(包括表、字段、属性、主键和外键),保证数据提取的完整性,为进一步的模式转化提供基础。其输入是在数据库注册流程结束时,中间件层所接收到的局部数据库连接信息(数据库名称、数据库用户名、密码以及主机地址)和数据库类型。输出是数据库关系模式的列表表示集,结果可采用一个一维数组和多个二维数组分别存储注册异构数据库中的关系表表名和每个表的属性字段名称、字段类型、可否空、主键和外键属性。
由于XML DTD 采用了非XML 文档语法规则、不支持数据类型等原因,在关系数据模式到XML 模式转换中使用DTD 无法对关系表之间的约束进行转换[5,6]。而XML Schema 的语法结构比DTD 复杂,比DTD更具有表现力,更适应于各领域应用的使用[7,8],所以本文使用包含约束条件的数据库关系模式到XML Schema 转换算法来实现数据库关系模式到XML 的转换。
算法描述如下:
1)每一个异构数据源模式转换为XML Schema 的转换结果定义唯一的命名空间。
2)对每一个表R 和字段A1,…,An ,创建复杂类型元素和子元素Al ,…,An ,并设置各个子元素的数据类型。对于数据库DataBase和表R1,…,Rm ,在XML Schema 中增加一个DataBase 元素,并插入一个复合类型元素,其子元素分别为R1,…,Rm ,各子元素相应的数据类型为每个表创建的复杂类型。
3)表中主键映射的属性或元素定义为key 属性,外键映射的属性或元素定义为keyref 属性。根据表中的主键外键关系,创建子元素,若一个表中的外键作为另一个表中的主键或主键的一部分,则同一字段为外键的表映射为父元素,而另一个表映射为子元素。
3.2 查询处理器的查询分配
查询处理器的查询分配是将用户基于总体视图的查询分解为对各个数据源的子查询,并发送到相应的数据源。查询分配器在执行检索分配时,要参照公共模型的信息,将子查询准确地发送至各个目标数据源。本系统采用查询分配方式是GAV 方法,方法描述如下:
1)将接收的用户检索请求通过DOM解析器(Document Object Model)转换成XML 格式文档,得到转换后的XML Schema 定义。
2)在XML Schema 的Query 元素复合数据类型定义中,设子元素Item 表示查询的项目,Form子元素表示查询的目标表名,Where 子元素描述查询条件,其中,Item 和Form 子元素可以有任意多项。
3)在查询的分配过程中,通过遍历公共模型,查询分配器找出Form 元素值所在的异构数据源,同时找出Item 元素值中每一项对应的数据表,然后进行XML 子查询文档的构建。
4 结束语
XML的出现,为异构数据集成技术带来了希望,也使共享不同数据库中的数据成为可能,为解决异构数据集成提供了机会。相信在以后,随着XML体系结构的完善,可以更好地实现异构数据的集成、共享及利用,并大大提高信息系统的整体性能。
[1]Susame Busses Ralf-detlefKutsche,U if laser and her bertweberFederated information systems: concepts[R].Terminology andArchitectures.For schung sherichte DesFzchbereichs Informatik1999.
[2]陈跃国,王京春.数据集成综述[J].计算机科学,2004,31(5):48-50.
[3]陶以政,唐定勇.基于Java 和XML技术的异构信息系统数据集成框架应用研究[J].计算机应用研究,2004(5):38-40.
[4]BOURRET C,BORNHOVD A,BUCHMANN A.Generic Load Extract Utility for Data Transfer Between XML Documents and Relational Databases [Z].W ECW IS 2000,Milpit as,California,2000,6.
[5]杨芳,陶世群.基于XML异构数据库系统的集成设计[J].计算机工程与设计,2005,26(7):1907-1909.
[6]Chen Shyh–Kwei,LO Ming-Ling,WuKun-Lung.A practical approach to extracting DTD-conforming XML documents from heterogeneous data sources [J].Information Sciences,2006,176(7):820-844.
[7]Valentine Chelsea,Dykes Lucinda,Ed T.XML Schema数据库编程指南[M].北京:电子工业出版社,2002.
[8]Madrias,Passi K,Bhowmicks.An XML Schema integration and query mechanism system [J].Data &Knowledge Engineering,2007,65(2):266-303.