基于XML的异构数据交换的研究

时间:2020-11-18 09:27:25 计算机网络毕业论文 我要投稿

基于XML的异构数据交换的研究

毕业论文

基于XML的异构数据交换的研究

摘 要:XML 的可扩展性和自描述性以及其它特性为异构数据交换提供了新的思路。基于XML 本文提出了1种异构数据交换的方法,并结合应用实例给出了它的具体的实现过程。
关键词:异构数据库,数据交换, XMLSchema,XML
中图法分类号:TP311  文献标示码:A
Keywords: Heterogeneous databases, Data exchange, XML Schema, XML
1 前言 毕业论文 论文
数据库应用发展到今天,己有相当数量的企业和科研机构积累了大量的、以不同形式存储的、依赖于不同数据库管理系统的数据,如何共享这些数据信息,是企业进1步发展所需解决的问题。另外,由于历史等原因,Internet上的数据库系统不少也是分布、异构的,Internet上大量信息必须通过数据库系统才能有效管理,如何合理地使用这些异构数据库,己成为当前急待解决的问题。异构数据库系统是相关的多个数据库系统的集合,用以实现数据的共享和透明访问。异构数据库系统的异构性主要体现在以下几个方面: 1)计算机体系结构的异构。2)基础操作系统的异构。3) DBMS本身的异构。本文中讨论的异构数据库属于第3种类型,即在不同DBMS的两个异构数据库系统间(Oracle数据库和SQL Server数据库)进行信息交流。
2 XML与数据库
2。1 XML及其相关技术
 XML即为“可扩展的标记语言”(eXtensible Markup Language ),是1套定义语义标记的规则。是由W3C组织于1998 年2月制定的1种通用语言规范, 是SGML的简化子集, 专门为Web 应用程序而设计。XML 作为1种可扩展性标记语言, 其自描述性使其非常适用于不同应用间的数据交换, 而且这种交换是不以预先规定1组数据结构定义为前提。XML 的最大优点是对数据描述和数据传送能力, 因此具备很强的开放性。
为了对XML文档的结构与允许值进行定义和检查,有两种办法:1是使用DTD文档类型定义;2是使用XML Schema。这两者均为XML规范的1部分。DTD的用途很多,可用来定义内容的模式、限制数据的范围、限制属性的数据类型等。但DTD也有1些不足之处:DTD本身不符合XML规范;它不支持名称空间(Namespace);扩展性差;数据类型有限等。 XML Schema相对于DTD的明显好处是Schema文档本身符合XML规范,而不是象DTD那样使用特殊格式。用户与开发者可以使用相同的工具来处理XML Schema,而不必使用特殊的工具。
2。2 关系数据库与XML之间的映射方法
 根据映射关系的建立方式不同,我们可以得到两种数据转换方法:基于模板驱动的`转换方法和基于模型驱动的转换方法。
2。2。1基于模板驱动的映射方法
基于模板的映射方法并不预先定义好XML文档与其他数据之间的映射关系,而是在XML文档中嵌入带参数的SQL命令。这些命令在转换过程中被系统所识别和执行,执行的结果被替换到指令所在的位置,从而生成目标XML文档,并用数据传输诸如中间件等实体软件进行处理。基于模板的转换方法的好处在于转换的步骤比较简单,只要给出模板,就可以快速地生成相应的XML文档。不足之处在于,基于模板驱动的映射是1种浅层映射,以XML内嵌的SQL执行的数据结果集为依据,不涉及数据库赖以存在的关系模式,它只是将关系数据库的数据转换为XML文档,并没有提取出关系模式,它舍弃了关系模式的种种约束条件,因此对于反向的转换更是无能为力。
2。2。2基于模型驱动的映射方法
基于模型驱动的映射,当把数据从数据库传送到XML文档或把数据从XML文档传送到数据库时,不是仅仅依赖内嵌SQL命令,而是用1个具体的模型实现的。基于模型的转换方法用这个预先定义好的数据模型来映射XML与关系数据库数据之间的关系。基于模型的转换方法的关键在于设计1个灵活的映射模型,为了更好的支持其逆向映射的特点,这个映射模型必须是易于“读懂”的、易于操纵的,能够很好的与达关系数据库的各种约束。关系数据库的理论依据是关系模型,而XML文档的依据是XML Schema或DTD等。本文将用XML Schema来描述关系数据。
3。 应用实例
 在本文中,数据库的异构主要是DBMS的异构,1个是Oracle的DBMS,1个是SQL Server的DBMS,我们以学校学生管理系统为例。该系统分为院和系两部分。各系里的管理系统其前端开发上具是Sybases公司的PowerBuilder 9。0,后台数据库系统是Oracle公司的Oracle 8i。另外,学院有1套自己的管理软件,该软件后台数据库服务器为Microsoft公司的SQLServer 2005,为了达到系向院级实时传递学生管理信息和保持信息1致性的目的,且考虑到学生管理信息数据量大、重要性高的特点,需要设计1种高效、安全的数据传送方法来实现学生信息的交流。正是在此背景下,设计了1种利用XML来实现这两个异构数据库信息交流方法。
本系统具体实现总体上可分为两个部分,其1是客户端Oracle数据库中的数据到XML文档的映射过程,其2是XML文档到SQL Server数据库的映射过程。由于本系统实现的木的是将各系学生管理系统数据库中的“有效信息”根据需要上传到学院管理系统的数据库中,所以客户端和服务器端的实现都是以SQL Server数据库的关系模式为基础,即以SQL Server数据库中的表及其相互关系为基础的,客户端上传的数据必须符合学院的管理系统的标准。
从目的和技术两个方面出发,依据本系统的具体特点,本系统实现的第1步就是通过SQL Server关系数据库将关系模式映射为XML模式,即通过关系数据库中具体的表及其相互关系,映射为标准的XML文档描述语言XML Schema。从而为客户端生成XML文档提供1个格式上的标准。下面是整个系统的具体实现。
3。1 SQL Server数据库中表及其相互关系
 学生信息在SQL Server数据库中有两个表,这两个表中的数据正是我们交换的信息,各个表的信息和表之间的约束关系如下:
 表1(学生基本信息表):
Table studet(
  Id    10)  not null,//学号
 name    15)  null,//姓名
 sex    2)   null,//性别 毕业论文 论文
 class   10)  null,//所在班级
 age    Integer   null,//年龄
 constraint PK_student primary key(Id)
 )
表2(班级情况表):
Table depart(
 class    10)  not null,//班级
 boy_num   Integer   null,//男生人数
 girl_num  Integer   null,//女生人数
 monitor   15)  null,//班长
 teacher   15)  null,//班主任
constraint PK_depart primary key(class)
constraint fk_RC
foreign key (calss) References student (calss)
 )
3。2 通过ADO。NET将关系数据库映射为XML Schema
利用ADO。NET组件将SQL Server关系数据库映射为XML Schema,该XMLSchema正是我们把Oracle数据库服务器中数据映射为XML文档所要依据的XMLSchema,下面是C#中产生XML Schema的部分关键代码(这里仅列出与表1有关的代码,至于其它三个表,类同):
//产生1个新的数据集
DataSet ds=new DataSet(“studentXML”);
//连接数据源
OleDbConnection conn=new
OleDbConnetion(@”server=student;uid=system;pwd=manager;datasource=student”)
//生成数据适配器(仅列出表的相关代码student)
OIeDbDataAdapter da_index=new OIeDbDataAdapter("SELECT*FROM student”,conn);
//用适配器填充数据集
da_index。Fill(ds,”student”);
//在数据集中添加表与表之间的关系
ds。Relations。Add(ds。Tables["student"]。Columns["class"],
         ds。Tables["depart"]。Columns["class"]);
//生成XML文件
ds。WriteXml(“。。。。jhsy。xml",XmlWriteMode。WriteSchema);
通过执行这些代码后,1个标准XML Schema格式文档即可生成。
3。3 从Oracle数据库到XML文档的映射
具体方法是先将数据库中的数据检索、过滤到数据窗口中,然后用程序方法来实现数据到XML文档的映射。主要用到的函数就是FileWrite(),由于异构数据库之间表的字段名、字段类型、字段长度的不1致性,所以在程序中,还要有将Oracle数据库中数据进行变换以符合SQL Server数据库中表和字段定义要求的功能。此外,还要符合SQL Server中表的主、外键定义。具体流程如下图:

3。4 将有效的XML文档转化为ADO。NET数据
XML数据文档经过有解析和效性验证后,下1步是如何将其映射到SQL Server数据库中,XML数据文档并不是直接1步就映射到库中的,它先通过C # 。net提供的ADO。NET来转化,先将文档的数据加载到DataSet(数据集)中,然后才从ADO。NET映射到数据库中的。
 ADO。NET是为在XML环境中上作而设计的,ADO。NET使用XML进行远程传输,所以数据可以在不支持ADO。NET的应用程序和系统之间交换,ADO。NET提供了1些强大的功能来读写XML文档,使用ADO。NET关系数据的类被包含在System。Xml这1命名空间中。要把XML文档加载到SQL Serve:数据库中,应先把XML文档转换为ADO。NET的DataSet。下面是其主要代码:
 DataSet ds_ xml=new DataSet("studentXML");
 ds。ReadXml(“。。。。。。 jhsy。xml",XmlReadMode。ReadSchema);
ReadXml()函数是专门用来处理XML数据文档的,它有两个参数,第1个参数是要读取的XML数据文档,第2个参数是读取的模式,我们选取ReadSchema模式,即以XML Schema为XML数据文档的模式描述语言。
3。5将ADO。NET数据加载到数据库中
 虽然此时XML数据文档己经转化为数据集ds_ xml中的数据,但还不能直接更新数据库,因为没有1个数据适配器,自接更新是不成功的,因此,再新建1个数据集ds_ server,该数据集通过数据适配器dal与SQL Server数据库联系,此数据集中的数据可直接更新数据库,然后,由于ds_ server数据集和ds_xml数据集的数据模式是相同的(都是XML Schema),所以它们可以“合并”,C # 。net中提供了Merger函数用来合并两个具有相同数据模式的数据集,最后通过dal来更新SQL Server数据库。
 //连接SQL Server数据库 毕业论文 论文
 string C;
OleDbConnection OleDbConn=new OleDbConnection(ConnString);
//建立1个新的数据集
DataSet ds1 server=new DataSet("studentXML");
//建立服务器端数据适配器
OIeDbDataAdapter dal=new OIeDbDataAdapter("SELECT*FROM student",OleDbConn);
//填充服务器端数据集
da1。Fi11(ds_ server,“student”);
//将数据集ds_ xml并入到ds_ server集中
ds1 server。Merge(ds_ xml。Tables[“student”]);
//更新服务器端数据库
dal。Update(ds_ server,“student”);
至此,基于XML的整个异构数据库之间的信息交换己全部实现,从整个实现过程,可知,XML作为1个数据交换的中间件,的确能很好的实现各个数据库之间的数据转换,从而达到了数据共享和信息交流的目的。
4。结束语
本文较为详尽的阐述了如何利用XML实现SQL Server和Oracle之间的数据转换,虽然它只是单机版中的数据转换而并不是企业网络信息数据的交换,但本文旨在展现它在信息交换上的优越性。相信XML在未来的EDI中将发挥主流作用,成为企业间信息交换的标准,不久的将来各行业都1定会出现自己的通用的XML标记语言, XML的应用也会越来越广泛,它最终将取代HTML在网络信息革命的主导地位。
参考文献:
[1]杨剑,唐慧佳。基于XML的异构数据交换系统的研究与实现[J]。计算机工程。2005,(19):195-197
[2]夏秀峰,张悦,周大海。基于XML的异种数据库间的数据交换技术[J]。微处理机。2005,(5):31-35
[3]田小霞,肖驰。基于XML 的异构数据库的中间件的设计与研究[J]。电脑学习。2006,(2):55-56
[4]张于峰,洪治全,张翼。用XML实现异构数据库信息交换[J]。西南科技大学学报。2006,(2):40-43 毕业论文 论文

【基于XML的异构数据交换的研究】相关文章:

1.关于XML技术在数据交换中的应用

2.浅谈基于SDO的异构服务数据模型研究

3.浅谈基于SOA 的数据交换中心的设计和实现论文

4.基于XML的果园环境数据采集和数据表示

5.基于XML技术的电子商务应用系统论文

6.基于内容的图像检索研究

7.基于Qzone的移动学习研究

8.基于SNMP的拓扑发现的研究

9.Xml的英语解释