欢迎来到天天文库
浏览记录
ID:21867844
大小:53.50 KB
页数:5页
时间:2018-10-25
《基于xml的数据迁移方法研究与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于XML的数据迁移方法研究与实现 摘要:针对当前X络环境中异构数据库间的数据共享与数据交换问题,探讨了XML语言数据处理特点以及.Net框架中ADO.Net对数据源进行访问的特色,采用C#语言实现了以XML为中间件的异构数据库间的数据交换工具。 关键词:XML;异构数据库;数据交换 :TP311文献标志码:A:1006-8228(2010)05-41-02 TheresearchandimplementationoftheDatamigrationmethodbasedonXML ZhaoHuiqun
2、,ZhaoJunbao,ZhangShikan,SunJing (Thenorthernindustrialuniversity,Beijing100144,China) Abstract:Theproblemsaboutthedatasharinganddatamigrationamongheterogeneousdatabaseinentarediscussed,andtheXMLlanguagecharacteristicsandtheusingoftheADO.toaccesstothedatasou
3、rcein.frameiddleeeand对象,提供高性能数据流的DataReader对象以及连接Dataset与数据源的DataAdapter对象。ADO.中一个核心概念是DataSet,专门为独立于任何数据源的数据访问而设计。DataSet是数据的内存驻留表示形式,无论数据源是什么,它都会提供一致的关系变换模型,使得开发者在开发过程中可以屏蔽数据库之间的差异从而获得一致的编程模型。本实例正是使用DataSet的特点来实现不同数据源间数据的存取操作。 1实例背景 当前的主流数据库系统包括SqlServer,
4、Oracle和MySql等数据库,但是他们之间在结构上存在一定的差异,正是由于这些差异,在各种数据库之间进行数据迁移时,需要对其进行相应的修改,以保证数据迁移的正确性。尽管各大数据库厂商都提供了相应的数据迁移工具,比如SqlServer中提供Import/Export工具进行数据迁移服务,Oracle中提供SQL*Loader迁移工具,同样也可以使用ODBC数据源管理工具来进行MySql数据库与SqlServer、Oracle等数据库间的数据迁移。但是这些工具或者操作方法都比较复杂,并且实现的主要功能是将某一数据
5、库系统中的数据库完整地迁移到其他目标数据库中。在迁移过程中,需要使用者在数据库迁移方面有一定的经验,才能高效,准确地完成迁移工作。 当前商场、超市等的进销存系统中,商品基础信息的存储表有着很重要的作用,商品的名称,规格等自身的属性被持久存贮在系统数据库中,并且跟随商品作为商品说明在生产、运输、销售、服务等环节中进行流通。这些在不同环节、不同系统中流通的商品信息,其变更与存储主要是通过员工手工录入的方式来进行的,这个过程中就会出现信息录入的效率,准确性等问题。 鉴于不同数据库间的异构性以及商品信息的流通性较强这
6、两方面因素的考虑,为了提高进销存系统中数据的录入能力,提出了这样一种解决办法:供货商在提供一种新的商品时,可以使用该工具生成一份XML格式的文档说明,来具体描述商品基本信息;销售商可以使用该工具,将XML格式表示的商品信息录入自身的系统中。在这个过程中,双方都不需考虑对方的数据库支持格式。这样就实现了商品信息的快速迁移工作。 2设计实现 2.1不同数据库数据类型与XML数据类型之间的映射 基于XML实现数据的交换,必须解决两方面的问题,一是XML文档与数据库之间模型对象的映射关系,二是两者数据类型直接的映射
7、关系[2]。由于本方法的应用特殊性,XML文档只对应数据库单表操作,因此,这种模型映射稍微简单,只要XML根元素对应数据库导入/导出表,子元素中元素属性对应数据库列字段类型,元素值对应列值即可。对于后者,则需要考虑XML数据类型与其他关系数据库数据类型的对应关系。当前流行的数据库包括微软的SQLServer,Oracle,MySql以及DB2等数据库,这些数据库的数据类型在命名、表示范围等方面都有一定的差异。因此,在使用基于XML实现数据迁移时,必然会出现数据类型的表示方式,格式等方面的不同。如表1所示,给出了O
8、racle10g数据库中常用数据类型与XML内置数据类型之间的对应映射关系[3]。 表1数据类型对应关系 [[XMLSchemaOracle10g类型定义说明StringChar(varchar2,nchar,nvarchar2)字符串类型DecimalNumber任意精度和位数的十进制数Datatime(data,time)Data(timest
此文档下载收益归作者所有