维普资讯 http://www.cqvip.com !墅 = 实验技术与管理 第24卷第11期2007年11月 CN11—2034/T Experimental Technology and Management Vo1.24 No.1l Nov.2007 异构数据库的数据转换 赵志强 (首都医科大学设备与实验室管理处,北京 100069) 摘要:文章详细阐述了异构数据库数据转换的范畴、转换机制及技术原理,就一些具体的异构数据库的 数据转换方法进行了讨论。 关键词:异构数据库;数据转换;转换机制 中图分类号:TP31 文献标识码:B 文章编号:10024956(2007)11—0077—03 Data transformation in heterogeneous database ZHAO Zhi—qiang (Department of Equipment Supplies and Laboratory,Capital University of Medical Sciences,Beijing 100069,China) Abstract:Conception,category,transformation mechanism and technical principle of data transformation in heteroge— neous databases(HDBs)are described in detail.And some speciifc data transformation methods of HDBs are dis— cnssed Key words:heterogeneous database;data transformation;transformation mechanism 异种数据库是一个既有别于以往各种数据库又 何类型的数据库,对于不能直接支持的数据库, 与它们密切相关的新领域,它的研究目标是对多个 BDE还可以连接到ODBE进行访问。 异质数据库,在尽可能少的影响其本地自治性的基 1.1.2异构数据库数据类型 础上,构造具有用户所需要的某种透明性的分布式 有很多数据库管理系统都具有数据转换的能 数据库,以支持对各数据库的全局应用和各数据库 力。但它们并未提供专门的能够在程序中自由调用 之间灵活的信息交换和共享。 的库函数或标准工具。为实现两两数据库之间的数 1异构数据库数据转换概念及范畴 据转换,必须逐一分析它们自身的数据类型,然后 将它们之间相同或相近的数据类型予以一一对应, 1.1 异构数据库转换的关键理论与技术 这就需要对各种数据库系统的数据类型特点做出 实现任意两两数据库问的转换,必须研究异构 比较。 数据库问的连接和各数据库系统的数据类型。 每个DBMS都定义了自己系统的数据类型,随 1.1.1 异构数据库间的连接 着数据库系统的不断发展和版本的不断升级,数据 异构数据库间连接的研究,关键的问题是软件 类型的种类也不断增多,如超文本型、大二进制 上的连接。基于信息的交换和共享,ODBC接口、 型、大文本型。一些开发工具不支持这些类型的转 Open C/S接口、DBE、JDBC、Web服务器等是异 换,给系统问的数据转换带来了许多困难。 构数据库互连的理论基础与技术。比如,ODBC是 1.2异构数据库数据转换设计思想 基于向开发人员提供一个统一的接口,通过这个接 1.2.1 利用中间数据库的转换 口可以访问任何支持ODBC的数据库,只要该数据 在实现数据转换方法时,由于缺少工具软件的 库提供了相应的ODBC驱动即可,目前几乎所有的 支持,便使用中间数据库方法,即在实现2个具体 主流数据库都能被ODBC所支持。DBE是负责与 数据库之问的数据转换时,更依据关系定义,字段 具体的数据库打交道,理论上,BDE可以连接任 定义,从原数据库中读出数据,通过中间数据库灌 收稿日期:2007—03—28 人到目的数据库中。这种方法,所需转换模块最 作者简介:赵志强(1979一),男,山西省太原市人,硕士,工程 少,可扩展性强,缺点是实现难度大,转换精度受 师,研究方向:计算机应用和设备管理. 影响,转换时间长。 维普资讯 http://www.cqvip.com 78 实验技术与管理 1.2.2设置传送变量的转换 为了克服上述缺点,借助PowerBuilder等开发 工具与数据连接的强大功能,通过设置源数据库与 目的数据库两个不同的传送变量,同时连接两个数 据库,实现异构数据库之间的直接转换,这样由于 转换模块之问结构相同,只要把数据类型的匹配关 系选择好,就可以完成转换。这种方法在现有的应 用数量下扩展起来也比较容易,其转换速度和精度 却大大提高了 1.2.3通过数据库组件的转换 利用Delphi数据库应用程序开发技术,通过 源数据库与目的数据库组件来存取数据信息,实现 异构数据库之间的直接转换。通过组件存取数据关 键的问题是数据信息的类型,若源数据库与目的数 据库对应的数据类型不相同,必须先进行类型的转 化,然后双方才能实施赋值。 1.3数据库异构的实现机制与技术 数据库异构问题的实现机制主要有2种,一种 是基于客户端的解决方案,例如用PowerBuilder进 行软件开发时可以在客户端通过ODBC或其它数据 库专用接口与异构数据库连接,这种解决方案多适 用于C/S方式;另一种是基于服务器端的解决方 案,即在服务器端进行处理以减轻客户端的负担, 多适用于B/S方式。 在应用领域中,往往需要建立由若干个子系统 组成集成汁算机信息系统,以期待完成更复杂、更 高级的功能,但是,已有的计算机信息系统是异构 的,普遍存在着严重的“信息孤岛”问题,即每 个子系统之问是的、不能有效地进行信息交换 和共享。解决方法是采用系统集成技术。信息集成 技术的目标是解决信息系统中复杂的、分布的、异 构的多媒体数据,以及常规的结构化数据的交换、 转换、共享与集成。在异构数据库上实现系统的集 成,可以增强系统的可移植性、互操作性、互换性 和稳定性。 2不同数据库系统间的数据转换方法 在不同的数据库之间转换的方法也不同,下面 主要就一些具体的异构数据库的数据转换方法进行 讨论。 2.1 VFP与ORACLE间的数据转换 2.1.1 FOXPRO到ORACLE的数据转换 方法1: SQL&Loader是ORACLE提供的一种工具,可 把外部文件中的数据装载到ORACLE的数据库中。 利用这一原理,可以把FOXPRO的数据导出到文 本文件,再利用SQL&Loader装载到ORACLE数据 库中。 (1)从FOXPRO中导出数据。打开[文件]/ [导出],[类型]选择delimitedtext,在T0项中给 出导出的数据文件名,字段间以“,”区分开, From项选择要导出的FOXPRO数据库文件,并选 择数据文件存储位置。 打开[选项],根据需要设置[作用范围]、 For、While和[字段]。点击[确定]进行导出。 (2)编辑数据文件为控制文件格式。 (3)把数据文件fIp到数据库服务器上。 (4)以oracle用户身份登陆到数据库服务器。 (5)执行数据装载。 方法2: Visual Foxpro提供了一种直接的数据转换方 法,采用VFP本身提供的升迁方式,将本地的 VFP数据直接转换到ORACLE数据库中。 (1)利用ORACLE的Client端软件的Oracle Net8Easy Config?创建服务名Hawk。 (2)配置ODBC,利用Oracle的服务Hawk仓0 建DSN,命名为Test。 (3)启动VFP,打开项目数据库,利用DSN 创建连接Conn—test。 (4)选择[工具]、[向导]、[升迁],选择 ORACLE升迁向导,选择要升迁的本地数据库Li. brary,选择可用的数据源(test)或连接(conn— test),输入用户名和口令,选择要升迁的基表,改 变匹配字段的数据类型,即本地字段数据类型与服 务器字段数据类型的映射,选择表空间user_data, 选择表空间文件(采用默认值),指定簇信息,设 置升迁选项,单击完成。 2.1.2 ORACLE数据到FOXPRO的转换 (1)使用oracle的sqlplus工具提取oracle的数 据,select dwdm,dwmc.count from dwjbb where dzrq is NULL,把查询到的记录,通过输出重定向命令 spool,保存到一个文本格式的文件(dwxx.1st), 用FTP把dwxx.1st传送到本地硬盘。 (2)用word打开dwxx.1st文件,删除多余的 字符,并保存为文本格式dwxx.txt。 (3)Excel打开刚才的文件dwxx.txt,会出现 文本导入向导只需按照提示,就能把dwxx.txt文件 转换成Excle的文件格式dxww.xls。 (4)使用FOXPRO的导入功能,打开dwxx.xls 文件,把EXCEL格式文件转换为数据库文件 维普资讯 http://www.cqvip.com 赵志强:异构数据库的数据转换 79 dwxx.dbf,数据字段默认为dwdm,dwmc,count。 2.2 DBF数据库转换成SQL数据库 为了提高数据的通用性和不同数据库之间的数 据转换,Delphi自带了Datapump(数据泵)工具, 用它可实现不同数据库之间的转换。下面以DBF 数据库转换成SQL数据库为例说明其使用过程。 2.2.1 定义ODBC数据源 首先为要进行转换的源和目的数据库分别建立 ODBC数据源,打开ODBC数据源管理器,选中系 统DSN或用户DSN选项卡建立两个数据源一个名 为XSXX埘应DBASE驱动程序,另一个为名为 XSXXSQL驱动程序。 2.2.2选择源数据库 启动Datapump工具,选中“Select by alias nanle”单选框接着选择别名数据源,选中Source Alias Name中的“XSXX”。选择源数据库所在文件 夹位置。然后单击“NEXT”。 2.2.3选择目标数据库 选择“XSXXSQI ”,输入创建ODBC数据源连 接时给定的用户名和口令,选择将要转换的数据源 列表框的数据表,并加到右边的列表框中。 2.2.4修改目标表信息 查看或修改同的数据表的相关信息,单击 “Modify Table Name or Field Mapping Information for select hem”,并可在此修改表名,字段名和字段 信息。 2.2.5数据转换 单击“Upsize”按钮,Delphi开始转换,保存 转换后的表到相应的目录位置中。 2.3利用SQL Server中的DTS服务中的Import and Export Data工具实现数据转换 数据转换服务(DTS)允许用户从不同的数据 源中导入、导出和转换数据,这些数据源可以是 SQL Server,Oracel,Mysql,Access,Excel,Visual Foxpro等,或者是任何一种ODBC兼容的数据源、 OLE DB兼容的数据源以及文本文件。 SQL Server内建了数据转换服务导入/导出 向导: (1)打开SQL Enterprise Manage,连接到将要 运行DTS向导的服务器上。 (2)选择将要进行转换的数据库,选择“所 有任务”,再选择“Export Data”,打开DTS Im— port/Export Wizard窗口。 (3)在“Choose a Data Source”中选择要导出 的数据库。在“Source”中选择“Microsoft OLE DB Provider for SQL Server”。在“Server”中选择 当前使用的服务器。单击“Database”中的“Re— fresh”按钮,使SQL Server将服务器上所有数据库 的名字填入这个下拉列表框,从列表框中选择需要 备份的数据库。填写登录信息。 (4)在“Choose a Destination”中选择有关目 的数据库的信息。 (5)在“Specify Table Copy or Query”中选择 “Copy table(S)and view(S)from the source data base”。 (6)在“Select Source Tables and views”中从 源数据库中选择需要备份的表。 (7)在“Save,Schedule and Replicate Pack— age”中允许选择何时执行备份操作及是否需要保 存DTS包。 (8)总结SQL Server创建DTS包的全部过程, SQL Server进行备份操作? 2.4运用数据库组件的转换方法 为实现异构数据库的数据转换,利用Delphi 数据库支持及其可视化编程的强大功能,具体实现 了两两数据库的转换。转换方法既有“中间数据 库”方法、“直接转换”方法,又有“数据库组 件”的转换方法,数据信息的转换既有“记录” 信息的转换,又有“字段”信息的转换。 2.4.1 数据库编辑组件方法 将一个数据库文件(或表)转换到另一个数 据库文件(或表),需要调用当前光标处的记录, 利用数据库编辑组件(DBEdit)可以实现。 (1)设置表Tablel字段DBEdit组件的属性。 (2)调用Table2的CanModify属性,以确定当 前数据表是否可以被修改。 (3)如果可以修改,接着调用Append方法, 为数据表Table2增加一条空白记录。 (4)将当前光标所在的记录各字段值存入表 Table2对应的Tfields组件中。 (5)调用Post方法,将Tfields组件中保存的 最新数据发送到被接受的数据库文件(或表)中。 2.4.2数据库查看组件方法 该方法是采用数据库查看组合组件(TDB Lookup Combo BOX)逐个数据库文件(或表)字 段转换的方法。 (1)查询源数据库与目的数据库数据类型的对 应关系,生成目的表的结构信息; (2)调用Create语句,在目的数据库结点上建 (下转第108页) 维普资讯 http://www.cqvip.com 实验技术与管理 并将其及时充实到教学中,这样才能使学生的能力 今后高职教育的必然选择。探索出一条更高效的工 满足社会需要,跟上时代发展步伐。学校也要为教 师进修、顶岗锻炼创造条件,不断吸收新成果更新 实训项目。 学结合一体化教学途径,必将使我们的教学与企业 紧密结合,培养出更多真正符合社会需要的高技能 型人才。 参考文献(References): [1]杜世禄.五位一体高职教育办学模式新探 M].石家庄:河北 教育出版社,2005. [2]沈五梅,刘淑英.理论 实践一体化教学模式的实践探索 [J].辽宁教育行政学院学报,2004(6):51.54. (2)及时掌握现代教学手段,实现教学创新。 从当前的发展来看,信息和通信技术正推动着教育 教学的改革,而现代技术应用于教育还相对滞后。 一体化教学应及时引进现代教育技术,开发和使用 符合教学需要的现代化教学媒体,增加和创新理 论、实践教学平台,从而进一步激发出学生的学习 积极性、主动性。 [3]胡伟光.对高职“工学结合校企合作”办学模式的思考[J]. 石油教育,2006(5):21 24. [4]葛焕娥.依托企业的一体化教学模式探索[J].职业教育研究, 2Oo6(3):36.39. (3)一体化教学应兼顾学生的自主学习。社会 发展和技术进步需要更多个性化能力的人才,而当 前高职教育还存在培养目标单一、考核标准单一的 普遍问题,学生的知识面和技能项目还不够宽厚, 学校在一体化教学中为学生自主学习创造条件。 [5]戴烽.基于项目的教学模式与大学生实践能力的培养田[J]. 南昌高专学报,2003(6):11.13. [6]孙玉明.“任务驱动”教学法探讨 实践[J].湖南科技学院 学报,2005(5):7—9. (4)进一步探索工学结合的教学途径。实践证 明,仅凭校内实训教学,无论条件有多好,都不能 [7]马必学. 论l卜j实践一体化教学模式的改革创新[J].教育与 职业,2005(7):11—13. 达到职业教育培养高技能应用人才的要求。从发展 趋势看,更多更深地在校外基地开展一体化教学是 [8]刘淑敏.紧扣教学目标加强实践教学深化教学改革[J].陶瓷 研究卜j职、 教育,2004(3):21—24. (上接第79页) 为实现异构数据库信息的交换和共享,必须首 先解决异构数据库的数据转换问题。数据如何转换 是关键的理论与技术问题。数据转换可以很好地解 决信息技术的发展和数据库升级带来的问题,能够 最大限度利用现有资源,避免重复开发浪费。 立目的表结构; (3)调用数据库查看组合组件(TDB Lookup Combo BOX),设置目的表为主数据源,源数据表 为列表数据表; (4)设置TDB Lookup Combo BOX属性的主数 据源和字段名以及列表数据源和字段名; (5)对主数据表调用Append则可进行插入字 参考文献(References): [1]高阳,谭力民.基于XML文档的关系数据库与面向对象数据库 之间的信息交互[J].计算机工程,2005(3):196—197. [2]杨剑,唐慧件,孙林夫,等. 于XML的异构数据库系统的研 究与实现[J].计算机工程,2005,31(19):195—197. [3]严蔚敏,吴伟民.数据结构[M].北京:清华大学出版 社,2002. 段数据或转换字段数据。 在数据转换的过程中,有时要想实现严格的等 价转换是比较困难的。首先要确定2种模型中所存 在的各种语法和语义上的冲突,这些冲突可能包 括:命名冲突,即源模型中的标识符可能是目的模 型中的保留字,这时就需要重新命名;格式冲突, 同一种数据类型可能有不同的表示方法和语义差 异,这时需要定义2种模型之间的变换函数;结构 冲突,如果2种数据库系统之间的数据定义模型不 [4]靳强勇,李冠宁,张俊.异构数据集成技术的发展和现状 [J].计算机工程与应用,2002,38(11):112—114. [5]陶宏才.数据库原理及设计[M].清华大学出版社,2004. [6]梁鹰,罗伟真.异构数据库的数据转换在大型信息系统中的实 现[J].计算机工程与应用,2000(9):103—105. [7]王胜德,杨学强.利用DTS实现异构数据库的数据交换[J]. 计算机应用,2003(7):132—134. [8]娄健,边小凡.中间数据源在异构数据互访中的应用[J].计 算机应用研究,2002(9):80—82. 同,如分别为关系模型和层次模型,那么需要重新 定义实体属性和联系,以防止属性或联系信息的 丢失。 3结束语