基于XML的数据迁移方法研究与实现

时间:2022-09-13 06:00:43

基于XML的数据迁移方法研究与实现

摘 要: 针对当前网络环境中异构数据库间的数据共享与数据交换问题,探讨了XML语言数据处理特点以及.Net框架中对数据源进行访问的特色,采用C#语言实现了以XML为中间件的异构数据库间的数据交换工具。

关键词: XML; 异构数据库; 数据交换

中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2010)05-41-02

The research and implementation of the Data migration method based on XML

Zhao Huiqun, Zhao Junbao, Zhang Shikan, Sun Jing

(The northern industrial university, Beijing 100144, China)

Abstract: The problems about the data sharing and data migration among heterogeneous database in network environment are discussed, and the XML language characteristics and the using of the ADO.省略 framework are studied. Finally, useing c# language, a tool which using a middleware base on XML to exchange data between heterogeneous database is realized.

Key words: XML; heterogeneous database; data switching

0 引言

XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。同时XML也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。XML允许用户自行定义标记与属性,并可以按照所定义的标记与属性的语法来开发应用程序,因而具有很好的扩展性。由于XML实现了内容与形式的分离以及在编写过程中遵循严格的语法要求,这为XML在不同的系统间传输提供极大的便利。XML的最大优点是其数据描述和数据传送能力,因此具有很强的开放性[1]。

数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。Microsoft为数据访问提供全新的编程模型,设计开发了基于.NET Framework的数据访问模型。具有强大的数据库操纵功能,针对不同的数据访问形式,设计了相应的实现类,开发者可以使用这些类中的方法与属性方便地对不同的数据源进行操作,如数据库和xml文件等。.NET Framework数据提供程序是专门为数据访问和处理而设计的组件,包括提供数据源连接的Connection对象,处理数据库命令的command对象,提供高性能数据流的DataReader对象以及连接Dataset与数据源的DataAdapter对象。中一个核心概念是DataSet,专门为独立于任何数据源的数据访问而设计。DataSet是数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系变换模型,使得开发者在开发过程中可以屏蔽数据库之间的差异从而获得一致的编程模型。本实例正是使用DataSet的特点来实现不同数据源间数据的存取操作。

1 实例背景

当前的主流数据库系统包括SqlServer,Oracle和MySql等数据库,但是他们之间在结构上存在一定的差异,正是由于这些差异,在各种数据库之间进行数据迁移时,需要对其进行相应的修改,以保证数据迁移的正确性。尽管各大数据库厂商都提供了相应的数据迁移工具,比如SqlServer中提供Import/Export工具进行数据迁移服务,Oracle中提供SQL*Loader迁移工具,同样也可以使用ODBC数据源管理工具来进行MySql数据库与SqlServer、Oracle等数据库间的数据迁移。但是这些工具或者操作方法都比较复杂,并且实现的主要功能是将某一数据库系统中的数据库完整地迁移到其他目标数据库中。在迁移过程中,需要使用者在数据库迁移方面有一定的经验,才能高效,准确地完成迁移工作。

当前商场、超市等的进销存系统中,商品基础信息的存储表有着很重要的作用,商品的名称,规格等自身的属性被持久存贮在系统数据库中,并且跟随商品作为商品说明在生产、运输、销售、服务等环节中进行流通。这些在不同环节、不同系统中流通的商品信息,其变更与存储主要是通过员工手工录入的方式来进行的,这个过程中就会出现信息录入的效率,准确性等问题。

鉴于不同数据库间的异构性以及商品信息的流通性较强这两方面因素的考虑,为了提高进销存系统中数据的录入能力,提出了这样一种解决办法:供货商在提供一种新的商品时,可以使用该工具生成一份XML格式的文档说明,来具体描述商品基本信息;销售商可以使用该工具,将XML格式表示的商品信息录入自身的系统中。在这个过程中,双方都不需考虑对方的数据库支持格式。这样就实现了商品信息的快速迁移工作。

2 设计实现

2.1 不同数据库数据类型与XML数据类型之间的映射

基于XML实现数据的交换,必须解决两方面的问题,一是XML文档与数据库之间模型对象的映射关系,二是两者数据类型直接的映射关系[2]。由于本方法的应用特殊性,XML文档只对应数据库单表操作,因此,这种模型映射稍微简单,只要XML根元素对应数据库导入/导出表,子元素中元素属性对应数据库列字段类型,元素值对应列值即可。对于后者,则需要考虑XML数据类型与其他关系数据库数据类型的对应关系。当前流行的数据库包括微软的SQL Server,Oracle,MySql以及DB2等数据库,这些数据库的数据类型在命名、表示范围等方面都有一定的差异。因此,在使用基于XML实现数据迁移时,必然会出现数据类型的表示方式,格式等方面的不同。如表1所示,给出了Oracle 10g数据库中常用数据类型与XML内置数据类型之间的对应映射关系[3]。

表1 数据类型对应关系

[[XML Schema\&Oracle10g\&类型定义说明\&String\&Char(varchar2,nchar,nvarchar2)\&字符串类型\&Decimal\&Number\&任意精度和位数的十进制数\&Datatime(data,time)\&Data(timestamp)\&时间类型\&Blob\&Blob(long,cblob,nblob)\&二进制大对象数据\&Boolean\&Char等\&二元boolean类型,true或false\&]]

Oracle数据库中数据类型与XML数据类型的对应关系如表1所示。要基于XML实现异构数据库间的数据迁移,就必须由程序实现不同数据库和XML类型之间的转换关系,可以用两种方法实现这种自动转换,一是在数据导入导出以前,由用户手动指定对应的数据类型跟映射关系。二是直接交由程序自动完成不同数据类型的映射关系。考虑到方便用户的实际操作以及保证数据类型对应关系的合理性,本方法采用后者实现数据类型的自动转换。

2.2 XML文件的导出与导入

基于XML的数据迁移工具,实现数据的导入与导出两大基本功能。数据的导出功能使用者主要来自于供货商。供货商使用该工具时,首先在登录项中选择登录的数据库,填写数据库用户名、登录密码等信息,登录成功后,用户选择需要导出的表,以及表中数据,即可完成从数据库到XML文件的导出工作。在此过程中,程序会根据用户选择的表以及选择要导出数据,完成关系数据库到XML文件的导出工作。在导出的XML文档中,表中各列内容以XML文档元素表示,表中字段属性以元素属性表示。示例文件如图1所示。

数据迁移工具的第二功能是数据的导入功能,该功能主要使用者是销售商,在销售商获得新加商品的同时,会随商品同时获得一份商品信息说明文档(即上一部分供货商导出的XML文档)。在导入数据前,同样需要用户填写数据库名,登录密码等信息,登录所要操作的数据库,接着要求用户选择导入的XML文件,以及对应的导入目标表,最后会要求用户将XML对应的元素信息与目标表中的列相互映射,从而确定数据的正确导入。在使用迁移工具将XML格式的文档导入数据库是,程序会根据XML文档中元素的属性说明,结合数据库表中的字段信息,如果两者相吻合,则直接导入数据,若出现导入错误,则会及时提示用户出错原因,比如导入数据长度超出实际要求等,用户会根据错误提示修改导入文件或者导入方式,重新进行导入。数据迁移工具的流程图如图2所示。

图1 数据的XML表示

[用户登录][操作结束、退出][用户选择操作] [用户选择导出表,

选择导出数据][填写导出XML

名称,保存][成功] [继续操作] [错误提示,用户

重新执行操作][用户选择导入目标表][选择导入XML文件][系统执行导入][成功] [错误提示,用户

重新执行操作] [Y] [N] [Y] [N] [N]

图2 迁移工具流程图

3 实验结果验证

基于XML实现异构数据库数据交换工具采用XML作为中间件,实现了MySql 5.1、SqlServer2005与Oracle 10g三者之间的数据迁移[4],在工具验证过程中,分别进行数据的导入与导出验证,利用某商场进销存管理系统中的部分数据作为实验数据,模拟供货商,分别从不同的三种数据库中将商品信息导入XML格式文档,然后交由销售商进行不同数据库间的导入操作,实验结果证明采用该工具既可以圆满完成异构数据库间的数据迁移,又极大地提高了数据的录入效率,大大避免了手工录入数据时准确性差,效率低的缺点[5]。

4 结束语

结合当前商场、超市等进销存系统中数据更新变换迅速,手工录入或依靠第三方平台录入中存在的不足,实现了异构数据库间简单、快速及时的商品信息迁移功能,极大地方便了供货商与销售商对商品基本信息的使用。

参考文献:

[1] 李刚.疯狂XML讲义[M].电子工业出版社,2009.

[2] 杨芳,陶世群.基于XML异构数据库系统的集成设计[J].计算机工程

与设计,2005.7.

[3] Chang B. et al.Oracle XML开发手册[M].机械工业出版社,2001.

[4] Jon Skeet著,朱永光译.深入解析C#[M].人民邮电出版社,2010.

[5] (美)Thomas Kyte著,苏金国,王小振等译.Oracle Database 9i/

10g/11g编程艺术深入数据库体系结构[M].人民邮电出版社,

2011.

上一篇:高校资产管理系统的设计与研究 下一篇:基于项目教学法的后期制作实践教学改革与探索