基于XML的异构数据交换系统的研究与设计
作者 :  陈惠敏 姜攀

  摘要:实现异构数据库系统之间的数据共享和数据互访,是信息化发展迫切需要解决的问题之一。探讨了利用XML技术实现异构数据库之间的数据交换,提出了异构数据交换系统的模型。
  关键词:异构数据;数据交换;XML
  中图分类号:TP392文献标识码:A文章编号:1672-7800(2012)010-0134-03
  作者简介:陈惠敏(1978-),女,武汉商业服务学院讲师,研究方向为计算机软件开发;姜攀(1981-),男,武汉商业服务学院助教,研究方向为计算机软件开发。
  0引言
  目前,信息化建设渗透到各个领域,已经成为政府机构和企事业单位发展的重要手段和战略选择。由于初期阶段,信息化未得到统一规划和统筹安排,各个职能领域的管理平台或系统相对独立,系统间的数据流通困难,相当数量的政府机构和企事业单位都积累了大量的基于不同平台和数据库管理系统的数据以及众多的非结构化数据,造成了多数据库并存的异构问题,严重阻碍了信息化的深化及数据的使用。如何实现异构数据库系统之间的数据共享和数据互访,是信息化发展迫切需要解决的问题之一。
  1XML与异构数据
  1.1XML简介
  可标记扩展语言XML(ExtensibleMarkupLanguage)是由W3C的XML工作组制订的,它是一种通用的标记语言,是特别设计的一组定义语义标记的规则。
  XML适用于异构数据的交换,它具有如下特点:
  (1)XML具有自描述性,可以不预先规定数据结构,非常适用于不同应用间的数据库交换,在数据交换中使用XML,开发人员可以方便地使用自定义的标记来描述数据。
  (2)XML具有可扩展性,用户在遵守标记命名规则的前提下,可以在XML文档中增加有意义并且能供用户使用的标记。
  (3)XML具有跨平台性,XML文件无论是在Windows平台、Unix平台或是其他平台上,含意都是一样的。
  (4)XML文件不仅包含数据,还包含了数据的数据结构。XML文档不需要结构描述部分,它自身的层次关系就可以体现数据结构,能非常清晰地表达数据间的依赖关系。
  (5)互联网是XML的最大的载体,与传统的电子数据交换的VAN联网方式相比,互联网具有成本较低、连接广泛、扩展性好的特点。
  XML的扩展性允许它描述不同种类的数据,又由于基于XML的数据是自我描述的,数据不需要有内部描述就能被交换和处理,所以XML能够使不同来源的结构化数据很容易在不同操作系统、数据库和应用软件之间进行数据交换和集成,以做进一步处理。
  现阶段XML已经成为不同应用之间交换数据的事实标准。
  1.2异构数据
  数据的异构主要由计算机体系结构的异构、操作系统的异构、DBMS本身的异构、开发语言的异构、网络平台的异构等引起。目前,大多数管理平台或系统使用的数据库均为关系型数据库,关系数据库的产品多种多样,其规范、结构、标准均不统一,这就产生了一种基于同种数据库模型的异构,这种异构占据了主导地位,本文主要研究的就是这种不同关系数据库之间异构数据的交换。
  1.3各DBMS对XML的支持
  由于XML的广泛应用,许多主流的DBMS纷纷提供了对XML的支持。Oracle提供了对Java、C和C++的XML解析器,SQLServer2008提供了FORXML和OPENXML的XML访问接口。虽然这些大型数据库提供了对XML数据的访问支持,但这种支持仍然依赖于原有的数据库系统,而不同的DBMS统对于XML格式数据的支持接口是不同的,所以这样的支持缺乏通用性,对异构数据库中的XML数据的存取和处理带来了困难。因此,有必要开发一个与平台无关的XML与关系数据库的数据交换系统。
  1.4XML与数据库映射
  XML具有描述数据结构的能力,但依然是纯文本的文档,是嵌套的树状结构,与关系表的平面、二维结构不一样,所以XML文件与数据库之间需要建立映射,常见的映射方式有:
  (1)模板驱动映射。
  模板驱动映射是一种简单的映射方式,XML文件与数据库之间没有预先设定映射规则,而将数据操作的SQL命令嵌入到模板中,对模板的解析及SQL命令的处理都交由数据交换系统来执行,平台执行的结果将返回相应的数据集合。
  模板驱动映射与数据库的关系模型无关,能很好地实现关系数据库与XML数据之间的映射。模板驱动映射的优势在于易于实现,但也有其自身的局限性,因为不考虑数据表的关系结构及约束条件,所以将关系数据库的数据转换成XML文档可行,但是反向的转换却是无法实现的。
  (2)模型驱动映射。
  模型驱动映射是一种较深层面的映射,可以实现XML文档中的数据与关系数据库中数据的双向转换,这与基于模板驱动的单向映射不同。
  模型驱动映射有两种常见方法,一种是基于表的映射,另一种是基于数据对象的映射。
  基于表的映射将XML文档看作包含一个或者多个表的数据库。XML文档的根节点就是代表数据库,根节点下面的直接子节点代表关系数据库中的若干表,而每个直接子节点的所包含的子节点就代表数据表中每一个单元值,这样的映射实现了关系表中的每个单元值都对应一个XML文档中的元素节点。
  基于数据对象的映射是把数据库的数据映射成树形结构的层次结构,具有根节点和叶子节点,而XML文档本身就是以树形结构来组织的,树中的节点对应着XML文档中的元素,这样一来XML文档与对象数据库或者层次数据库之间很容易建立双向映射,这种映射方式比较复杂。
  基于表的映射对文档结构限制较高,有一定的局限性,但这种方式代码开发容易,转换的速度也很快,本文讨论的异构数据交换系统就采用这种方式进行映射。   2实现
  2.1总体模型设计
  本文研究的数据交换系统,特指在原有的管理系统或平台的基础上进行数据交换或数据采集,需要进行数据交换的各企业或部门本身由于种种原因己经建立了不同的数据库系统,并且拥有大量需要共享的数据。对于其中任何一个企业的数据源而言,存在将数据传送给其它数据源,或者从其它数据源获得数据添加到本地数据库中的要求,以供本地快速地进行数据分析。基于上述需求,希望为异构数据源之间提供传送双方彼此独立的、组件化的异步数据传送功能,支持各种系统平台,屏蔽底层异种机、异种数据库的差别。
  本系统的目标是要运用Java、XML等技术的结合,实现数据的跨平台、跨地域、独立于具体数据库的异构数据交换,实现数据共享的要求,系统的结构如图1。
  2.2系统模块
  (1)映射规则定义模块:该模块的作用是定义不同转换的具体转换条件,生成映射规,供XML文件导出模块和XML文件导入模块使用。
  (2)XML文件导出模块:该模块的作用是根据映射规则实现对源数据库中数据的导出,并将结果生成XML文件。
  (3)XML文件导入模块:该模块的作用是根据映射规则实现将XML文件中的数据导入至目标数据库中。
  (4)XML解析模块:该模块的作用是负责解析转换过程中需要用到的各种XML文档。
  该平台的主要作用是实现异构数据库之间的数据交换,完成一次交换需要分别实现源数据库中的数据导出和目标数据库的数据导入,导入导出的中介是XML文件,数据交换系统的框架如图3。
  2.3工作流程
  该异构数据交换系统的总体工作流程如下:
  ①设置源数据库与目标数据库之间的映射规则,可以一次设置全部映射规则,也可以先设置源数据库的导出规则,导入时再设置源数据库与目标数据库之间的映射规则;②响应端可以根据映射规则,导出数据,生成XML文档;③响应端将XML文档发送给请求端;④请求端收到XML文档,根据映射规则,将响应端的数据导入,从而完成本次数据交换。
  3结语
  企业之间存在大量异构数据交换的需求,本文正是围绕在异构环境下如何进行基于XML的数据交换这一论题展开研究与实践工作;在实现中采用了目前比较流行的XML、Java在数据库方面的应用技术,旨在对它们的整合应用做一个深入探索。异构数据交换虽不是一个新的课题,但在企业生存环境不断改变的前提下,这个课题也是不断发展的,随着企业信息化的深入,互相协作、交流的活动增多,必然会对异构数据交换系统提出更多和更高的要求,因此所做的工作还需要加以不断的改进和完善。
  参考文献:
  [1]李沐,谢红薇.基于XML的异构数据交换技术的研究[J].电脑开发与应用,2010(12).
  [2]史晔翎,黎建辉.关系数据库模式到XMLSchema的通用映射模型[J].计算机工程,2009(7).
  [3]吴业彤.基于XML的异构数据集成的方法研究[J].电脑知识与技术,2010(5).
  [4]左伟明.完全掌握XML:基础概念、核心技术与典型案例[M].北京:人民邮电出版社,2009.
  (责任编辑:余晓)

文秘写作 期刊发表