基于XML异构数据库中数据迁移技术的研究
2014-10-21黄晓川杨晓鹏黄琛
黄晓川 杨晓鹏 黄琛
【摘 要】本文详细研究分析了传统三大经典数据集成体系结构,通过对比其优缺点,提出了一个基于XML技术的数据迁移中间件模型,并讨论了基于该模型的关键技术实现策略。
【关键词】XML;异构数据库;数据迁移
0 研究背景及意义
随着我国信息化程度的高速发展,各种教育考试系统如雨后春笋般的层出不穷。全国各个省市出现大量成招、高招、自考、会考等各种不同类型的考试系统。不同的教育考试系统采用不同的开发工具、不同的网络环境、不同的数据库管理系统等进行开发。教育考试系统所存储的大量信息也大多数采用了不同的数据结构和数据类型等[1]。虽然各考试系统积累了大量的考试信息及成绩信息,但各系统都是独立工作,相互间不能够共享资源而形成了一个个“信息孤岛”。同时,这些信息系统的开发年代各有不同,使用的技术工具也各式各样,这就给这些珍贵的教育考试信息的日常维护埋下了重大安全隐患,也给管理人员对其进行数据挖据及分析工作造成了很大障碍。为了能进一步加强对教育考试类信息的安全管理,充分利用并分析这些独立分散的数据,在江西省各教育考试系统之间实现数据共享与数据交换,有必要建立一套完善数据集成交换平台。通过这个平台可以使各教育考试系统之间共享考试信息及成绩信息,给众考生带来极大便利,同时也方便对各考生考试信息及成绩信息进行集中式管理。
1 三大经典异构数据集成体系结构分析
1.1 数据仓库体系结构
基于传统数据仓库体系结构将来自几个异构数据源的数据副本,按照集中且统一的视图要求,进行预处理、转换,由此来符合数据仓库的模式,然后将其存储到数据仓库中,给用户提供一个透明的统一视图。图1即为数据仓库体系结构示意图。由于数据的集中,使得用户可以通过数据建模、联机分析处理和数据挖掘工具有效利用数据,方便能正确及时的作出决策[2]。
图1 数据仓库体系结构示意图
基于数据仓库的数据集成系统结构,其优点是数据高度集中,建立用户端较为方便,有利于对大量集成数据的高效处理。但数据仓库的集成系统面临着初始数据装载和变化后数据的更新问题,如果用戶需要实时数据,那么数据即时更新的效率影响了系统的可用性,数据更新问题成为该方法的最大弊端。
1.2 联邦数据库体系结构
联邦数据库系统是虚拟视图法的一种,目的是实现数据库系统间部分数据的共享。联邦数据库系统由一系列独立、自治的数据库系统组成[3],而且各个数据源相互独立。联邦数据库系统主要通过数据库转换和模式转换实现。
1.2.1 数据库转换。
在数据库转换中任何一个数据库都通过一定的关系映射生成一个用户数据库的副本,当用户访问数据库时,实际上只是通过用户可以理解的模式来访问源数据库中的数据,也即是说不同的数据源之间使用数据转换接口来实现数据的相互访问,如此一个数据源就可以访问任何其它数据源的信息。图2所示为数据库转换示意图[2]。
图2 数据库转换示意图
1.2.2 模式转换
模式转换在各数据源之间建立一一映射,然后通过事务翻译到另外的数据源中去执行。若此时有n个异构数据源需要相互连接,则需要构造n×(n-1)个映射程序来支持这n个异构数据源之间的互相访问。因此当参与联邦的数据库很多时,建立映射规则的任务不可行。下面给出了四个异构数据源构造联邦数据库的结构示意图,其中每个数据源都必需和其他三个数据源进行相互映射[2]。
图3 模式转换示意图
通过对联邦数据库系统数据库转换和模式转换分析可知联邦数据库系统显然不是一个很好的解决方案。
1.3 Wrapper/Mediator中间件体系结构
基于中间件的的数据集成是一种典型的模式集成方法,其主要包括中间件(Mediator)和包装器(Wrapper)[4]。每个数据库都是通过包装器与中间件进行交互的,而中间件则与用户进行交互,并且将用户要求的查询通过包装器从数据源中得到结果。因为中间件结构不存储任何数据,它和数据仓库结构是有本质区别的。图4展示中间件集成多个异构数据源的系统结构,和数据仓库一样,典型的数据集成将会有多个不同的异构数据源[2]。中间件体系结构是目前比较流行的数据集成方法,它通过在中间层提供一个统一的数据逻辑视图来隐藏底层的数据细节,使得用户可以把集成数据源看为一个统一的整体。
图4 中间件体系结构示意图
2 基于XML的数据迁移模型
利用XML文档作为中间件,可以将源数据库的结构和数据分离出来,生成源数据库的结构文档和数据文档,使数据库的结构和XML文档的结构之间形成映射,同时在数据迁移过程中,根据源数据库的结构文档再现和还原目标数据库,目标数据库生成之后,使用DOM解析器解析读取数据文档中的数据,将其迁移到目标数据库中的过程。以下为基于XML的数据迁移模型示意图[5]。
图5 基于XML的数据迁移模型
为了减少数据迁移的响应时间,提高数据迁移的效率,在数据迁移之前,需要将这些小的数据文档整合到一起,形成一个大的数据文档。最后,根据规则将数据文档迁移到异构数据库中[5]。
3 关键技术实现策略
3.1 Web Services封装
在这里主要描述常见的基于数据库访问API的封装以及基于ADO访问的封装。
基于数据库访问API的封装根据Web Services标准,将功能组件封装成Web Services组件,然后使用WSDL描述服务,将从信息系统提取到的数据写入XML文档。整个过程可以分为以下几个阶段:引用API函数库,声明Web Services对象,声明Web Services方法,调用API方法操作数据库,释放对本地应用程序的引用[6]。
3.2 Web Services集成和转换
通过使用开放的XML标准和可扩展样式表转换语言(XSLT)来分析和提取XML文档,然后结合不同的XML文档以及映射XML文档和关系数据库来实现基于单位细粒度的Web Services的数据交换和数据共享。
3.2.1 不同XML文档的集成
基于上述的映射规则,可以通过XML查询语言XPath和XQuery[7]转换Web Services单元的XML文档,形成统一结构的XML文档模型,通过使查询进行一串可执行功能以满足复杂查的询要求[8]。整个过程如下:
第一步,分析XQuery请求语法,然后读取要转换的XML文档。
第二步,根据XQuery请求的XPath表达式处理查询。
第三步,当所需的数据被检索之后,通过统一的映射规则生成目标XML文档。
生成的目标XML文档是各教育考试系统几个数据库的联合数据集,可以被映射转化到关系数据库中,并封装成粗粒度服务注册到UDDI注册中心。
3.2.2 从XML到关系数据库的映射和转换
从XML到关系数据库的转换方法可以分为结构映射和模型映射。相比于结构映射方法,模型映射具有以下优点:支持任何静态或动态XML数据存储,支持没有数据库模型扩展的XML数据存储[9]。因此,本文使用基于表的模型映射方法映射和转换XML为共享关系数据库[10]。XML文档模型中作为表的视图结构映射为关系数据库中的映射表或视图,XML文档中的元素或属性映射为关系数据库的列名,XML文档的内容映射为关系数据库中列的值。
3.2.3 从关系数据库到XML文档的映射和转换
映射和转换包括结构映射和数据转换,最后生成XML Schema文档和XML数据文件,步骤和Web Services封装类似。
4 结论
本文提出了一个基于XML技术的数据迁移中间件模型,该模型通过将各异构数据库的数据包装成XML全局视图的形式,来整合和查询离散的异构数据源,同时也为实现各异构数据库之间的透明性提供了强有力的支持,可以用一种统一的XML查询语言来进行查询。
【参考文献】
[1]董丽.基于 XML 与中间件的异构数据源整合系统的设计与实现[D].武汉:武汉科技大学信息科学与工程学院,2005.
[2]倪燕.异构系统数据共享的研究与实现[D].长沙:湖南大学,2007.
[3]刘高军,鲍晓琦.基于联邦数据库的数据集成平台研究与改进[J].计算机光盘软件与应用,2012(2):45-46.
[4]杨宏英,林长松.异构数据集成系统的应用模式与技术实现[J].微电子学与计算机,2006,23(8):70-72.
[5]张涛.基于 XML 和 WebServices 异构数据转换的设计与实现[D].青岛:中国海洋大学,2009.
[6]Tianjing (2007) Research and application of enterprises integration based on SOA[M].Wuhan, China.
[7]Hong Z, Xuhui LI, Mengchi LIU(2009) Application research of computers[J]. XML Query Approach Based Log XML Tree, 26: 609
[8]Pengfei Z, Naiqian L (2010) Computer Engineering[J]. XML-Based Distrib Database Integr Syst., 36:71.
[9]Song Yuqing G, Chengquan L (2010) Application research of computers[J]. Res Mapp Method XML Doc Relational Database, 27:951.
[10]Liming W, Jun Z, Ming C (2007) Mapping mechanism based on table model between XML and database[J]. J Military Commun Technol., 28:46-47.
[責任编辑:杨玉洁]