APP下载

基于.NET的通用数据库转换系统的设计与实现

2017-12-28王美琴

中国非金属矿工业导刊 2017年4期
关键词:数据表设置数据库

王美琴

(浙江同济科技职业学院,浙江 杭州 311231)

基于.NET的通用数据库转换系统的设计与实现

王美琴

(浙江同济科技职业学院,浙江 杭州 311231)

在信息化时代,企业面对爆发式的数据增长和各种新应用的出现,随着数据库应用环境复杂性的增加,数据库的结构和管理系统发生很大的变化,而历史数据的价值不容忽视,因此企业越来越重视不同数据库的数据转换问题。本文针对现有数据转换系统的研究现状与存在问题,在结合ADO.NET与XML的基础上,设计了一种灵活、通用、高效、可靠的通用数据库转换系统。系统分为数据库配置与转换两大功能模块,用户通过简单的交互操作就可以完成复杂的数据库之间的数据迁移与数据结构转换。本系统已在某水利信息系统升级中得到了实际应用。

数据转换;数据迁移;ADO.NET;XML

随着大数据的蓬勃发展,数据平台建设已经被各企业提上日程而且需要不断更新换代。在企业发展过程中,不同信息系统可能使用不同数据库系统,信息系统更新的同时有时也需要更新数据库管理工具或重新设计数据库结构,当旧数据与新数据所使用的数据库不同时,数据库转换就变得很有必要。现有的数据库转换工具往往只具有单纯将旧数据库已存在的数据进行迁移的功能,而无法对数据进行按需修改或者无法实时自动对新读入的数据进行转换。本文旨在讨论一种对数据库进行智能转换的系统设计与实现的方法,使数据库转换更加方便和高效。希望能对建材非金属矿地质系统目前正在编制的《中国建材非金属矿产地质志》及其数据库建设提供借鉴和参考。

1 研究现状

由于信息化系统的迅速发展,为了适应信息化建设的需求,多数系统需要进行升级或集成整合,数据转换的方式逐步发展,近年来由早期的中间文件转存方式[1],中间数据库转存方式[2],转变为数据中间件方式,并逐步迁移到云计算环境下[3]。已有文献介绍了在数据转换之中XML的应用,崔学荣等[4]介绍了从关系数据库到XML的转换方法,邓芳[5]通过元数据字典的扫描,探讨了XML到数据库的转换,吴立锋等[6]创建了XML与关系数据库的映射,提出了XDBWare模型,进行XML与关系数据库的连接,实现数据相互转换。曹刚等[7]设计了一种基于ODBC驱动进行数据库转换的工具,提出了使用SQL语句制定转换方式的方法,但配置较为复杂。

目前存在的多种数据库转换工具均在不同方面有所侧重:如aqua data studio更侧重于多数据源的连接与提供通用的图形化数据库管理工具,数据转换操作可以定制数据列的影射关系,但转换需通过txt文件进行,将旧数据导出为固定格式的txt文件,再转存到新数据库中,此方法效率较低,同时不适合大数据量的转换。DBMover专注于数据的迁移,支持自动转换与大数据操作的优化,但只针对于固定数据库的转换,不够灵活和通用。

由以上对研究成果与已有工具的描述可以看出,不同的数据库转换系统的功能点存在较多不一致性,综合以上分析,目前数据库转换面临的主要问题如下:

(1) 灵活性差,通用性不强。多数数据库转换方法或工具仅提供一种数据转换方式或针对于某种数据库进行针对性转换,不能灵活适应不同应用背景、数据库类型以及数据结构的需要,也不能根据用户的需求变化进行相应修改,对于数据结构发生变化的应用情景扩展性不够强。

(2) 稳定性问题。在数据库转换过程中存在多种不可抗力因素,数据转换受到多种稳定性威胁,如断电、系统崩溃、网络传输中断等问题,或是由软件自身出错导致程序崩溃,若不采取有效措施,会造成数据转换强制中止而引发数据错误或数据丢失。

(3) 转换时间长,效率低下。单一线程运行的数据库转换程序按序执行数据转换,对于需要转换海量数据的数据库,转换时间过长,由于效率低下也同时带来不稳定因素。

针对以上问题,本文提出一种灵活性强,兼顾稳定性与转换效率的通用数据库转换系统,可以满足不同数据转换的需求。

2 系统设计

本系统的目的是针对现有数据库转换方式和工具的局限性,设计出一种适合各种环境、常用数据库、远程或本地服务器的通用数据库转换系统,实现不同数据库不同数据之间的智能转换。主要功能是向用户提供交互式界面,让用户进行设定并转换数据库。本系统以.NET开发平台为基础,对数据库操作、大规模数据查询、多线程操作等关键技术进行了针对性研究。整个系统具有更高效的人机交互,更低的存储规模,更方便的信息输入,更智能的自动转换,良好的可扩展性与可移植性等特点。

2.1 方案选择

目前常用的数据库管理系统有SYBASE、MS SQL SERVER、ACCESS、MYSQL、ORACLE、DB2,本系统旨在实现如上数据库中数据互相转换的方案。

本系统的输入为原数据库中数据,读入数据后,进行相应处理,并输出至需存储的已建立的新数据库中。用户通过建立系统与双方数据库的连接,并设定双方数据库的字段转换规则与自动或手动转换方式,系统判断转换过程是否有数据一致性等问题,若设置均正确无误,则可以实现转换操作。

2.2 技术路线

本系统的核心技术是数据库连接操作以及数据的转换,采用ADO.NET技术对数据库进行连接与读取写入操作,为用户提供对数据库进行转换规则设置的界面,以此完成人机交互。本系统使用C#.NET开发平台作为主要界面应用程序平台,通过XML文件进行设定的存储与读取,采用多线程操作实现程序的后台处理,并结合错误日志与日期定位,对读取出错或是因网络传输出错的数据库进行修复与重新读入。

2.2.1 .Net Framework

.Net Framework是用于windows的新托管代码编程模型,用于构建具有视觉上引人注目的用户体验的应用程序,实现跨技术边界的无缝通信,并且能够支持各种业务流程。C#.NET提供了丰富的API,进行XML文档操作以及网络通信。使用C#.NET进行系统开发,能够快速搭建操作便捷的人机交互界面。

2.2.2 ADO.NET

ADO.NET提供对数据源以及通过各公开数据源的一致访问。共享数据的使用方应用程序可以使用ADO.NET连接到这些数据源,并可以检索、处理和更新其中包含的数据。提供了平台互用性和可伸缩的数据访问,ADO.NET增强了对非连接编程模式的支持,并支持RICH XML。由于传送的数据都是XML格式,因此任何能够读取XML格式的应用程序都可以进行数据处理[8]。

在本系统中,采用ADO.NET技术进行各数据源的连接,通过该技术,可以不需要对数据库进行长时间访问,防止对数据库长时间的独占,而将需要转换的数据读入数据集,再转换到目标数据库。

2.2.3 XML

XML是W3C组织的XML工作组于1998年定义的SGML的一个受限子集。XML文档包含3种主要成分: DTD、XSL和XLink[9]。XML的简单使其易于在任何应用程序中读写数据,同时可以很容易加载XML数据到程序中并进行分析。本系统将XML作为数据转换的配置文件进行转换规则与连接的保存。

2.3 总体结构

系统硬件架构分为三个部分(见图1),需要转换的原数据库、数据库转换系统和转换后的新数据库。对于数据库与系统之间的连接使用ADO.NET数据中间件,只需要配置数据连接即可,具体的连接方式与是否连接成功与系统无关,因此本文不做详细讨论。

图1 系统架构

系统软件包括数据库转换配置与数据库转换两个主要部分:

数据库转换配置是人机交互的主要部分,实现对双方数据库的连接。用户设置原数据库与新数据库使用的管理工具与驱动,为系统提供两个数据库的连接方式(若远程连接需同时提供服务器地址),并设定字段的转换方法、系统运行方式等。

用户可选择是否转换全部数据库,或是根据特征值,如设定起始与终止时间,转换该范围内数据库的数据。

软件用例图如图2所示。

图2 软件用例图

3 功能实现

3.1 数据库设置

用户对数据库进行设置主要步骤如下:

(1) 设置双方数据库类型。

由用户选择双方数据库格式,设定从何种数据库进行转换并转换至何种数据库,系统对不同数据库采用不同连接方案。

(2) 设置双方数据库连接方式,

用户设置数据库的连接字符串或ODBC数据源,系统根据连接字符串,使用ADO.NET进行连接。若连接失败,则返回给用户,需要检查连接字符串、服务器与客户端之间的网络等问题;若连接成功,则读取数据库中数据表,继续进行下面的步骤。

(3) 设置需转换数据表。

用户根据需要,设置原数据库中需转换数据表与新数据库中所使用的数据表,并根据实际需求设置双方数据库中数据表的对应关系。

(4) 对每一数据表设置每一字段转换规则。

系统提供5种转换规则:①正常转换:不作任何修改,或仅做无关数据正确性的修改(如增加或减少数据长度);②查表转换:对此字段做相应的修改,修改后的结果与原字段的结果存在一一对应的关系,通过XML存储此映射关系并在需要时读取XML表中对应键值数据,对值进行数据库存储;③公式转换:读取原数据库中数据值后,进行简单的算术或逻辑运算,将新值存入新数据库对应字段。系统提供三种简单运算:逻辑运算,若原数据库字段值大于或小于或等于某一数值时,则设定新值存入数据库;算术运算,将取出的值设定简单的算术运算,运算结果存入新数据库;连接运算:对nvarchar型数据有效,可以与其他字符串或字段值进行连接,并存入新数据库;④SQL转换:通过手动输入sql语句,对执行后生成的查询表进行转换,提供用户自行设置查询条件,进行多表查询及进行查询结果筛选,配置的sql语句也存入XML配置文件以待下次进行转换;⑤不转换:若对某字段不进行任何设置,则默认为正常转换。系统判断转换后的结果是否符合新数据库中字段要求,若有无,则向用户报错,提示修改。

(5) 设置程序运行方式。

由于系统使用环境不同,有的数据库转换需要将数据库中所有数据进行一次性转换,有的数据库需要将数据库中字段符合某些特定条件的数据进行筛选转换,也有的数据库需要自动运行,每次转换某段时间中的增量数据。根据实际情况用户选择程序运行方式。

手动运行方式适用于一次性转换,自动运行方式适用于根据时间增量转换数据。以上两种方式都可以进行对数据筛选转换的设定,同时自动运行方式需要对时间数据进行筛选转换,因此需要保证数据表中存在时间字段。

设置完毕,系统将以上各种设定进行保存,配置流程如图3所示。

3.2 数据库转换

数据库转换是系统核心部分,系统根据设置连接双方数据库,并根据用户设置进行自动或手动转换,完成程序的主要任务。系统在转换过程中,对于无关联数据表通过多线程转换,同时读取多个数据库表数据并导入新数据库,节省运行时间。

图3 数据库配置流程

(1) 读取系统设定,连接数据库。

(2) 若是自动转换,则当设定时间到时,自动对数据库进行转换。

(3) 若是手动转换,则由用户手动点击转换。

转换流程如图4所示。

图4 数据库转换流程

4 系统应用

本文设计的通用数据库转换系统已得到实际应用。某水利部门信息中心由于系统升级,在设计二期系统时结合国家新颁布的数据库设计标准,根据应用需要更新了数据库管理工具并重新设计了数据库结构,但一期数据库中仍存有大量历史水利资料数据,需要转换到二期数据库中。转换过程涉及了直接转换、查表转换与SQL转换。系统运行于Windows server 2008操作系统,在水利信息化内网环境下,由sql server 2000与oracle转换至sql server 2008数据库中。经过实际运行与测试,系统运行结果如下表所示。

系统运行结果

由上表可见,由于采用多线程操作,对多个数据表进行转换效率较高。由于部分数据导入时数据格式不兼容或数据超出导入后数据库字段的范围,因此出现数据无法导入的情况。我们今后的研究重点主要在于对数据容错性的研究,在保证运行效率的情况下对错误或越界数据进行修复,进一步提高数据转换成功率。

5 结语

本文结合实际工作提出了一种通用数据库转换系统的设计方案,能够避免现有技术存在的不足和功能的局限,结合现有技术的优点,对现有技术进行了改进和再创造。通过ADO.NET数据中间件,结合XML,使得系统兼顾灵活性与转换效率,减少数据转换时间,提高数据转换的可靠性。实际运行结果表明,本系统在处理数据转换时基本满足了设计要求,方便用户的使用,有较高的应用价值。

[1]胡广,孙焘,闫英辉.利用XML与XSLT实现异构数据库间的数据转换[J].现代计算机,2007(8):64-66.

[2]姚领众.一种基于中间库的数据库间数据转换技术[J].计算机系统应用,1996(11):27-29.

[3]NAHAR, PAWAN. Data migration using active cloud engine[J].Cloud Computing in Emerging Markets (CCEM), 2012 IEEE,2012:1-4.

[4]崔学荣,李庆云,李娟.关系数据库到XML数据库转换中间件的设计与实现[J].广西师范大学学报(自然科学版),2007,25(4):132-135.

[5]邓芳.XML文档到数据库数据转换研究[J].北京邮电大学学报,2004,27(1):84-88.

[6]吴立锋,宋中山.基于XML的数据转换中间件的研究[J].中南民族大学学报(自然科学版),2005,24(4):76-78.

[7]曹刚,周伯鑫.一种基于ODBC通用数据转换工具的实现[J].计算机工程与应用,1999(6):72-74.

[8]DAVID S. Microsoft Ado. Net: Core Reference[M]. Microsoft Press Redmond, WA, USA 2002.

[9]W3C Recommendation. Extensible Markup Language 1.1[DB/CD]. http://www.w3.org/TR/2006/REC-xml11-20060816/

[10]Berdaguer P, Cunha A, Pacheco H, et al. Coupled schema transformation and data conversion for XML and SQL[J].Practical Aspects of Declarative Languages, 2007, 4354: 290-304.

Design and Implementation of A Universal Database Conversion System Based on .NET

WANG Mei-qin
(Zhejiang Tongji Vocational College of Science and Technology, Hangzhou 311231, China)

In the digital age, rapid data growth and adoption of latest applications are leading to growing environmental complexity and fundamental changes in the database structure and managementsystem of commercial corporate databases. Meanwhile, the value of historical data should not be ignored. Therefore,corporations are putting more and more efforts into migrating data across different databases. To analyze the problems with the current database conversion system, we designed an agile,universal, efficient and reliable database conversion system based on ADO.NET and XML. The system is divided into two function modules: database configuration and conversion. With this system, the users would be able to complete data migration and data structure conversion across complex databases through simple interactive operations. The system has already been applied to upgrade a database of Water Resources Bureau.

database transformation; data migration; ADO.NET; XML

TP392

A

1007-9386(2017)04-0050-04

2017-09-19

猜你喜欢

数据表设置数据库
中队岗位该如何设置
湖北省新冠肺炎疫情数据表
基于列控工程数据表建立线路拓扑关系的研究
数据库
数据库
数据库
数据库
本刊栏目设置说明
中俄临床医学专业课程设置的比较与思考
图表