APP下载

基于XML的异构数据库集成研究*

2013-11-28

舰船电子工程 2013年12期
关键词:关系数据库数据表异构

彭 东

(92941部队 葫芦岛 125001)

1 引言

由于工作的需要,企业中各个系统之间要实现协同工作,构建统一的访问接口,实现不同系统的集成。要达到这一目标,首先要把不同平台,不同结构的数据统一到标准的数据格式,然后才能实现数据的互操作和共享,因此,异构数据库集成技术的研究是目前构建一体化信息综合集成平台的热点,也是难点。由于牵涉到不同系统的数据信息交换,需要考虑的问题包括异构数据库之间的数据转换问题、增量数据添加问题、数据更新同步问题,以及多个不同数据源的共享问题等。

为了实现在异构数据库之间数据的交换,本文提出以XML技术开发中间件,在由多个异构数据源组成的系统中,实现数据格式的转换和传输,为客户端提供透明的数据访问操作。

2 研究现状

在异构数据库集成领域研究中,刘敏超等指出在数据集成的过程中,最主要的是要解决集成模式映射问题[1],数据搜索变换问题、搜索优化的问题,其最为核心的关键点是如何建立映射关系。Alon Y.Halevy指出[2],异构数据的映射问题是一个十分复杂的问题。孟小峰在其论文中指出[3],在信息集成的过程中,最主要的是要解决异构数据源之间的数据模式准确匹配的问题。E.Ra hm和P.A.Be mstein对异构数据集成中的模式映射技术进行了总结,并建立了不同的分类标准,对现有的模式映射技术进行综合分类[4]。A.Chatterjee等利用基于实体连接匹配模型来解决数据库异构的问题[5]。D.Dey,S.Sarkar等提出了针对数据库实体异构问题的概率决策模型方案,指出由于客观上存在着多种不确定因素,对于实现异构数据库之间的精确数据匹配是不现实的[6]。P.De等提出了基于距离的异构数据实体匹配决策模型,用以判断与衡量不同实体之间的匹配状态[7]。K.Lerman,S.Minton等对异构数据库中模式映射在系统运行时的维护问题进行了讨论[8]。

3 异构数据库集成设计方案

异构数据库集成设计主要包括三个方面的内容,分别是数据转换功能的设计,数据库表与XML之间的映射功能设计,异构数据同步功能设计。

3.1 数据转换功能设计

数据转换功能的主要目标包括数据转换和数据操作的透明化。其中的数据转换功能包括两个步骤,先是利用XML技术实现不同数据库结构之间的映射和转换,然后再根据具体的映射处理数据的转换问题。而透明访问则是为了满足用户的操作需求,在异构数据库集成系统中实现数据处理的透明操作后,用户可以根据需求对数据进行输入、查询、更新等操作,系统将根据用户的使用需求自动对其进行处理,而对于用户而言,感觉上就是在操作本地数据库。

异构数据转换包括两种转换内容,一是数据库的结构,二是具体的数据。因此,数据转换首先要把数据的内容和数据的格式进行分离。XML技术既可以实现具体数据内容的描述,又可以实现数据格式的描述,因此,利用该技术可以实现内容与格式的分离,完成转换的第一步工作。此时数据库结构和XML文档结构之间已经完成了映射的操作,在接下来的数据转换过程中,对数据进行集成,对结构文档进行匹配,最后实现从源数据库到目标数据库的数据转换操作。数据转换的体系结构如图1所示。

图1 数据转换的体系结构图

首先要根据具体的异构数据源结构,生成结构文档,这一文档中的内容包括了对数据库总体结构的描述,具体包括数据表的名称、数据表中每一个数据列字段的名称、类型、是否为主键、是否为外键、是否可以为空值等。结构文档的作用主要是对其所描述的源数据库进行还原。对应于每一个源数据库,还要建立一个Schema模式文件,用以对XML数据文档进行规范性和有效性的验证。系统需要在结构文档和模式文档之间建立映射关系。当系统根据用户的输入对源数据库进行查询操作后,数据被提取到XML文档中,并与结构文档一起被传输到共享平台。在实际的操作和运行过程中,由于管理员的操作时间以及操作对象数量的不一致,在转换过程中会存在多种小体积但数量较多,结构相似的XML数据文档,为了优化数据转换的性能,在进行转换操作之前,对这些小文件进行优化整合,再将整合后的大数据文档转换到异构的目标数据库中。

3.2 数据库表与XML文档的相互映射

数据库分为多种类型,而关系数据库是使用最为广泛的一种。记录于关系数据库中的数据具有严格的结构定义和类型定义,使不同实体之间以及实体与其属性之间的关系十分清晰。而XML格式文档是一种半结构化的数据表现方式,其相对自由的标签定义,使其可以较好地表现层次型的数据结构,具有较强的灵活性。对于数据库中数据表到XML文档之间的转换操作,主要包括两个部分,一是转换数据表的结构及其相互之间的关系,二是具体数据的转换。针对于以上两种转换的方式,具体生成的文件为XML结构转换文档和XML数据转换文档。

对数据库中数据表的结构与XML文档的模式建立映射关系是转换的第一步。XML文档中需要包括数据表中的结构和数据两个方面的信息,因此,针对关系数据库中数据表的通用信息,制定对应的XML数据文档模板。这一模板定义的规则如下:

1)对于等转换的数据库中的每一个数据表,都要对应一个不同的XML结构的文档,用于描述数据表的结构信息。转换后的XML文档的命名格式为“数据表名.xsd”。

2)在具体描述数据表结构的XML文档中,其根元素应被定义为具有属性值name的形式,如〈Table name=””/〉,而将被转换的数据表名作为其name的属性值。

3)定义了根元素后,再定义根元素的子元素,采用〈Element name=””flag=””/〉的形式。该元素中的name属性,对应的是数据库表中的每一个数据列,也就是关系数据库中二维表示方式下的纵向维。在关系数据表中,每一数据列可能会带有一定的附加信息,用以标识该列是否为主键,或者是关联到其他数据表的外键,而元素中的flag属性就是用于对这些附加的属性进行表示。flag属性具有三种取值,分别是空值,表示主键的PK值,表示外键的FK值。

4)利用〈Element name=””reference=””/〉元素来表示数据库中不同数据表之间的关系。上一点中,flag属性标识了某一数据列的附加属性,可以通过该属性获得本数据表的数据项信息,如果该值被赋为FK,则表示该列数据是某一外部数据表的外键,当这种情况出现时,说明在数据库中出现了两个及其以上的关联数据库,而〈Element name=””reference=””/〉元素定义的目的就是对于这一类情况进行描述。该元素中的reference属性中记录的是与该表的外键相对应的外部数据表的名字,用于描述不同数据表之间的关系信息。

遵循以上四条原则,就可以对数据库中数据表到XML文档Schema模式进行转换操作。对于单个数据库而言,这一转换的操作步骤较为简单,而如果在数据库中存在着多个表之间相互关联的情况,则XML文档需要较为详细地记录和描述这一关联关系。在结构化的关系数据库中,不同数据表之间的关联关系可以较为严格地定义,可以展现出不同数据之间的关系,但数据与数据之间是相对独立的,没有顺序关系,而半结构化的XML文档中描述的数据则是层次性的,具有一定的顺序关系。而XML文档中主要是对数据的存储,对于数据库的结构信息描述能力较为有限。为了很好地描述不同数据表之间的关系,增加了〈Element name=””reference=””/〉元素。

如下所示为从某数据库中的Project数据表中提取的有关于工程建设的数据信息,并通过XML转换的规则,将数据内容提取到了XML文档中。该XML文档中的数据定义与提取原则遵循上述制定的相关规范

以上XML数据文档的内容中,包括了两条数据记录,其记录的编号分别是77和78。在记录中定义了工程的编号、名称、负责人、承接的单位、开始时间、计划完成时间,工程简介等。通过这一XML的描述,可以较为清晰地将数据库表中的数据进行描述。

本文在研究的过程中,主要是采用Schema方法来对数据表的结构和相互之间的关系进行描述,并对目前已有的基于Schema方式的数据表结构描述方法进行了研究,分析其存在的问题,并针对这些问题提出了一种优化的Schema映射方案。新的映射方案的主要特点是对Schema中可能出现的多种类型的元素进行了考虑,使其能够更加准确地对数据表结构进行描述。改进的Schema模式也是基于层次性的结构对关系数据库中的数据模式进行描述,但它将不同的数据结构进行了更为细致和准确的分类,主要分为五类元素,分别为单一元素、组合元素、有嵌套关系的组合元素、非单一值元素、可选元素以及分组元素。针对不同的XML文档中的元素,分别制定其到关系数据模型的转换映射。

针对组合型的复杂XML元素,在关系数据库中建立一个关系对象,将复杂元素的name属性值赋给该关系对象作为名字,并对该关系对象建立一个ID值,并作为关系的主键。

针对组合型复杂XML元素中的复杂XML元素,并且该元素是一个多值元素,则需要为该组合元素新建一个关系对象;并将该元素的name属性值赋予这一对象;并创建一个ID值,作为该关系对象的主键;并对该关系对象的父对象创建一个新的字段值;并将以FK_为前缀,与被嵌套的元素建立主从关系的联系。

对于组合元素中的单一元素,可以直接映射为关系对象中的一个单一属性字段,这一步转换较为简单。

对于组合元素中的单一属性,可以直接映射为关系对象中的一个单一属性字段,该转换较为简单。

对于XML文档中的可选元素或者属性值,在关系对象中针对该元素应创建一个关系对象,并将该对象的主键设置为其所属组合元素所对应关系对象的外键,其形式如:(ID,FK_FatherID,value)。

依据如上所述的映射关系规则,利用编程语言对其进行实现,就可以实现从XML文档所描述的数据模式向关系数据模式的转换,然后在关系数据库中根据XML所确定的关系模式,建立关系数据表,为存储源数据做好准备。

XML文档到数据库表的转换示意如图2所示。

图2 X2D工作流程图

3.3 数据同步处理

异构数据库之间的数据同步也是集成系统中重要的组成部分。传统的数据同步处理方式主要有快照差分算法和基于日志的同步方法。然而这两种同步的方法都有着较为明显的缺陷。快照差分算法采用对整个数据库进行处理的方法,需要大量的存储空间,而且当数据量较大时,其对数据的排序、对比分析等处理都需要占用大量的计算资源,导致数据同步的效率将会急剧下降。基于日志的异构数据库同步解决方案虽然在理论上,效率方面相比于前一种策略有了较为明显的提升,但由于技术上的限制,这一方案在具体的实现过程中会碰到很多问题。

针对异构数据库中数据的增量同步问题,本课题重点对其特点进行了研究,提出一种基于Web Service的数据增量同步解决方案。

对于压缩数据传输体积的问题,传输的方式是基于触发器的方式,这一方式属于同步更新方式,也就是源数据库一发生数据的改变,目标数据库立即得到信息,并随之进行更改。这一方式将会导致网络中的数据负载激增,如果源数据库操作较为频繁,则会使同步的效率大大下降。为了解决这一问题,本研究采用了异步更新的方案,只记录源数据库中数据的改变情况,包括增加、删除、更新等,而目标数据库仅是对对应于源数据库的增量部分进行更新操作。

对于数据库之间的异构问题,主要采用的是上一节研究的基于XML的数据集成模块,对应于不同的异构数据库,设计开发一个数据转换的构件,利用这一构件实现数据表结构和数据内容的转换与加载。

基于Web Service的异构数据库系统数据同步模型是构建于分布式的网络,其主要的组成包括三个部分,分别是本地数据与XML文档之间的映射与转换流程,网络传输流程,远程的XML文档与目标数据库表之间的解析与加载流程,其结构如图3所示。

4 异构数据库实现平台构建

根据上述异构数据库集成方案的设计,利用编辑语言具体实现了实验平台,对方案的功能和性能进行验证。

图3 基于Web Service的数据同步更新模型

重点讨论数据转换功能的实现,界面如图4所示。

图4 数据库结构到XML文档转换中的结构描述界面

该功能的实现代码如下:

实验证明,文本所设计的方案能够快速高效地实现数据库表与XML文档结构的转换,以及异构数据描述信息的转换,在理论上和实践应用中都具有一定的意义。

5 结语

本文利用XML Schema具体实现了数据转换与集成的过程,由于XML Schema既可利用基本数据格式,又可以自定义用户的数据格式,利用这一特点,定义了关系数据库的描述模式,以及XML文档的数据结构,从而实现对XML文档的约束和检查。XML Schema在关系数据库的数据表定义和XML数据文件之间建立起了映射机制,利用该映射机制,关系数据库中的数据可以与XML数据文件中的数据方便地进行双向交换。由于XML数据文档中的数据格式可由开发人员定义并统一,因此,利用该方法可以方便地实现数据库中数据的集成。

[1]刘敏超,刘卫东.数据集成系统关键问题研究[J].计算机应用,2009(7):45-48.

[2]A.Halevy,A.Rajaraman,J.Ordille.Data integration:the teenage years[C]//Proceedings of the 32nd international conference on Very large data bases.2008,VLDB Endowment:Seoul,Korea:9-16.

[3]孟小峰,周龙骧,王珊.数据库技术发展趋势[J].软件学报,2007,15(12):1822-1836.

[4]E.Rahm,P.A.Bernstein.A survey of approaches to automatic schema matching[J].The VLDB Journal The International Journal on Very Large Data Bases,2010,10(4):334-350.

[5]A.Chatterjee,A.Segev.Rule based joins in heterogeneous databases[J].DecisionSupport Systems,2009,13(3-4):313-333.

[6]D.Dey,S.Sarkar,P.De.A Probabilistic Decision Model for Entity Matching in Heterogeneous Databases[J].Management Science,2008,44(10):1379-1395.

[7]P.De.A Distance-Based Approach to Entity Reconciliation in Heterogeneous Databases[J].IEEE TRANSACTIONS ON KNOWLEDGE ANDDATA ENGINEERING,2002:567-582.

[8]K.Lerman,S.Minton,C.Knoblock.Wrapper maintenance:A machine learning approach[J].Journal of Artificial Intelligence Research,2008,18:149-181.

猜你喜欢

关系数据库数据表异构
ETC拓展应用场景下的多源异构交易系统
试论同课异构之“同”与“异”
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
关系数据库技术在计算机网络设计中的应用
多源异构数据整合系统在医疗大数据中的研究
吴健:多元异构的数字敦煌
探讨关系数据库设计中范式理论的教学方法
QH165点焊机器人数据库开发技术