基于XML的异构数据交换的研究_第1页
基于XML的异构数据交换的研究_第2页
基于XML的异构数据交换的研究_第3页
基于XML的异构数据交换的研究_第4页
基于XML的异构数据交换的研究_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于XML 的异构数据交换的研究    毕业论文    摘 要:XML 的可扩展性和自描述性以及其它特性为异构数据交换提供了新的思路。基于XML 本文提出了1种异构数据交换的方法,脚印代写论文并结合应用实例给出了它的具体的实现过程。关键词:异构数据库,数据交换, XMLSchema,XML中图法分类号:TP311 文献标示码:AKeywords: Heterogeneous databases, Data exchange, XML Schema, XML1 前言 毕业论文 论文网数据库应用发展到今天,己

2、有相当数量的企业和科研机构积累了大量的、以不同形式存储的、依赖于不同数据库管理系统的数据,如何共享这些数据信息,是企业进1步发展所需解决的问题。另外,由于历史等原因,Internet上的数据库系统不少也是分布、异构的,Internet上大量信息必须通过数据库系统才能有效管理,如何合理地使用这些异构数据库,己成为当前急待解决的问题。异构数据库系统是相关的多个数据库系统的集合,用以实现数据的共享和透明访问。异构数据库系统的异构性主要体现在以下几个方面: 1)计算机体系结构的异构。2)基础操作系统的异构。3) DBMS本身的异构。本文中讨论的异构数据库属于第3种类型,即在不同DBMS的两个异构数据库

3、系统间(Oracle数据库和SQL Server数据库)进行信息交流。2 XML与数据库2。1 XML及其相关技术XML即为“可扩展的标记语言”(eXtensible Markup Language ),是1套定义语义标记的规则。是由W3C组织于1998 年2月制定的1种通用语言规范, 是SGML的简化子集, 专门为Web 应用程序而设计。XML 作为1种可扩展性标记语言, 其自描述性使其非常适用于不同应用间的数据交换, 而且这种交换是不以预先规定1组数据结构定义为前提。XML 的最大优点是对数据描述和数据传送能力, 因此具备很强的开放性。为了对XML文档的结构与允许值进行定义和检查,有两种办

4、法:1是使用DTD文档类型定义;2是使用XML Schema。这两者均为XML规范的1部分。DTD的用途很多,可用来定义内容的模式、限制数据的范围、限制属性的数据类型等。但DTD也有1些不足之处:DTD本身不符合XML规范;它不支持名称空间(Namespace);扩展性差;数据类型有限等。 XML Schema相对于DTD的明显好处是Schema文档本身符合XML规范,而不是象DTD那样使用特殊格式。用户与开发者可以使用相同的工具来处理XML Schema,而不必使用特殊的工具。2。2 关系数据库与XML之间的映射方法根据映射关系的建立方式不同,我们可以得到两种数据转换方法:基于模板驱动的转换

5、方法和基于模型驱动的转换方法。2。2。1基于模板驱动的映射方法基于模板的映射方法并不预先定义好XML文档与其他数据之间的映射关系,而是在XML文档中嵌入带参数的SQL命令。这些命令在转换过程中被系统所识别和执行,执行的结果被替换到指令所在的位置,从而生成目标XML文档,并用数据传输诸如中间件等实体软件进行处理。基于模板的转换方法的好处在于转换的步骤比较简单,只要给出模板,就可以快速地生成相应的XML文档。不足之处在于,基于模板驱动的映射是1种浅层映射,以XML内嵌的SQL执行的数据结果集为依据,不涉及数据库赖以存在的关系模式,它只是将关系数据库的数据转换为XML文档,并没有提取出关系模式,它舍

6、弃了关系模式的种种约束条件,因此对于反向的转换更是无能为力。2。2。2基于模型驱动的映射方法基于模型驱动的映射,当把数据从数据库传送到XML文档或把数据从XML文档传送到数据库时,不是仅仅依赖内嵌SQL命令,而是用1个具体的模型实现的。基于模型的转换方法用这个预先定义好的数据模型来映射XML与关系数据库数据之间的关系。基于模型的转换方法的关键在于设计1个灵活的映射模型,为了更好的支持其逆向映射的特点,这个映射模型必须是易于“读懂”的、易于操纵的,能够很好的与达关系数据库的各种约束。关系数据库的理论依据是关系模型,而XML文档的依据是XML Schema或DTD等。本文将用XML Schema来

7、描述关系数据。    3。 应用实例在本文中,数据库的异构主要是DBMS的异构,1个是Oracle的DBMS,1个是SQL Server的DBMS,我们以学校学生管理系统为例。该系统分为院和系两部分。各系里的管理系统其前端开发上具是Sybases公司的PowerBuilder 9。0,后台数据库系统是Oracle公司的Oracle 8i。另外,学院有1套自己的管理软件,该软件后台数据库服务器为Microsoft公司的SQLServer 2005,为了达到系向院级实时传递学生管理信息和保持信息1致性的目的,且考虑到学生管理信息数据量大、重要性高的特点,需要

8、设计1种高效、安全的数据传送方法来实现学生信息的交流。正是在此背景下,设计了1种利用XML来实现这两个异构数据库信息交流方法。本系统具体实现总体上可分为两个部分,其1是客户端Oracle数据库中的数据到XML文档的映射过程,其2是XML文档到SQL Server数据库的映射过程。由于本系统实现的木的是将各系学生管理系统数据库中的“有效信息”根据需要上传到学院管理系统的数据库中,所以客户端和服务器端的实现都是以SQL Server数据库的关系模式为基础,即以SQL Server数据库中的表及其相互关系为基础的,客户端上传的数据必须符合学院的管理系统的标准。从目的和技术两个方面出发,依据本系统的具

9、体特点,本系统实现的第1步就是通过SQL Server关系数据库将关系模式映射为XML模式,即通过关系数据库中具体的表及其相互关系,映射为标准的XML文档描述语言XML Schema。从而为客户端生成XML文档提供1个格式上的标准。下面是整个系统的具体实现。3。1 SQL Server数据库中表及其相互关系学生信息在SQL Server数据库中有两个表,这两个表中的数据正是我们交换的信息,各个表的信息和表之间的约束关系如下:表1(学生基本信息表):Table studet(Id    char(10) not null,/学号name 

10、0;  char(15) null,/姓名sex    char(2) null,/性别 毕业论文 论文网class char(10) null,/所在班级age    Integer null,/年龄constraint PK_student primary key(Id)表2(班级情况表):Table depart(class    char(10) not null,/班级boy_num Integer null,/男生人数girl_num Inte

11、ger null,/女生人数monitor char(15) null,/班长teacher char(15) null,/班主任constraint PK_depart primary key(class)constraint fk_RCforeign key (calss) References student (calss)3。2 通过ADO。NET将关系数据库映射为XML Schema利用ADO。NET组件将SQL Server关系数据库映射为XML Schema,该XMLSchema正是我们把Oracle数据库服务器中数据映射为XML文档所要依据的XMLSchema,下面是C#中产生

12、XML Schema的部分关键代码(这里仅列出与表1有关的代码,至于其它三个表,类同):/产生1个新的数据集DataSet ds=new DataSet(“studentXML”);/连接数据源OleDbConnection conn=newOleDbConnetion(”server=student;uid=system;pwd=manager;datasource=student”)/生成数据适配器(仅列出表的相关代码student)OIeDbDataAdapter da_index=new OIeDbDataAdapter("SELECT*FROM student”,conn)

13、;/用适配器填充数据集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格式文档即可生成。

14、    3。3 从Oracle数据库到XML文档的映射具体方法是先将数据库中的数据检索、过滤到数据窗口中,然后用程序方法来实现数据到XML文档的映射。主要用到的函数就是FileWrite(),由于异构数据库之间表的字段名、字段类型、字段长度的不1致性,所以在程序中,还要有将Oracle数据库中数据进行变换以符合SQL Server数据库中表和字段定义要求的功能。此外,还要符合SQL Server中表的主、外键定义。具体流程如下图:3。4 将有效的XML文档转化为ADO。NET数据XML数据文档经过有解析和效性验证后,下1步是如何将其映射到SQL Serv

15、er数据库中,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。下面是其主要代码:DataS

16、et 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个数据适配器,自接更新是不成功的,因此,再新建

17、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

18、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。结束语本文较为详尽的阐述了如何利用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论