一种基于XML的高校数据中心异构数据交换模型

2014-03-28 01:53罗雅过
电子设计工程 2014年8期
关键词:关系数据库数据类型数据源

罗雅过

(西安文理学院陕西西安710065)

随着数据库技术和信息化的发展,数据成为互联网坏境下的核心资源。企事业单位都纷纷开始构建自己的信息化业务系统,高校信息化建设更是信息化建设中的重点。高校中各个职能部门也都建立了自己的业务系统,如人力资源系统,教务系统,科研系统等,但各个系统之间相互独立,数据结构不统一,因此数据不能达到很好的共享,各业务系统之间就遇到了数据交换的问题。针对这一问题,寻求解决异构数据交换的问题,通过对关系数据库的分析,异构数据交换技术的研究,来实现高校数据中心平台的异构数据交换。

1 数据交换支撑技术

1.1 中间件与数据交换

中间件(middleware)是客户方与服务方之间的连接件,是位于平台(硬件和操作系统)和应用之间的通信服务,并独立于硬件或数据库厂商的一类基础软件,是一种需要进行二次开发的中间产品。其目的是为了更好解决分布异构数据交换与集成问题。

分布式应用系统可以通过中间件技术实现不同技术之间的共享资源。在客户机、服务器的操作系统之上有效管理数据资源和网络通信。中间件的作用是为上层的应用软件提供运行和开发的环境,帮助用户灵活、高效开发和集成应用软件,提供硬件和操作系统之间的通用服务。

中间件的作用是使应用软件能够平稳的运行于不同的硬件环境或操作系统之上,屏蔽网络硬件平台的差异性、操作系统的差异性以及网络协议的差异性,在负载平衡、连接管理等方面应用性得到了很大提升,满足主要业务需求,提供针对不同的操作系统和硬件平台、符合接口和协议规范的多种实现,能满足大量用户的需求。

1.2 异构数据库数据交换技术

异构数据交换是指异构数据库中不同数据源之间的相互操作[3,5]。异构主要体现在计算机体系结构的异构、操作系统的异构和数据库管理信息系统(DBMS)的异构3个方面。随着信息技术的快速发展,高校各个职能部门之间的联系日趋紧密,不同业务系统之间的交流日益增多,在实际应用中,经常需要将一个业务系统中的数据应用到另一个业务系统中,因此经常需要不同业务系统之间的数据交换。而可扩展标记语言(Extensible Markup Language,XML),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML主要进行Web传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。正是由于XML的格式简单、可扩展性、可移植性以及自描述性等特点使其成为数据交换事实上的标准。通常情况下,基于XML的异构数据交换系统通过XML提供一个通用的数据格式,在各个业务系统的异构数据源中使用XML文档作为交换的中间文件。

2 基于XML的异构数据库数据交换平台模型

为了方便讨论,以Oracle与SQL Server、Access数据库之间的数据交换为例进行数据交换,主要的开发环境为Asp.net。基于XML的异构数据库数据交换平台模型如图1所示。

图1 异构数据交换模型Fig.1 Heterogeneous data exchange model

从图1可以看出,整个异构数据交换模型总体可以分3层。

客户端层:用户可以通过客户端浏览器向服务器发送请求并返回结果,显示给用户。

中间应用层:主要管理和控制整个系统的来自用户的数据请求、响应等处理工作。

数据库层:由高校各个业务系统的不同关系数据库系统构成,如,人力资源系统,科研系统,教务系统等,每一个系统中都有一个数据库访问接口层,负责对数据库中表数据的存取,同时为异构系统提供交互的接口。

在三层交换模型中,最核心的就是对数据的交换处理这一模块了,其中包括获取用户请求、连接源数据库和目标数据库、提取相应的数据、转换数据为XML文档并在客户端程序上将数据显示出来。

2.1 XML与关系数据库

XML文档从物理结构上来看,文档是由多个实体单元组成,一个实体单元可以引用其他实体;从逻辑结构来看,文档由声明语句、元素、属性、处理指令、注释和命名空间构成。在XML中提供了许多数据库[1]中所需要的部分:存储(XML文档),结构(DTD,XML schema语言),查询语言(XQL、XMLQL,QUILT等),编程接口(SAX,DOM)等,但还缺少在真实的数据库中所必备内容:有效的存储、索引、安全、数据完备性、触发等。在XML文档中,所有的元素都必须有开始标记和结束标记,并且文档必须包含一个根元素。所以从本质上讲,XML是描述半结构化数据最好的数据模型。关系数据库模型一般由三层组成:数据库、表(关系)和字段(列)。XML文档可以表示任意层次的树,在一定条件下,XML可以用来表示关系模式。

2.2 模式映射

在XML文档和数据库的转换中,主要是XML与关系数据库的映射[6]。XML文档中主要涉及的是元素、子元素、属性、处理指令、实体、实体引用、域名等概念;而在一个关系数据库中,则会涉及到表、记录、字段、关键字、外键、视图、索引等概念。XML与关系数据库之间的映射关系根据建立方式的不同,可以分为基于模板驱动的转换方式和基于模型驱动的转换方式。基于模板的映射方式是在一个XML文档中嵌入带参数的SQL命令。这些指令在转换过程中被系统设别并执行,生成目标XML文档,并用数据传输如中间件等实体软件进行处理。以XML文档内嵌的sql执行生成的数据结果为依据,不涉及数据之间赖以存在的关系模式或对象模式。

基于模型驱动的映射,当把数据从数据库传送到XML文档或把数据从XML文档传送到数据库时,不是依赖内嵌的SQL命令,而是用一个很具体的模型来实现。具体是将一个XML文档表示为由数据对象构成的树,每一个元素类型和对象相对应,基于模型驱动的映射是模式与模式之间的映射。目前,主流数据库都支持XML技术,包括基于XML的异构数据库数据交换的模式映射和XML与关系数据库之间的数据格式映射。但是在进行实际的异构数据交换时,还必须解决数据交换规则字典问题[7],用户首先在客户端根据交换的需要配置或设置相应的交换规则,如果没有所需要的规则可以先制定所需规则。规则制定后,系统中的规则解析模块对所选中的规则进行解析并分解,再通过数据的提取、数据的转换与数据写入等完成数据交换。

2.3 数据类型映射方式

在异构数据库数据交换平台下,对于数据类型的约束处理尤为重要,不仅源数据库和目的数据库有着不同的数据类型及精度[8],并且作为中间转换的XML中,也定了一套丰富的内建数据类型,异构数据库之间并没有直接的类型映射,所以就要求源数据库与目标数据库,以及XML内置数据库三者之间做好数据类型的映射。以mysql、SQLServer数据库为例,项目中应用的主要的类型对应关系如表1相似类型映射表[2]。

表1 相似类型映射表Tab.1 A similar type of mapping table

从上面的类型映射表中可以看出,关系数据库和xm l的类型映射是多对一或者一对一的关系,这样就保证了关系数据库中的每一个数据类型都能和xm l中的数据类型相对应,保证了数据交换时的数据类型之间的映射,保证数据类型约束。

2.4 数据交换流程

利用XML文档作为中间文件进行异构数据源间的信息交换[4]必须实现以下两点:将数据源中的记录提取出来转变为XML文档;将已有的XML文档解析后导入到数据源中。为了在数据源和XML文档之间传递数据,必须将数据源结构和XML文档结构相互转化。转换过程主要分为两大部分:源数据库到XML的转换和XML到目标数据库的转换。

第一、关系数据库到XML文档之间的转换

1)连接源数据库。

2)取源数据库中数据库表、字段、主外键关系等信息。

3)由用户设置转换规则,并生成相应的交换规则字典文件rule.xm l。

4)根据字典文件rule.xml规则进行数据库到xml的转换,并生成相应的xm l DTD和xm l。

第二、XML文档到关系数据库中的转换

1)连接目标数据库。

2)选择在关系数据库到xml文档转换阶段生成的字典文件rule.xml。

3)根据rule.xml规则进行xml文档到关系数据库的转换。

4)使用相应SQL语句将转换结果写入到目标数据库,完成XML到关系数据库的数据转换。

2.5 转换规则的设计

1)数据库表与表之间的关系控制着转换时的映射范围。将有联系的表建立一个规则,独立的表建立独立的规则,这样可以保证一个规则返回它对应的数据集。

2)表结构冲突的处理。

①字段名称和顺序不同。建立源表字段和目标字段的意义映射,来解决顺序问题。

②字段个数不同。如果目标数据库中的表字段比源数据库相应的表字段多,则转换时将源数据库中表的相应字段设置为空或者默认值,反之,不做处理。

3)参考完整性约束。保证主子表在文件中的唯一存在。

4)表内容合并。就是说目的数据库的表内容需要源数据库多个表的内容合并才能得到。

图2 表内容合并图例Fig.2 Table of contents with the legend

3 异构数据库数据交换平台模型的应用

以西安文理学院数据中心平台为例,数据交换模式为,一个数据中心程序可对应多个数据交换机,分别安装在不同的服务器上,每个不同的交换机均可并行运行,同时一个交换机可以负责多个交换任务及交换工作组。同时数据交换支持库对库模式,无需数据落地。

异构数据库数据交换的最关键的就是进行普通交换配置。如图3为普通交换配置界面。通过选择一个源数据库,可以在弹出窗口查询选择数据源的表或者视图。也可以通过源SQL语句中写SQL语句,可以自定义语句格式,包括表关联,||连接符,to_number等函数都可以使用,如图4为增加一个交换配置,完成、添加一个数据交换配置,进行完成一个异构数据库的数据转换。

图3 普通交换配置Fig.3 Ordinary exchange allocation

图4 增加一个交换配置Fig.4 Add a exchange configuration

4 结束语

通过对异构数据交换模型的研究,主要是通过转换规则的设计,数据类型的映射方式,来实现源数据库表与目的数据库表中信息的转换,转换并不是直接的,而是通过XML的中间数据转换,进而实现源数据到目标数据的转换。以西安文理学院数据平台为例,用户通过对交换配置的设置,如源数据库表,目标数据库表等项目设置,就可以实现高校内不同业务系统之间的数据交换,解决了异构数据的交换问题,实现了高校数字资源的有效共享。

[1] 萨师煊,土珊.数据库系统概论[M].2版.北京:高等教育出版社,2002.

[2] 陈施卫.基于XML的异构数据库数据交换的研究与实现[D].成都:电子科技大学,2012.

[3] 关辉.异构数据库间数据安全交换技术研究[J].电脑知识与技术,2009(1):152-156.GUAN Hui.Secure data exchange technology between heterogeneous databases research[J].Computer Knowledge and Technology,2009(1):152-156.

[4] 赵莉,杜思锋.数据交换平台中异构数据转换技术的研究[J].电子设计工程,2011(3):91-94.ZHAO Li,DU Si-feng.Research of heterogeneous data transformation in data exchange platform[J].Electronic Design Engineering,2011(3):91-94.

[5] 王志平.基于XML的异质多数据库集成系统的设计与实现[J].河南大学学报:自然科学版,2007,37(5):530-532.WANG Zhi-ping.Design and implementation of XML system based on Heterogeneous Database Integration[J].Journal of Henan University:Natural Science Edition,2007,37(5):530-532.

[6] 洪欣.基于XDR模式的XML文档与关系数据库的映射技术研究[D].泉州:华侨大学,2004.

[7] 王坤.基于SVPWM的STATCOM设计及实现[J].陕西电力,2011(1):11-15.WANG Kun.SVPWMbased design and realization of STATCOM[J].Shaanxi Electric Power,2011(1):11-15.

[8] 肖笑.基于BCC算法的多机系统PSS参数优化设计[J].陕西电力,2012(12):51-54.XIAO Xiao.Optimal design of multii-machine power system stabilizer parameters based on bacterial colony chemotaxis algorithm[J].Shaanxi Electric Power,2012(12):51-54.

猜你喜欢
关系数据库数据类型数据源
关系数据库在高炉数据采集系统中的应用
如何理解数据结构中的抽象数据类型
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究
基于SeisBase模型的地震勘探成果数据管理系统设计
线上众筹产品的特征分析与研究
相似度计算及其在数据挖掘中的应用
基于真值发现的冲突数据源质量评价算法
基于索引结构的关系数据库关键词检索
分布式异构数据源标准化查询设计与实现