当前位置:文档之家› 异构数据库间的数据转换

异构数据库间的数据转换

收稿日期:2001-07-13作者简介:蔡延峰(1975-),男,山东济南人,南京航空航天大学经济管理学院硕士研究生,研究方向:工业工程管理信息系统。

文章编号:1006-2475(2002)01-0041-03异构数据库间的数据转换蔡延峰,蔡启明(南京航空航天大学经济管理学院,江苏南京210016)摘要:异构数据库管理系统间进行数据转换是当今开发人员经常遇到的问题。

本文基于实际经验,简单论述了不同数据库管理系统间进行数据转换的不同解决方案。

关键词:数据库管理系统;数据转换;数据管道;联邦数据库系统中图分类号:TP311.13文献标识码:BTranslating Data between Asynchronous Structure Database Management SystemsCAI Yan-feng ,CAI Oi-ming(Schooi of Management and Economics of NUAA ,Nanjing 210016,China )Abstract :Data transiating between asynchronous structure database management systems is a probiem that deveiopers often meet today .Based on practicai experiences ,the paper discusses simpiy the schemes to soive the data transiating between asynchronous structure database management systems.Keywords :DBMS ;data transiating ;data pipeiine ;FDBS0引言信息技术的发展给企业的生产和管理带来了极大的方便,Intranet 和Internet 的广泛使用和迅速普及也提高了社会实体间的联系和资源共享。

然而,由于信息技术的更新和实体间选择的差异,不同部门使用不同的数据库管理系统是十分普遍的现象。

即使一个经过信息规划的企业,随着数据库技术的发展和市场的变化,都可能采用不同的数据库系统。

以本人所做课题为例,南京金城集团是国营大型企业,下属十几个企业,不同时期不同下属企业安装了不同的数据库管理系统,如SOL Server ,Oracie 和DB2等。

因此在网络环境下,异种数据库间数据转换的要求是十分普遍的。

另外,当数据库升级时,要想最大限度地利用现有资源、避免重复开发的浪费也必须解决异种数据库操作的问题。

在数据库采用外部数据时也存在着异种数据库操作问题。

本文以SOL Server 和Oracie 之间的数据转换为例进行说明,其余数据库管理系统间的数据转换与此类似。

1SOL Server 和Oracle 间的比较不同的数据库管理系统(Database ManagementSystem )来自不同的厂商,运行在不同的软、硬件平台上,具有很多互不兼容的特性,每种DBMS 都有一套自己的数据类型、数据结构和数据定义、操作语言,所以一个应用系统必须与某个DBMS 绑在一起进行编译、链接和运行而不能直接存取其他DBMS 的数据。

SOL Server 数据库管理系统是建立在MicrosoftWindows NT 操作系统的基础上,它提供了一个功能强大的客户/服务器平台,是能同时支持多个并发用户的关系数据库系统。

Oracie 数据库管理系统是Oracie 公司开发研制的,它是至今为止数据库管理系统的领导者。

它具有强大的安全性、移植性和兼容性,由于性能强大、结构复杂,和其他数据库管理系统比较起来相对难于掌握。

SOL Server 和Oracie 两者相比较具有较大的差2002年第1期计算机与现代化JISUANJI YU XIANDAIHUA总第77期别。

无论是体系结构、数据类型,还是操作方法都有较大的不同。

数据类型的简单对比列表如表l ,表中只是常用数据类型的简单对比,具体不同需要查阅相关参考资料。

正是由于不同数据库管理系统之间存在着较大的差异,在进行数据转换时就必须按照各自的数据类型等进行修改。

表lSOL Server 和Oracie 两者的数据类型对比表SOL ServerOracie Int ,fioat ,doubie Numberchar Char ,varchar2Datetime Date TimestampRawSOL Server 和Oracie 两者都是大型关系数据库管理系统,应用系统都通过SOL 语言实现对它们的操作,如查询、删除、添加等。

但在具体的操作中,两者执行的SOL 语句还有许多的区别。

因此,在进行数据转换时必须对应用系统中的SOL 语句进行必要的修改,才能保证数据转换之后应用系统仍能够顺利运行。

2SOL Server 和Oracle 间数据转换的实现2.1基于客户端的解决方案对于数据量相对较少,系统比较小的情况,采用客户端的解决方案经验降低系统软硬件的成本。

只利用前台开发工具就可以开发出系统的主业务应用程序及实现异构数据库互连、交换数据的模块,编程简洁、高效。

客户端解决方案的体系结构如图l 所示:图l 客户端解决方案的体系结构l.配置ODBC 数据源。

有过编程经验的人都知道,ODBC 是与多种DBMS 建立有效连接的接口,我们在做应用系统时通常会用ODBC 连接DBMS 。

ODBC 定义了一个函数库,应用系统通过结构化查询语言SOL 可以访问不同的数据库管理系统。

ODBC 结构具有四个部分:应用程序、驱动程序管理器、驱动程序和数据源。

驱动程序管理器是一个动态连接库(DLL ),负责加载驱动程序,并为不同驱动程序的ODBC 函数提供单一的接口。

当建立起与数据源的连接时,驱动程序便能对应用系统向DBMS 发出的请求进行处理,对发自或发向数据源的数据进行必要的翻译,并返回给应用系统。

ODBC 数据源不仅具有SOL 数据库管理系统提供的通用性和功能,还具有远程系统提供的通用性和功能,以及对它们进行存取的方法。

因此一个ODBC 应用系统可以从一个或多个供应商连接到一个或多个DBMS 操作系统上或若干个网络上实现。

一旦应用系统已经建立了这些连接,驱动程序就可以处理来自应用系统的ODBC SOL 函数调用。

正因为ODBC 具有上述强大的功能,我们在应用系统中最好采用这个接口,本文的论述也是基于这一前提的。

配置ODBC 的步骤如下:(l )分别在Oracie 和SOL Server 中创建新的数据库zigi (作者所做的质量管理系统的汉语拼音缩写);(2)Windows98和Windows NT 操作系统下,点击开始菜单,设置,控制面板;(3)在控制面板中或管理工具中点击ODBC 数据源,进入ODBC 数据源管理器;(4)选择系统DSN 页(通常系统DSN 的应用范围更广),分别添加数据源名zigi sgiserver 和zigi ora-cie 并分别连接SOL Server 和Oracie 中的zigi 数据库。

2.利用Deiphi 中的Datapump 工具。

如果您是利用Deiphi 开发的应用系统,在配置完ODBC 后您可以直接利用Deiphi 自带的Datapump 工具来完成数据转换。

Datapump 工具具有简单易用的特点,通过分别选择在ODBC 中配置好的数据源名作为Source Aiias Name 和Target Aiias Name 。

然后选择要转换的数据表名,并对表中的字段类型按照Oracie 和SOL Server 间的区别进行必要的修改,便可以很轻松地实现不同数据库间数据转换。

3.利用SOL Server 的DTS Wizard 工具。

SOL Server 的DTS Wizard 工具是Microsoft 公司开发的数据转换的强有力的工具。

通过该向导操作人员可以较轻松地实现数据转换,而不必知道具体的数据。

打开SOL Server 的Import and Export Data 工具,选24计算机与现代化2002年第l 期择想要移出的数据库作为Data Source,选择要转入数据的数据库作为Destination。

然后选择要转换的数据表名,并对表中的字段类型按照不同数据库间的区别进行修改,就可以实现数据转换。

4.利用PowerBuiider的数据管道Data Pipeiine。

如果您开发应用系统时利用的是PowerBuiider,您可以通过Data Pipeiine实现数据转换。

PowerBuiider 通过对不同数据库采用不同接口的形式同时支持多种关系数据库,允许在两个相同或不同的DBMS管理的数据库之间复制表的结构、属性和表中的数据,这样便可以在网络环境下使不同数据库间相互交换数据。

数据管道不仅可以复制关系型DBMS表,开发人员完全可以控制哪些应包含或不应包含在目标表中的数据字段,以及使字段来生成目标表的索引。

5.利用第三方数据库。

在一些情况下,开发人员可能需要将数据库在两个不在同一个网络环境下的操作系统下进行数据转换。

如果是大型数据库,因为数据量相对要庞大得多,这时就必须借助其他较小的桌面数据库,如Ac-cess等。

根据作者的实际经验,大体可以按如下方法操作:(l)将要转出的数据库生成脚本,得到该数据库的库表结构;(2)如果是在不同数据库如SOL Server和Oracie 间进行转换,必须按照它们间的区别对脚本进行修改,生成符合各自规范的SOL语句;(3)在原环境下利用前面所述工具将数据库转换到Access中,生成mdb文件;(4)在新的环境下的数据库系统中执行脚本;(5)将mdb文件转换到所要的数据库系统中。

也可以利用活动硬盘将数据备份,然后在新环境下的数据库系统中进行恢复,但这种方法可能会遇上意想不到的问题。

!"!基于服务器端的解决方案在异构数据库种类或客户机数量较多的应用环境下,可以采用基于服务器端的解决方案。

在C/S 体系结构的应用系统中,该方案在客户端为用户提供统一的数据库访问接口;在服务器端则建立专门的互连服务器,并由互连服务器与多种异构数据库交互,将数据库操作的转换工作由服务器来完成。

这种基于服务器端的解决方案合理分担了客户和服务器的工作,符合数据库互连产品的发展方向。

它能够为企业和单位的各种数据源提供统一的客户访问界面,保证了从系统一级来实现数据库之间的传递交换,达到了实时、高效、安全、可靠的目的。

l.联邦数据库系统。

分布式数据库系统不能很好解决异构数据库的集成问题。

一种较为有效的解决方法是通过建立联邦数据库系统来解决。

相关主题