异构数据库高效数据交换引擎设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第39卷 第9期西南师范大学学报(自然科学版)2014年9月Vol.39 No.9 Journal of Southwest China Normal University(Natural Science Edition)Sep.2014
DOI:10.13718/j.cnki.xsxb.2014.09.018
异构数据库高效数据交换引擎设计①
黄学彬1, 赵 春2, 郑 伟1
1.四川大学锦城学院教务部,成都611731;2.四川大学锦城学院计算机科学系,成都611731
摘要:针对异构数据库之间数据交换软件的数据交换不规范、网状数据不通畅、数据同步无保证等问题,设计了一个通用安全高效的数据交换引擎.该设计采用影子表法获取数据,利用文本差异比较得出变化的数据量,并运用差异分析算法解析出数据变化结果集.设计中的数据交换规则与数据更新结果存储均采用了XML文件格式作为媒介,为了保证数据的安全性与可靠性,设计要求对需要传输的数据进行加密处理,并采用可靠的TCP作为数据传输协议的载体.实验表明,该文设计的异构数据库交换引擎可以高效率地完成异构数据库之间可靠、安全的数据交换.
关 键 词:异构数据库;高效数据交换;XML;差异分析;影子表法
中图分类号:TP391 文献标志码:A 文章编号:1000-5471(2014)9-0100-09
在信息化不断发展的过程中,企业用户的应用也在不断扩充,企业自己的新应用也在不断增加,进而都会面临不同软硬件平台、不同类型的数据库之间的数据交换问题[1].不同软硬件平台、不同语义设计、不同网络环境等多种模式的并存造成了不同数据库之间的数据交换不规范、数据同步与数据安全无保证等问题,并由此产生了“信息孤岛”的现象[2].
现有的软件已经很难解决这种异构数据库之间的数据交换难题[3].数据库管理系统(DBMS,DatabaseManagement System)为了最大程度地解决这个难题,一般都提供了相应的数据交换工具,但因与具体的DBMS耦合性太强,以至于失去了通用性[4];中间件技术虽然可以很好地解决这个难题,但是中间件技术由于本身比较复杂,不容易实现,而且还需要昂贵的软硬件资源[5-6],对于一般的企业来说负担太重,从而很难实现普及;中间数据法采用一种公共的数据格式作为媒介进行数据交换,通过双方既定的协议完成最终的功能,该方法成本较低,可扩展性强[7-8],但是实现中必须考虑网络环境、运行效率以及数据的安全性[9-10].本文将采用中间数据法设计一个灵活高效、简洁透明的异构数据交换系统,该异构数据库数据交换引擎(HDEDEE,Heterogeneous Database Efficient Data Exchange Engine)只需要简单的配置即可准时性地完成异构数据库之间数据安全可靠的互相访问.
为了设计出简单易用、成本低廉、并且通用的数据库交换引擎,我们有必要对其进行适当的分析,从而了解其基本特性,以找出合适的解决方案.
1 异构数据库系统分析
异构数据库系统是对分布式数据库系统的集成和发展[10],它们最根本的区别是分布式数据库系统拥有自己单独的逻辑数据库,只有一个DBMS,该DBNS为其整个系统提供一致的插入、查询、删除、更新等
①收稿日期:2014-02-29
基金项目:四川省应用基础项目“基于互联网应用的企业智能消息系统EIMS研究与实现”资助(10JC0335).
作者简介:黄学彬(1968-),男,四川蒲江人,博士,副研究员,主要从事计算机软件及互联网应用研究.
操作;而异构数据库系统则是由多个自主的数据库系统通过适当程度的集成而构成的一个数据库系统.
异构数据库系统物理分布整体上可以概括为以下2种情况:同一个局域网内以及在不同的局域网内.无论异构数据库系统是处于同一个局域网内还是在不同的局域网内,都具有分布性、异构性、自主性等3个主要的特征.
1.1 分布性
异构数据库系统的各个组成部分并不在同一个地理位置,而是分布在不同的地理位置,它们通过各式各样的网络建立连接.数据保存在各个数据库系统中,这些数据可以以各种不同的方式保存,没有严格的逻辑要求.
1.2 异构性
1
)不同的计算机体系结构:独立的数据库系统可以运行在大型机、工作站、微机等系统中.2
)不同的计算机操作系统:独立的数据库系统可以被安装在不同的操作系统中,如Unix,Windows等.3)不同的DBMS:独立的数据库系统可以是MySQL,Oracle,SQLServer等,也可以是Redis、Monog
db等.4
)不同的语义:数据库设计人员对数据定义、描述的二义性,会造成命名、数据存储类型、关系表达等的二义性.
1.3 自主性
各个子系统都拥有自身系统内对应资源的使用权,包括增加、删除、修改、查询等,同时拥有与系统内其他子系统交互的权利,包括加入、退出、提供服务等.
从上面的分析可以看出,异构数据库系统中各子系统情况相当复杂,各子系统之间的数据共享会遇到各种各样的困难,针对这个难题,本文设计了一个数据交换引擎,用于同步多个同构或者异构的数据库之间相关的数据,该引擎具有通用性,并且操作简单易用.
图1 异构数据库数据交换网络2 高效数据交换引擎设计与实现
由于系统运行在网络环境下,所以文件格式的通用
性、数据的安全性以及数据传输的高效性就成为了设计
必须要考虑的前提.为此,本文提出的设计方案遵循如
下原则:采用通用的数据存储格式存储数据;采用差量
分析法分析数据;对差量数据进行加密传输;并且对大
数据采用多线程断点续传来保证数据传输的高效性.
2.1 总体设计方案
如图1所示,有多个异构的数据库,它们之间彼此
需要获取对方的数据,DBMS的差异和不同局域网内数
据库之间网络线路不通的问题,使得彼此之间无法正常
完成交换数据的功能.因此,要完成彼此之间的这种数
据交换必须依靠第三方的应用程序来完成.本文设计的
数据交换引擎就可以很好地实现这个功能.
如图1所示,局域网LAN-
1中有4个数据库系统,分别为DB1,DB2,DB3,DB4,局域网LAN-
2中也同样有4个数据库系统,分别为DB5,DB6,DB7,DB8.DB1要与
DB2,DB4交换数据;DB3也要与DB2,DB4交换数据;
DB5要与DB6,DB8交换数据;DB7也要与DB7,DB8交换数据;另外,有些交换关系图上并未画出,如DB1要与DB5,DB6等交换数据.由图1可以看出,它们之间数据交换的关系错综复杂,需要一个良好的中间媒介来辅助完成这种交换功能.
本文设计的HDEDEE就是要充当这个良好的中间媒介.HDEDEE的部署及其使用相当简单,数据库
101第9期 黄学彬,等:异构数据库高效数据交换引擎设计