




已阅读5页,还剩57页未读, 继续免费阅读
(计算机应用技术专业论文)xml在异构数据交换中的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学硕士学位论文 摘要 数据库技术五十年来的不断进步,极大地推动了政府和企业信息化建设的 进程。伴随着上个世纪九十年代以来撇e m e t 的飞速发展,政府和企业迫切需要 将分散的应用系统集成起来,以使各种资源能够得到最充分的利用。系统集成 的首要问题是实现数据的共享,如何实现这些系统之间的数据共享,已日渐成 为政府和企业面临的一大问题。而x m l 本身具有的平台无关性、可扩展性、自 描述性等特性,使得x m l 已经成为数据交换的事实标准。本论文就应用系统的 异构数据库数据交换问题进行了研究,提出了基于x m l 实现异构数据库数据交 换的模型,并实现了一个异构数据交换的实例。 本文首先介绍了x m l 的相关知识,讨论了异构数据交换的相关理论,分析 了传统的数据交换实现方法与其中存在的问题,讨论了x m l 在异构数据库数据 交换方面的相关技术;然后分别从x m l 与关系数据库的模式映射、x m l 与关 系数据库的结构映射、x m l 与关系数据库的数据类型映射三个方面进行了探讨, 研究了主流关系数据库对x m l 的支持情况和厂商提供的讧l 与数据库间的转 换工具;最后在此基础上给出了一个基于x m l 实现异构数据库数据交换的三层 模型,针对异构数据交换中出现的问题提出了解决方法,并且在n e t 环境下, 借助于a d o n e ta p i 等技术通过x m l ,实现了s q ls e r v e r2 0 0 0 数据库与 0 r a c l e 9 i 数据库之间的数据交换。 本文在n e t 框架下设计和实现了基于x m l 的数据交换系统,己经成功地 运用于某网上书店的电子商务系统中,取得了良好的效果。 关键词:x m l ,数据交换,异构,关系数据库 武汉理工大学硕士学位论文 a b s t r a c t d a t a b a s em a l ( e sg r e a tp r 0 掣e s sc o n s t 孤n yi np a s tf i f i yy e a r s i t 酽e a d yi i n p e i l e d 也ep r o c e s so fg o v e m m e n ta n de 1 1 t e r p r i s ei n f o 咖a t i o i l i z a t i o n ,w 砧m ed e v e l o p i n go f t h ei n t e m e tt e c h n 0 1 0 9 y ,g o v e m m e n t 甜1 de n t e r p r i s e u r g e n 廿yn e e di n t e g r a t et 王l e d i s p e r s i v es y s t e m ,s o 山er e s o u r c ec a nb eu s e da d e q u a t e l y t h em a i ni s s u eo fs y s t e m i n t e g r a t i o ni sc o n l m o ni n f o m 砒i o ns h a r i n g t h e r e f b r e ,h o wt 0a c h j e v et h eg o a lo f c o m m o ni n | 0 r m a t i o ns h a r i n gi sab i gp m b l e mo ft h eg o v e 脚e ma | 1 de n t e 印r i s c a n d 谢也t h ef e a t u r e so fp l a t f o 曲i n d 印e n d c y e x t e n d i b m 劬a i l ds e i f 二d e s c f i 面o n ,x m l b e c o m e st l l ef a c t u a ls t a n d a r do fd a 诅e x c h a n g e 1 1 1 i s l e s i sd i s c u s s e st 1 1 em a i n p r o b l e m so ft h ed a t ac x c h 趾g eo fh e t e r o g e n e o u sd a t a b 嬲e s t h e ni tp r e s e n t sa i lx m l b a s e dd a 切e x c h a l l g em o d e l s f i n a l l y ,“d i s c l l s s e sai n s t a i l c eb a s e do n “sm o d e lo f d a t ae x c h a n g eo f h e t e r o g e r l e o u sd a t a b a s es y s t e m 1 h st 1 1 e s i sn r s t l yp 础目e n t st h ek n o w l e d g eo f ) q 儿,d i s “s s e s 吐玲r e l a t e dt h e o r y o fd a t ae x c h a n g eo fh e t e r o g e n e o u sd a t a b 鹊e ,a n a l y z e st h et r a d i t i o n a ld a t ae x c 舶g e m e 血o d sa n dp r o b l e m s ,d i s c u s s e st e c l l i l o l o g yr e l a t e dt om eh e t e m g b n e o u sd a ta _ b a s e e x c h a n g e t h e ni ta 1 1 a l y z e sm ep o s s i b i l 畸o fx m l b a s e d 拙ae x c h a n g ef r o mt h e a s p e c t so fs c h e m ab i n d i n go f ) ( 】la n dr e l a t i o nd 啦出船e ,d a t as t r u c t u r eb i n d i n go f x m la l l dr e l a t i o nd a t a b a s e ,d a t af o n n a tb i n d i n go fx m la n dr e l a t i o nd a t a b a s e i t i n v e s t i g a t e st h cs u p p o r to f 也et y p i c a ld a t a b a s ep r o d u c t st ot h e 帆a i l dt h e c o n v e r s i o nt o o l sb e t 、e e n 幢la n dd a t a b a s e f i n a l l y ,i td e v e i o p sax m lb a s e d t h r e e 一1 a y e rm o d e lf o ri m p l e i n c n t i n g 她e x c h a l l g eo fh e t e r o g e n e o u sd a t a b a s e i t p m v i d e sas o 】v i n gs c h e m af o rn l ep r o b l e m s0 f 妇l ae x c 砌g eo fh e t e r o g e n e o u s d a t a b a s ea n di m p l e m e n t st h ed a t ae x c h 趴g eb e t 、e e n0 r a c l ed a t a b a s ea t l ds q ls e r v e r 2 0 0 0d 雠山a s eb yu s i n ga d o n e ta p it 1 1 i d u g hx m lu n d e r 也e n e te n v i r o i n e m t h et h e s i si m p l e m e m sax m l b 器e dd a t ae x c l m g es y s t e mu n d e r l e n e t 也啪e b o 也o ft h e mh a v eb e e ns u c c e s s f u l l ya p p l i e dt o 也ee - b u s i n e s ss y s t e mf o ra c e r t a i no n n n eb 0 0 k s t o r e k e yw 0 r d s :l ,d a t ae x c h a l l g e ,h e t e r o g e n e o u s ,r e l 撕o nd a t a b a s e i l 武汉理工大学硕士学位论文 1 1 问题的提出 第1 章绪论 数据库技术经过五十多年的发展,极大地推动了政府和企业信息化建设的 进程。政府和企业内部各职能部门根据需要构建了众多业务系统,这些系统大 多采用数据库来管理数据。这些业务系统通常采用不同的技术和体系结构,大 部分是相互独立的应用系统。然而在现实生活中,一项工作往往需要多个部门 业务系统中的业务数据协同处理才能完成,许多部门业务需要其它相关部门提 供信息,但是由于这些部门之间并没有一套很好的数据交换、共享机制,从而 给这些部门的管理以及其它日常工作带来诸多不便,并降低了工作效率。 九十年代以来,随着i m e m e t 的飞速发展,人们对信息管理和数据交换的 需求更是空前的强烈和迫切:政府和企业内各部门需要从彼此分散的应用系统 数据库中获取并管理业务数据,以使系统资源能够得到最充分的利用。如何实 现这些数据库系统之间的数据麸享,实现各种数据库系统的数据互访,已日渐 成为政府和企业面临的一大问题。为了改变上述情况,如果考虑重新开发业务 系统,无论从时间、成本、或者是实施等方面考虑都是不可行和不现实的。 x m l 技术是i n t e n l e t 新技术之一,以其结构化、可扩展、自描述的特点和 它在数据交换方面的优势,引起了业界的广泛关注。x m l 的最大用途之一是作 为网络上不同数据存储系统的交换中介。目前网络上有许多在不同操作系统平 台上且以不同方式存储的数据,x m l 提供了通用的数据表示格式,进而提供了 一条不同介质上数据进行交流的捷径。因而,如何将不同操作系统平台上以不 同形式存储的数据通过x m l 进行数据交换,是我们研究的一个重要课题。 1 2 目前课题研究的现状 目前,绝大部分数据仍存储于关系数据库,利用x m l 作为数据交换格式的 应用程序的关键就是要实现关系数据库和x m l 文档之间的数据转换。这可归结 为四个问题: 武汉理工大学硕士学位论文 利用数据库中抽取的数据生成己知模式的x m l 文档; 将x m l 文档加载到已知模式的关系表中; 从关系模式产生v i l 模式用于抽取关系数据; 从x m l 模式产生关系模式用于加载x m l 文档。 前两者属于模式匹配问题,后两者属于模式转换问题。为解决这些问题, 许多中间件产品都提供了在关系数据库与x m l 文档之间转换数据的方法,如 a s p 2 x m l ,d b 2 x m l 等等。各种主流的数据库产品也集成了这些中间件或提供 了关系数据格式与l 数据格式的转换工具,如s q ls e n ,e r2 0 0 0 ,0 r a c l e8 i 9 i ; d b 2 ,s y b a s e 等都增加了对x m l 的支持。但它们大都功能有限。比如,o r a c l e 8 i 9 i 的x m ls q lu t i l 姆的适用性不强,其原因有映射是硬编码的( h a r d c o d e d ) ,不支 持对x m l 文档中属性的处理,要求x m l 元素名与数据库中字段名一致,并且 不存储有关x m l 文档中子元素的顺序信息,因而很难重建x m l 文档等。 1 3 课题的意义 本文应用订l 技术建立数据交换模型和面向i m e m c t 的数据交换通道,采 用x m l 文档作为底层的数据交换载体,低成本地进行数据交换与集成。克服了 e d i 等传统的数据交换技术具有格式不灵活、成本昂贵、交互性差等缺点,更大 范围地实现数据共享和更有效地利用信息资源,最终实现政府和企业信息化工 程中信息集成要求的异构应用间自动、平滑的数据交换过程。使政府和企业不 同的异构系统之间实现最大限度的协同,并能扩展现有数据交换应用,使孤立 的应用系统各业务环节有机地结合起来,建立基于i n t e m e t 的协作模式,从根本 上提高工作效率。 1 4 基于x m l 的异构数据交换的主要技术难点 使用l 作为异构数据库数据交换的主要技术手段是可行的,但还存在一 些技术难点需要解决: x m l 与关系数据库之间的数据模式映射问题:由于订l 适用于表现半 结构数据,而关系数据库所表示的是结构化数据,它有严格的数学模型。这自 然涉及到如何将关系数据库的数据模式准确地映射到x m l 文档中。 2 武汉理工大学硕士学位论文 异构数据交换的规则建立问题:异构数据交换中最需要解决的是逻辑异 构问题,而解决这一问题需要通过建立一个交换规则库,数据交换在该规则库 控制下进行。 二进制数据的交换问题:图片、图像和声音数据在关系数据库中往往是 以二进制数据的形式保存的。二进制数据不能直接写入x m l 文件,如何将二进 制数据提取到x m l 文档中,然后再将其交换到目标数据库中也是数据交换中必 须解决的难点问题之一。 1 5 论文组织 第一章绪论,介绍了课题的研究背景、研究现状、课题的意义以及基于x m l 的异构关系数据库数据交换的主要技术难点。 第二章x m l 概述,本章首先讲述了x m l 技术产生的原因和特点,以及与 h t m l 的对比。接着介绍了本文用到的x m l 技术:l 模式与编程接口。最 后是x m l 适用于数据交换的优点。 第三章x m l 与异构数据库,本章阐述了异构数据库的概念、传统的数据交 换和x m l 出现后数据交换的特点、x m l 与数据库之间的映射以及关系数据库 对x m l 的支持。 第四章系统设计,本章对系统需求进行了分析,提出了异构数据交换系统 的总体设计以及数据交换中涉及到的阏题和鼹决办法。 第五章系统实现,本章介绍了开发系统采用的平台和开发工具,并具体讲 述了每个模块的实现方法。 第六章总结。对本文的工作做了总结,并对进一步的研究工作提出了展望。 武汉理工大学硕士学位论文 2 1x m l 简介【2 】 第2 章l 概述 x m l 即为“可扩展的标记语言”( e x t e n s i b l em a r k u pl a n g u a g e ) ,是一套定 义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。x m l 有两个先驱s g m l 和h t m l 。s g m l 是指“通用标识语言标准”( s t a n d a r d g e r a l i z e dm a r k - 叩l a n g l l a g e ) ,它是国际上定义电子文件结构和内容描述的标 准,同讧l 相比,s g m l 定义的功能很强大,缺点是它不适用于w 曲数据描 述,而且s g m l 软件价格非常昂贵。h t m l 目“超文本标识语言”( h y p e r t e x t m a r k u pl a n g u a g e ) ,它的优点是比较适合w 曲页面的开发。但它有一个缺点是 标记相对少,只有固定的标记集,缺少s g m l 的灵活性和适应性。l 结合了 s g m l 和h t m l 的优点并消除其缺点,使其在w 如应用中既能利用s g m l 的长 处,又保留了h t m l 的简单性。x m l 实际上是s g m l 的一个子集,它保持了 对现有的面向s g m l 的系统的向下兼容性,与w 曲的结合也使得它们更便于被 访问。x m l 与h 1 m l 的比较如表2 1 。 表2 1x m l 与h 1 m l 的比较 比较内容 h t m lx m 【l 扩展性吲定格式的标记,很难扩展 用户自定义的标记! 扩展方便 不容易实现一般数据处理所可以很方便地实现一般处理功能:如排 交互性 需要的交互访问 序、过滤等 语义表达无法表达语义语义表达功能丰富 异构信息交互实现非常困难信息交互的实现非常容易 搜索功能搜索不准确,垃圾信息太多可以实现准确无误的搜索 只能用于显示w 曲页面可以完成多种灵活的w e b 应用:如本地 w e b 应用 计算与处理、数据的多样显示、粒状更新 文档格式要求比较灵活 要求严格 显示集成了数据与显示显示与数据相分离 4 武汉理工大学硕士学位论文 2 2 格式良好的 ,i l ( w e l l 一f o 唧e d v 几) 文件 有两种x m l 文件,一种是格式良好的讧l 文件,一种是有效的( v a l i d a t i n g ) x m l 文件。如果一个x m l 文件满足x m l 规范中的某些相关法则,且没有使用 模式时,可称这份文件是格式良好的。而如果一个x m l 文件是格式良好,且正 确地使用了模式,模式中的语法又是正确的,那么这个文件就是有效的。 我们知道,m 。必须是格式良好的,才能够被解析器正确地解析出来。那 么什么是格式良好的儿文件呢? 格式良好的l 文件必须符合如下规则:【3 l 元素和属性的名称可以由字母、数字和下划线字符组成,首字符必须是 字母或者下划线; 文档必须只有一个唯一的根元素,包含了所有其它元素; 对于每一个起始标记,必须有一个结束标记与之相对应( 使用简洁语法 的空元素除外) ; x m l 标记区分大小写,因此起始标记与结束标记必须严格匹配; 根元素内的每个元素都必须嵌套在自己的父元素内; 同一个元素不能包含超过一个的同名属性,除非使用n 跚e s p a c e 来限定 属性名。 示例:格式良好的x m l 文件 ( ? x m iv e r s i o n = ”1 0 e n c o d i n g = 1 u t f l 8 ”? x m l 网页开发实例教程 机械工业出版社叫出版社 2 3 o o 叫单价 吲书籍 2 3 l 模式【4 】【5 6 】 只要不违反l 格式良好的规则,就可以自由选取标记的名字,用自己习 惯的方式描述事物。这就意味着用x m l 描述相同的事物时,不同的编写者可能 写出含有不同标记名、采用不同结构的x m l 文档,这对于数据的统一处理极为 武汉理工大学硕士学位论文 不利。所以需要一种机制指定应该如何构造描述同一事物的文档,而x m l 模式 就是这样的机制。使用较为广泛的有d t d 和x m l s c h e m a 。 2 3 1d t d d t d 是d o c 啪e n tt y p ed e f i n i t i o n ( 文档类型定义) 的简称。它是一套关于 标记的语法规则,详细描述一组x m l 文档的结构。d t d 说明在文档中可以使 用哪些标记,哪些标记可以出现在其它标记中,哪些标记具有属性,使用的标 记应按什么顺序出现等。 2 2 小节示例l 文档对应的d t d 文件为: ( ? x m lv c r s i o n = ”1 0 ”e n c o d i n g = ”u t f - 8 ”? ! a 盯l i s t 书籍i s b nc d a t a 拌r e q u i r e d 随着x m l 技术的广泛使用,d t d 逐渐暴露了自身存在的不足: d t d 是基于正则表达式的,描述能力有限: d t d 没有数据类型的支持,在大多数应用环境下能力不足; d t d 的约束定义能力不足,无法对x m l 实例文档做出更细致的语义限 制; d t d 的结构不够结构化,重用的代价相对较高; d t i ) 并非使用) a l 作为描述手段,而d t d 的构建和访问并没有标准 的编程接口,无法使用标准的编程方式进行d t d 维护。 2 3 2x m 吐s c h e m a x m ls c h e m a 如同d t d 一样,负责定义和描述x m l 文档的结构和内容模 式。它是针对上一小节列举的d t d 的缺点而设计的,它可以定义l 文档中 存在哪些元素和元素之间的关系,并且可以定义元素和属性的数据类型。x m l s c h c m a 本身是一个x m l 文档,它符合x m l 语法结构。可以用通用的x m l 解 析器解析它。 6 武汉理工大学硕士学位论文 2 | 2 小节示例x m l 文档对应的x m ls c l e m a 文件为: ( x s :c o m p l e x t y p e x s :e l e m e n tn a m e = ”出版社”t y p e = ) 【s :s t r i n g ”胁 x s :e l e m e n tn a m e = “单价”t y p e = ”x s :d e c i m a l “胁 x s :s e a u e n c p 1 2 3 4 叫订单号 2 0 0 5 1 0 0 6 叫日期 李勇 8 武汉理工大学硕士学位论文 ( 订单项 x m l n e t 编程指南叫产品 1 刮数量 o r a c l e9 i 中文版数据库系统管理,产品 1 叫数量 对应的d o m 文档树如图2 2 所示: 文档的根 。元素节点 属性节点 卜o 订单号 卜o 日期 客户 订单项 品倦 图2 2d o m 文档的树形结构 常见的d o m 引擎有:m sd o m 引擎( 出现在m s x ml d l l 中) 、i b m 的 x m l 4 jd o m 引擎和a p a c h e 的x e r c e s 引擎等。d o m 引擎可用于:j a v a 、c + + 、 c # 等环境中。 2 4 2 简单舭应用编程接口( s a x ) 【9 】 读取和操纵x m l 文档的标准方法是d o m 。遗憾的是,这种方法需要读取 整个文件并将它存储到树结构中,因而效率不高、缓慢,并且会过度使用资源。 一种替代方法是使用s a x 。s a x 允许在读取文档的过程中处理该文档,这避免 了在采取操作之前需要等待存储文档的所有内容。与d o m 不同,s a x 不是一 9 品量 项产 一 一数 弹旬 旷_lil 武汉理工大学硕士学位论文 个w 3 c 规范,也没有什么官方标准,但在x m l 社区中,它是一个事实上的标 准。s a x 是由x m l d e v 邮件列表的成员开发的,目的是提供一种更自然的方 法来使用v i l ,这种方法不会涉及到使用d o m 的那种开销。s a x 是一种基于 事件的推( p u s h ) 模型,提供了一种对x m l 文档进行快速、只前、只读、顺序 访问的模式。s a x 接口是事件驱动的,当使用s a x 解析器对) ( i l 文档进行解 析时,就会触发一系列事件,并激活相应的事件处理函数,从而完成对x m i 文 档的访问。开发人员自行编写这些事件的处理函数,便可达到从订l 文档中检 索信息并做相应处理的目的。 s a x 处理的工作流程: s a x 分析经过其的x m l 流,产生一系列事件。例如以下m 。代码片断 1 2 3 4 吲订单号 2 0 0 5 1 0 0 6 叫日期 订单 一般情况下,s a x 处理器分析这段代码将生成以下事件: s t a r td o c u m e n t 表示文档开始 s t a r te l e m e n t ( 订单) 表示元素开始,当一对标记中的起始标记中的所有 内容被处理后,解析器激发此事件。包括了标记名 和其属性。 c h a r a c t e f s ( w h i t es p a c e )包含字符数据,类似于d o m 的一个t e x t 节点。 s t a ne l e m e m ( 订单号) 表示元索开始 c h a r a c t e r s ( 1 2 3 4 )包含字符数据 e n de l e m e n t ( 订单号) 表示元素结束 c h a r a c t e r s ( w h t es p a c e )包含字符数据 s t a ne l e m e n t ( 日期) 表示元素开始 c h a r a c t e r s ( 2 0 0 5 1 0 0 6 ) 包含字符数据 e n de l e m e m ( 日期)表示元素结束 c h a r a c t e ”( w i i i t es p a c e ) 包含字符数据 e n de l e m e n t ( 订单) 表示元素结束 s a xa p i 允许开发者捕获这些事件,并对它们进行操作。 l o 武汉理工大学硕士学位论文 s a x 处理涉及以下几步: 创建事件处理程序; 创建s a x 解析器; 将事件处理程序分配给解析器; 对文档进行解析,将每个事件发送给处理程序。 2 4 3d o m 和s a x 的使用时机 选择d o m 还是s a x ,取决于以下几个因素:l l 圳 应用程序的目的:如果必须对数据进行更改,并且作为x m l 将它输出, 则在大多数情况下,使用d o m 。这与使用x s l 转换来完成的简单结构更改不一 样。如果是对数据本身进行更改,则尤其应该使用d o m ; 数据的数量:对于大文件s a x 是更好的选择; 将如何使用数据:如果实际上只使用一小部分数据,则使用s a x 将数 据抽取到应用程序中,这种方法更好些。另一方面,如果需要回过头来访问x m l 文件的已解析版本,则d o m 是正确的选择。如果必须使用s a x ,则需要缓存 已读取的数据,否则必须再次解析该文件; 需要速度:通常s a x 实现比d o m 实现快。 s a x 和d o m 不是互斥的,可以使用d o m 来创建事件的s a x 流,也可以 使用s a x 来创建d o m 树。事实上,大多数解析器实际常常使用s a x 来创建 d o m 树。 2 5 帆适用于异构数据交换的特点 l 适用于异构数据交换的特点: x m l 的自描述性。x m l 的自描述性使其非常适用于不同应用间的数据 交换,而且这种交换是不以预先规定一组数据结构定义为前提。在数据交换中 使用x m l ,程序开发人员可以方便地用自定义的标记来描述数据。 x m l 的可扩展性。h 喇l 只采用了一部分s g m l 思想,使用了一个固 定的元素类型集。这就使得h t m l 仅仅是符合s g m l 语法的一种固定格式的超 文本标记语言,不可扩展,用户不能在其中增加有意义的并且能供他们使用的 武汉理工大学硕士学位论文 标记。x m l 与h t m l 不同,它可以在遵守标记命名规则的前提下进行定义,来 满足应用的需要。 v i l 的跨平台性。x m l 文件实际上就是文本文件,不管是、i n d o w s 平 台、u n i x 平台还是其它平台,它们的含意都是一样的。 x m l 文件不仅仅包含数据,而且包含了数据的数据结构。x m l 文档不 需要结构描述部分,它自身的层次关系就可以体现) m 几文档内的数据结构,因 而能非常清晰地表达数据间的依赖关系。 互联网是x m l 的最大载体,与传统e d i 的w m 联网方式相比,互联网 具有成本较低、连接广泛、扩展性好的特点。 1 2 武汉理工大学硕士学位论文 第3 章l 与异构数据库 3 1 异构数据库概述 异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和 透明访问。每个数据库系统在加入异构数据库系统之前就已经存在,拥有自己 的d b m s ,异构数据库的各个组成部分具有自身的自治性,在实现数据共享的 同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制,异 构数据库系统的异构性主要体现在以下几个方面:【1 1 】 计算机体系结构的异构:各个参与的数据库系统可以分别运行在大型 机、小型机、工作站、p c 或嵌入式系统中; 基础操作系统的异构:各个数据库系统的基础操作系统可以是u n 呔、 w i n d o w s 、d o s 等; d b m s 本身的异构:可以是同为关系型数据库系统的0 r a c l e 、s o ls e r v e r 等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象、 函数型数据库共同组成一个异构数据库系统。 在应用集成和进一步开发的过程中,常常面临的一个突出的问题就是:一 个应用集成中往往存在两种以上不同的数据库环境。在复杂的环境中,如何实 现不同数据库间数据信息资源合并和共享、如何保护已经建立的资源、充分利 用各部门已经使用的数据库,实现不同数据库之间的连接、数据交换和数据共 享,已经成为基于异构数据库的应用集成开发是否成功的关键。由于关系数据 库的广泛应用,本文的研究工作将针对关系数据库的d b m s 异构。 3 2 传统的数据交换 传统的异构数据库数据交换方式为:运行于不同平台的应用系统从各自的 数据库管理系统中或一些独特的数据源中获得数据,执行本地数据处理功能, 当需要与分布系统中其它的应用系统共享或交换数据时,就把这些应用系统作 为一个特殊的数据源,通过专门的数据转换工具或编写专门的程序代码,将用 1 3 武汉理工大学硕士学位论文 于交换和共享的数据“包装”成本地数据库或一些特殊的数据源所能处理的形 式。 如图3 1 所示,图中列出了五个异构数据库,每个箭头指示的方向表示从一 个数据库的数据文件向另一数据库进行传递,从而实现数据交换。这里需要一 个能完成数据转换功能的模块,它的作用是将具有不同数据结构的源数据文件 转化为符合目的数据库数据结构要求的数据格式,并存储在目的数据库中。从 图中可以看到要实现在五个异构数据库之间的数据交换,需要二十个数据转换 功能模块,在一般具有n 个异构数据库的情况下,则需要有n + ( n 一1 ) 个功能模块; 另一方面,若在现有的异构数据库系统中增加一个新的数据库,整个系统共需 要增加2 n 个功能模块。可以看出,传统的异构数据库数据交换要涉及到大量的 编码,对数据资源的重用和移植都很差,灵活性不足。这无疑将增加整个信息 系统的硬件和软件成本,同时系统的维护工作量也将大大增加,这是追求高效、 快速信息系统开发的用户所不能容忍的。 图3 1传统的异构数据库数据交换体系结构 3 3 l 出现后的数据交换 将x m l 用于异构数据库数据交换能够较好地克服传统数据交换方式的缺 点。基于x m l 的异构关系数据库数据交换,是以咀。为公共数据模型来实现 异构数据库系统间模式转换和数据交换。当某一数据库需要转换为其它数据库 的时候,只需将它转换为x m l ,就能轻易的将其迁移到各种关系数据库中,具 有很好的通用性和良好的扩展性。 异构关系数据库数据交换的困难主要是缺乏一个有效的公共数据模型统一 1 4 武汉理工大学硕士学位论文 描述关系模式及关系。x m l 的出现完美地解决了这个问题:x m l 的纯文本、与 平台无关性首先满足解决异构关系数据源所需要的跨平台性;x m l 的强大的结 构性和良好的语义性满足了表达关系数据库的结构和各种约束的需要;x m l 的 优良的交互性为转换带来了方便,使得数据易于操纵;l 的易于扩展性使得 应用可以进一步扩展;x m l 的可格式化让转换出的结果有更多的表现形式。因 此,x m l 完全可以作为异构关系数据库转换的公共数据模型。目前,i 。技术 已经逐渐开始应用于异构数据库的数据交换,并且已成为事实上的数据交换标 准,以x m l 为公共数据模型转换异构关系数据库也为关系数据库与其他数据类 型的集成转换提供了便利。 图3 2 基于x m l 的异构数据库数据交换体系结构 从图3 2 中可以看到要实现在五个异构数据库之间的数据交换,需要十个数 据转换功能模块,在一般具有n 个异构数据库的情况下,则需要有2 n 个功能模 块;另一方面,若在现有的异构数据库系统中增加个新的数据库,整个系统 只需要增加两个功能模块。 3 4 舭与数据库之间的映射 3 4 1x m i ,与数据库之间的映射方法 利用帆文档进行数据库间数据交互,就是用订l 作为数据交互的中介, 完成数据的传输与转换。为了完成数据的转换,必须首先在数据库和v i l 文档 之间传递数据,也就是在文档结构和数据库结构之间建立映射关系,其映射关 系可以分为两类:基于模板的映射和基于模型的映射。 武汉理工大学硕士学位论文 ( 一) 基于模板的映射 基于模板驱动的映射会在一个模板中嵌入带参数的s q l 命令,用数据传输诸 如中间件等实体软件进行处理。基于模板驱动的映射是浅层次映射,以l 文 档内嵌的s q l 执行的数据结果集合为依据,不涉及数据库赖以存在的关系模式或 对象模式,当前诸如m i c r o s o rs q l s e r v e r 2 0 0 0 等大多的产品都属于模板映射, 只能应用于在关系数据库和x m l 文档之间传递数据,并不支持面向对象数据库 之间或关系数据库与对象数据库之间的信息交互。 订单表中所有订单:叫说明 s e l e c to r d e r i d ,o r d e r d a t e ,c u s t o m e r i d f r o mo r d e r s订单记录 f o rx m la u t o e l e m e n t s 叫s q i :q u e r y 刮订单表 这个模板处理之后的结果是: 订单表中所有订单: 1 2 3 4 叫订单号 2 0 0 5 - 1 0 - 0 6 a 2 2 3 4 叫客户 刮订单记录 叫订单表 基于模板的查询语言非常灵活。尽管不同厂商产品的功能不尽相同,但有 一些共同特性: 可以将返回结果放在输出文件中的任何地方,包括作为后续s e l e c t 语 1 6 武汉理工大学硕士学位论文 旬的参数; 可由程序构建f o r 循环和i f 语句; 可以定义变量和函数; 可通过h t l l p 参数实现s e l e c t 语句的参数化。 从关系数据库中将数据转换到订l 文件时,几乎一定要用到基于模扳的查 询语言。基于模板的映射有一个缺点:就是它只能完成从数据库数据到x m l 文 件的映射,而不能完成从x m l 文件到数据库的映射。 ( 二) 基于模型的映射 基于模型的映射也有两种:基于表的映射( t a b t e b a s e dm a p 咖n g ) 和对象一关 系映射( o b j e c t - r e l a t i o n a l m a p p i n g ,也叫基于对象的映射( o b j e c t b a s e d m a p p i n g ) ) 。 这两种映射都建模在l 文档中的数据而不是文档自身。它们在这方面的一个 重要特征是双向的。就是说,它们可以用来从x m l 文档向数据库传输数据、也 能从数据库向x m l 文档传输数据。这使得这些映射适宜于咀数据为中心的文档, 而不适宜于以内容为中心的文档。基于表莳映射不能处理混合内容模型,对象一 关系映射处理混合内容模型也是非常低效的。 1 基于表的映射 许多转换x m l 到数据库的中间软件都采用基于表的映射。在下面的x m l 文档和表之间有明显的映射: ( b c c c c d d d e e e c 镯f 鹊g 1 1 i 】h e t 曲l e a c c c c 箭 d d d d g g g e - e e e h h h 它把l 文件看作一个( 或一组) 表格,也就是说,x m l 文件的结构必 1 7 武汉理工大学硕士学位论文 须是下面这种样子: c 0 1 u m n1 e o u m nl 叫r o w 饥b l e1 c o 】u m n1 :o l u m n 一【n 叫t a b l en 如果只是单一表格的话,就不再需要 元素和其它 元素: 北o i 岫n _ n q o i u m n1 刮o l u m nn 武汉理工大学硕士学位论文 此外,采用基于表格映射方式的软件还可能允许在文件开始的地方包含表 格或各字段的元数据,或者将其作为各表格或元素的属性。注意这里所说的“表 格”是泛指的表格。当将数据从数据库中转到x m l 文件时,“表格”可以是任 何结果集,反之,“表格”可以是普通的表格或可更新的视图。基于表格的映射 对存取关系型数据比较适用,比如在两个关系型数据库之间转换数据。其明显 不足就是不适于格式不符的x m l 文件。 2 对象关系映射 基于表的映射只能处理x m l 文档的一个有限的子集,而对象关系映射提 供了一个更加完善的映射机制:它将x m l 文件中的数据视为特定的对象树的模 型,接着把这些对象映射到数据库。在理解这种映射所用的对象模型的时候要 知道,这个对象模型不是文件对象模型( d o m ) 。 首先请看下面一个简单的示例来增强对对象关系映射的理解。可以看出 在x m l 文档、对象和一个表中的行之间有明显的映射关系: x m l o b j e c t s t a b l e s b b b c c c d d d 叫d 叫a o b j e c t a b = ”b b b ” = _ c ;”c c c ” d = ”d d d ” ) 1 i b l e a bcd b b bc c cd d d 同样,在文档类型定义、类和表的模式之间也有明显的映射关系: d t dc l 鹊s1 1 a b l es c h e m a c l 鼬s a s i r m g b ; cv a r c h a r ( 10 ) n o t n u l l , d 、,a r c h a r ( 1 0 ) n o t n u l l ) 武汉理工大学硕士学位论文 3 4 2 m 。与数据库之间结构的映射 从数据库数据映射到x m l 文档时,可以将各字段数据以子元素的形式或以 属性的形式存储,同样也可以指定这些元素或属性的名字。如果将各字段以属 性为中心( 甜r i b u t e c e n t r i c ) 的风格来表示,则呈现一种扁平的结构;如果将各 字段以元素为中心( e l e m e n t c e n t r i c ) 的风格来表示,则呈现一种嵌套的结构。 例如一个订单表:订单( 订单号,日期,客户) ( 1 ) 各字段以属性为中心的形式映射: ( 2 ) 各字段以元素为中心的形式映射 1 2 3 4 订单号 2 0 0 5 1 0 0 6 ( ,日期 李勇刮客户, 当然还可以用二者混合的方式来迸
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 孕期离婚协议模板定制与婚姻财产分割指导合同
- 离婚房产归女方协议书:女方权益保障范本
- 离婚协议书范本:无子女双方协议书
- 石家庄市二手房买卖交易合同终止后权益保障协议
- 离婚协议6865I版:财产分割及债务处理细则
- 城市综合体物业管理与能源采购合同
- 食品企业生产信息保密及食品安全责任合同
- 班组级安全培训内容模板课件
- 小班教学水果课件
- 2025年病理生理学乳腺组织病理变化模拟考试卷答案及解析
- 2025债权收购委托代理合同
- 2025年中国建筑集团招聘面试宝典与模拟题答案
- 2025年高考英语新课标Ⅱ卷点评及2026备考方向 课件
- 2025年学宪法、讲宪法知识竞赛题库及答案
- T/CTRA 01-2020废轮胎/橡胶再生油
- 2025广西专业技术人员公需科目培训考试答案
- 高中英语新课标3000词汇表(新高考)
- 中英文版送货单
- 中英文验货报告模板
- T∕CCFA 01030-2017 纤维级化学法循环再利用聚酯切片(PET)
- 放射科质量与安全管理考核标准
评论
0/150
提交评论