探讨异构多数据库系统的集成技术

时间:2022-06-04 02:06:18

探讨异构多数据库系统的集成技术

摘要:异构多数据库集成系统是数据库领域的研究热点和难点课题。该文首先对异构多数据库系统的集成进行设计,并进一步探讨了系统集成技术的实现,涉及到模式消解技术、查询处理技术以及事务处理技术。

关键词:异构多数据库;集成技术;模式消解;查询处理;事务处理

中图分类号:TP3文献标识码:A文章编号:1009-3044(2010)08-1795-02

Explore the Integration of Heterogeneous Multi-database System Technology

CHEN Fei

Abstract: Heterogeneous Multi-Database Integration System is a database research in the field hot and difficult issues. This article first integration of heterogeneous multi-database system design, and to further explore the implementation of the system integration technology, involving digestion pattern, query processing technology, and transaction processing technology.

Key words: Heterogeneous multi-database; integration technology; model digestion; query processing; transaction processing

异构多数据库系统是指多个相关的数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身已经存在,并拥有自己的DBMS。异构多数据库系统的集成目标在于实现不同数据库之间的数据信息资源共享。它的成因也多种多样,一般是在对旧系统进行扩建时比较常见。本文将重点探讨异构多数据库系统的集成技术。

1 异构多数据库系统的集成设计

1.1 异构多数据库的体系结构

异构MDBS的体系结构如图1所示。

异构MDBS本身是一种Client/Server结构,多个异构MDBS的Client与MDBS交互作用,用户可以通过异构MDBS对多个LDB进行存取操作。异构MDBS管理所有全局数据库的控制信息,包括全局模式、全局事务的提交和控制等。每一个LDB通过一个驱动器(Driver)与MDBS连接,这个驱动器与LDB在一个站点上,异构MDBS与驱动器之间的通信构成一个通信子层CSS(Communication Subsystem)[1]。从异构MDBS的体系结构可以看出,异构MDBS对LDB没有做任何改动,因此LDB上的用户还可以对LDB进行直接访问,LDB上原来的应用程序还可以直接运行于LDB之上。

1.2 集成设计的关键技术

建立异构多数据库系统的集成时经常遇到的一项十分棘手的工作便是整合用户原有的一些应用系统,而这些旧的应用系统往往是建立在异构的数据库基础之上。

首先,为给用户提供一个统一的存取模式,在异构MDBS中只保留一个供用户查询及修改的全局数据模式,而这个全局模式是由各个异构的LDB数据模式通过模式消解得到的,这就是异构多数据库系统集成中的模式消解技术。

其次,在异构MDBS中采用统一的全局查询语言,因此需要把全局查询语言分解和转换为相应的LDB查询语言交于LDB执行,然后合并各LDB查询结果以产生最终的用户查询结果,这就是异构多数据库系统集成中的查询处理技术。

另外,由于异构MDBS中的事务是被分解为多个子任务,并由各LDB分别执行相应子任务来完成的,因此在异构MDBS中,存在着如何保持全局事务的可串行化执行、全局事务的原子性及各个LDB之间的数据一致性等问题,即异构多数据库系统集成的事务管理技术[2]。

2 异构多数据库系统的集成实现

2.1 模式消解技术

模式消解的目的是将一组不同的LDB模式转换成一个统一的全局模式,通过对一组模式施行一组函数来实现的。其中每一个函数将一种LDB模式转换成统一的模式。

消解可以通过重命名实体和属性的方法来实现,该方法所解决的是实体命名和属性命名的冲突,即在不同的LDB中,相同的概念有不同名称或不同概念有相同名称时出现的冲突。该方法是在异构MDBS中建立一个MDBS与LDB之间名称对应关系的目录。也可以通过一致化表示和属性一致化来实现, 一个实体是由一系列属性组成的,类似地,虚类也是由一系列属性组成的,它的成员查询部分决定了一个虚类的实现方法,每一个成员查询对应一个LDB中的实体与异构MDBS中虚类的对应关系。因此每一个LDB中实体的属性都要转换成异构MDBS中相应的虚类的属性。

2.2 查询处理技术

异构MDBS中的查询处理主要包括查询分解、查询转换。在异构MDBS中,用户可以根据全局模式用全局查询语言对多个LDB同时进行查询。一个全局查询一般要经过三步处理:

1) 把全局查询分解成多个子查询,每一个子查询对应一个LDB中的数据,分解后的子查询仍用全局查询语言表示的。

2) 每一个子查询都转换成相应的LDB的本地查询语言并递交到相应LDB中执行。

3) 子查询的结果返回并组合成最终的查询结果。

通过查询分解以后,每个子查询只对应一个LDB,但子查询的查询语言还是全局查询语言。如果全局查询语言和LDB的本地查询语言不同,还要通过查询转换把全局查询语言转换成本地查询语言。查询转换不仅要考虑转换的正确性,还要考虑转换的可行性。有些全局查询语句可能无法转换成相应的目标查询语句(例如目标语言中无此相应的功能),则需要LDB传回与此查询相关的数据,在后处理中由异构MDBS完成查询功能。因此在查询转换中还需要一个过滤器,由它检查和识别那些不能在LDB中执行的查询语句。

不同的查询分解对应不同的系统性能,为达到优化系统性能的目的,还需要全局优化器和本地优化器。一个全局查询的开销是各个LDB查询的开销加上后处理的开销再加通信开销。

2.3 事务处理技术

一个MDBS是建立在多个分布异构多数据库之上的,它为用户提供一个统一的存取数据的接口,其中的每一个LDB都是自治的,由一个本地的DBMS来管理,它的局部事务不为MDBS所知,因此在MDBS中保持事务的一致性和原子性是非常困难的。

由于LDB上的局部事务不受GTM的控制,所以GTM只能控制全局事务的执行顺序。但在某些情况下,即使全局事务严格串行执行也不能保证全局的可串行化,如下例:

设有两个站点Sl、S2,Sl上有数据a和b,S2上有数据c和d。T1和T2是两个只读的全局事务:

T1:r1(a)r1(c)

T2:r2(b)r2(d)

另外还有T3、T4分别为S1、S2上的局部事务:

T3:w3(a)w3(c)

T4:w3(b)w3(d)

虽然已经严格保证了全局事务Tl、T2的顺序执行,但是从执行结果上来看却是这样的:Sl上的执行顺序为T1、T3、T2,而S2是执行顺序为T2、T4、T1,在这种情况下,全局事务的可串行性没有得到保证。上面的主要问题在于局部事务与全局事务发生了冲突,但是由于GTM不知道局部事务的执行情况,因此也无法发现这种冲突,这是异构MDBS中控制全局事务可串行化执行所面临的主要问题。

为了避免出现上面的情况,可以采用不允许无冲突的事务(如T1、T2)在相同的站点上执行的方法。主要思想是GTM在每一个站点上只运行相互之间有冲突的事务,如果两个要在同一个站点上执行的事务之间没有冲突,则GTM对它们进行修改使之产生冲突。一种可行的方法是在每一个站点上设一个特殊的数据,称之为令牌,使无冲突的两个全局事务在令牌上发生冲突。每个LDB上只有一个令牌,不同的LDB上的令牌不同,只有全局事务才可以存取令牌。每一个站点上执行的事务都要执行读令牌和写令牌操作,这个令牌数据的读写操作保证了全局事务的可串行化执行。

3 结束语

总之,基于单一数据库产品开发的系统已经难以适应新应用的需要,许多应用不可避免地涉及多个不同异构数据库系统,需要联合使用。对于用户而言,面对所有这些复杂的分布异构特性,他们希望屏蔽掉各种层次的异构特性,他们不必知道各物理数据库系统的分布及数据库的结构组成和操作方法,也不必自己去进行数据转换和结果汇总,只需通过简便的全局访问方法得到一个综合结果,这就是异构多数据库集成技术的主要研究内容,也是其意义所在。

参考文献:

[1] 姜帆.谈异构数据库集成技术[J].重庆电子工程职业学院学报,2009(4).

[2] 孔祥翠,耿玉水,赵中华.异构数据库集成技术的研究[J].山东轻工业学院学报(自然科学版),2008(2).

上一篇:当前电子图书格式比较及在手机媒体中的演变 下一篇:基于“向导”模式农作物远程诊断算法的研究