




已阅读5页,还剩74页未读, 继续免费阅读
(计算机应用技术专业论文)基于xml的异构数据库交换研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河海大学硕士研究生毕业论文 y 1 u 1 , 5 8 7 8 基于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 模式间的转换进行研究,探索在x m l 模式中 完整地描述关系模式的数据结构、数据类型、数据约束等信息的技术途径,为关 系模式与x m l 模式之间数据转换建立技术基础;然后对x m l 模式间存在的异 构冲突进行分析,采用x m l 模式树确定源方和目标方x m l 模式间匹配规则, 由数据交换模块根据匹配规则对源x m l 数据操作生成目标儿数据;本文还 对匹配规则进行形式化描述,使数据交换模块独立于具体的数据转换计算,能够 通过解读不同的匹配规则灵活地在x m l 模式问进行数据交换。 最后本文在分析水利基础数据库应用背景的基础上,将异构数据库交换方案 应用到水利基础数据库的数据交换系统中,采用j a v a 语言及w e b s e r v i c e s 等相关 技术对该系统中的各主要模块和服务进行了详细的设计与实现,并以一个具有代 表性的实例对x m l 模式间的匹配和数据交换进行试验,为本文方案进行了可行 性验证。 本文方案采用双x m l 模式进行数据交换,消除x m l 数据交换对预先定制 单一的x m l 模式的依赖,能够较好地适应交换需求发生的变化,提高x m l 数 据交换的灵活性。与单x m l 模式数据交换相比,方案中各功能模块相对独立且 可扩展,具有更强的通用性。 关键词:异构数据库数据交换x m l 匹配规则 河海大学硕士研究生毕业论文 基于x m l 的异构数据库交换研究 a b s t r a c t d a t ae x c h a n g ec o u l da c h i e v ed a t a s h a r i n gb ye l i m i n a t i n gc o n f l i c tb e t w e e n h e t e r o g e n e o u sd a t a b a s e sa n dr e d u n d a n t l ys t o r i n gd a t ai ne a c hd a t a b a s e a tp r e s e n t , t h em e t h o df o rd a t ae x c h a n g eb a s e do nx m li si nc o m m o nu s e h o w e v e r , i ti s i n f l e x i b l eb e c a u s ei tr e l i e so nc u s t o m i z i n gax m ls c h e m ai na d v a n c e t h i sp a p e r d e s i g n sad u a l x m l - s c h e m as o l u t i o no f d a t a b a s ee x c h a n g i n gt os o l v et h ep r o b l e m a c c o r d i n gt ot h es o l u t i o ng i v e ni nt h i sp a p e r , t h es o u r c ea n dt a r g e tc o n v e xe a c h r e l a t i o ns c h e m at ox m ls c h e m ar e s p e c t i v e l yw i t hx m ls c h e m al a n g u a g e t h e h e t e r o g e n e i t yb e t w e e ns o u r c ea n dt a r g e tw o u l db ee l i m i n a t e db yx m ls c h e m a m a p p i n gw i t hm a p p i n gr u l e s s i n c et h em a p p i n gr u l e si s c r e a t e dd y n a m i c a l l y , t h i s s o l u t i o nc a na d a p ti t s e l ft ot h ec h a n g eo c c u r r e di ns o u r c eo rt a r g e tb yu p d a t i n g m a p p i n g r u l e s i nt h i sp a p e r , d u a l - x m l s c h e m as o l u t i o no fd a t a b a s ee x c h a n g ei sa p p l i e dt o m e e tt h ed a t as h a r i n gr e q u i r e m e n to fb a s a lh y d r o g r a p h i ci n f o r m a t i o nd a t a b a s e t h i s p a p e ra l s og a v ed e t a i l e dd e s i g na n di m p l e m e n t a t i o no ft h ep i v o t a lp r o c e s si nd a t a e x c h a n g es y s t e m ,i n c l u d i n gs c h e m ac o n v e r s i o n , s c h e m ar e g i s t e r i n g , s c h e m am a p p i n g , d a t ae x c h a n g ea n ds t ) o n f i n a l l yt h i sp a p e ru s e dar e p r e s e n t a t i v ee x a m p l et ov a l i d a t e t h ef e a s i b i l i t yo f d u a l - x m l - s c h e m as o l u t i o n t h es o l u t i o nd e s i g n e di nt h i sp a p e ri sr o o t e di nat h o u g h t w a yo fd u a l s c h e m a d a t ae x c h a n g ew h i c hp u tf o r w a r di nal i t e r a t u r ew r i t t e nb yg a oj i a n q i a n g d u et oa l l t h em o d u l e sa r er e l a t i v e l yi s o l a t e da n de a s yt oe x t e n d ,t h es o l u t i o nc o u l db eu s e di n k i n d so f s c i e n e ed o m a i nt os o l v ed a t a - s h a r i n gb e t w e e nh e t e r o g e n e e u sd a t a b a s e s k e yw o r d s :h e t o r o g e n e o u sd a t a b a s e ,d a t ae x c h a n g e ,x m l ,s c h e m am a p p i n g 河海大学砸士研究生毕业论史基fx m l 的异构数据库交换研究 第一章绪论 1 1 研究背景 异构数据库分布在网络的不同位置,其异构性体现在d b m s ( d a t a b a s e m a n a g e m e n ts y s t e m ) 运行的系统环境和使用的数据模型的不同,以及用户各自 独立对数据进行建模而引起的数据结构和数据语义表达的差异【1 1 。系统异构给数 据库问跨网络的互操作带来困难,模型异构使得用户无法使用本地的数据库语言 访问异构数据库中的数据,结构异构和语义异构则使应用系统难以理解异构数据 库中的数据并对其进行分析和处理。因此,这些异构数据库就象一个个“信息孤 岛”1 2 1 ,彼此间的共享存在困难。 解决异构数据库问的数据共享,能够加速企业问以部门、业务为核心的信息 系统的集成,形成更广泛更高效的有机整体,提高企业业务处理的速度,拓宽业 务覆盖面,加强企业间的合作与交流。同时也能对其他诸如o l a p 、数据挖掘、 数据仓库、移动计算等应用提供数据基础。此外,异构数据库共享还可以避免数 据库的异构性带来的数据资源浪费,提高数据资源的利用率。所以,实现异构数 据库的数据共享对于企业信息化的进一步发展具有重大的意义。 数据交换是实现异构数据库共享的途径之一。解决异构数据库的共享主要有 远程访问、数据库集成、数据交换等方式,其中数据交换是用源数据库的数据格 式读出所需数据,再按目标数据库的格式写入,将数据在目标数据库中冗余存储, 使双方的数据互为补充,达到异构数据库共享的目的。数据交换的任务包括数据 抽取、数据转换、数据传输和数据卸载。数据抽取是从源数据库中获得数据的过 程。数据转换将源数据重新构造和翻译,以消除数据异构性而获得目标数据1 3 1 。 数据传输通过计算机网络实现源方数据库到目标方数据库之间的数据传递。数据 卸载是由目标方解析转换后的数据存入目标数据库。 数据交换中数据转换质量的好坏直接影响到交换后的数据能否有效地存入 目标方数据库或被目标方应用系统使用。因此,如何在数据转换过程中消除数据 异构性是数据交换的一个难点问题。此外,数据交换过程不可避免地涉及数据的 请求、发送与接收等操作,又面临着系统运行环境异构带来的系统间互操作问题, 所以解决系统间的互操作是数据交换的第二个难点。 1 2 研究现状 数据库的异构性导致数据共享存在困难的问题,已经引起了业界的关注,数 据库厂商和软件厂商都在不断探索和研究解决的方案。在异构数据库的数据交换 方面,目前主要有以下几种技术途径。 河海大学硕上研究生毕业论文基于x m l 的异构数据库交换研究 1 ) 数据库交换工具 为了支持数据库间的数据交换,数据库厂商对d b m s 进行功能扩展,应用 软件厂商也在d b m s 之上进行开发,提供了一系列的数据库交换工具,包括数 据库复制工具、数据库转换工具等。这些工具与d b m s 结合紧密,运行效率高, 但通用性不足,目前还没有一种工具能够适用于所有异构数据库的交换。并且使 用这些工具通常需要人工对交换过程进行初始化设置,设置工作较为繁琐。 ( 2 ) 数据库交换中间件 中间件是介于c l i e n t 与s e r v e r 之间的中介接口软件,主要作用是解决异构环 境下( 如不同的操作系统、网络环境、d b m s 等) 系统的互操作问题【4 】,使用户 着重进行业务逻辑的开发。功能完善的数据库交换中间件可以屏蔽数据的分布地 点、d b m s 、s q l 方言扩展、特殊的本地a p i 等差异并对数据进行转换以用户 能够接受的格式提供数据。但是中间件技术本身比较复杂,还需配套使用应用服 务器这类昂贵的软件,因此其应用成本较高。 ( 3 ) 中间数据法 中间数据法为数据交换提供公共的数据格式,交换双方统一使用这一数据格 式的文档交换数据。在这种方法中,交换双方各自负责实现中间数据文档与本地 数据库之间的转换,无需考虑对方数据库的实现细节,可扩展性强,同时,使用 文档进行数据交换的应用成本较低,所以中间数据法具有较高的通用性,已经得 到广泛使用。 目前,中间数据法的数据交换主要是以x m l i s i ( 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 是一种数据格式描述的元语言标准,具有系统独立性、 可扩展性、自描述性、遵循严格的语法规范以及支持多语种等特点,自产生之后 就迅速被作为中间数据格式标准应用到数据交换领域。作为数据交换的中介, x m l 不仅能够提供对数据的存储,还包含对数据结构的描述嘲。x m l 的系统独 立性使得x m l 数据能够在不同的系统中使用各种编程语言解析和处理,屏蔽了 异构数据库间系统环境的差异。因此,基于x m l 的数据交换方案已经被广泛用 于解决网络环境下异构数据库的共享。由于多数企业的数据是存储于关系数据 库,为了使用x m l 进行数据交换,必须实现关系模式与x m l 模式之间的转换。 针对这一问题,国内外都在进行研究,已经提出了很多算法。国外具有代表性的 算法有k o s s m a n n 等人的算法【7 1 ,d e u t s c h 等人的s t o r e d 8 】算法、 s h a n m u g a s u n d a r a m 等人的内联算法1 9 、g k a p p e l 等提出的x - r a y 算法1 1 0 1 、d l e e 等提出的c p i 算法【1 1 1 1 1 2 1 【1 3 1 。国内的以曾宇昆1 1 4 1 、方翔【l 川i i6 1 、谷长勇【1 7 】、孙宏伟 i t s l 等人的算法为代表。但它们大多使用d t d 作为x m l 模式的说明语言,而d t d 缺乏对x m l 文档的内容及其语义的约束机制,不支持名字空问,数据类型有限, 因此转换得到的x m l 模式会丢失部分关系模式的信息。w 3 c ( w o r l dw i d ew e b 河海大学坝十研究生毕业论艾基于x m l 的异掏数据库交换研究 c o n s o r t i u m ) 推荐使用x m ls c h e m a 作为x m l 的模式说明语言,x m ls c h e m a 有丰富的内嵌数据类型和强大的类型定义功能,能够更好地表达数据的结构、类 型和约束。孙宏伟例【2 1 1 、方翔等人【2 2 i 在基于x m ls c h e m a 的模式转换方面做 了大量的工作,能够在模式转换中保留完整性约束,较好地进行关系模式和x m l 模式的转换。 1 3 存在问题 基于x i v i l 的数据交换方案一般是通过定义一个x m l 模式,在交换过程中 传输符合该x m l 模式的数据文档实现数据交换,交换双方各自负责数据在本地 关系模式与x m l 模式问的转换。本文将其称为单x m l 模式的数据交换。这种 单x m l 模式交换主要有单方定义“l 模式和公用x m l 模式两种实现方式。 ( 1 ) 单方定义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 i v i l 模式由目标方定义,那么缺点就体现在源方。 ( 2 ) 公用x m l 模式 公用x m l 模式的实现方式是对前一种方式的改进,它为数据交换定义一个 公用的x m l 模式,参与数据交换的各方以这一公用模式发送和接收数据。这种 方式便于整个数据交换体系的扩展,新加入的异构数据库只要实现自身关系模式 与公用x m l 模式之间的转换就可以与原有交换体系中所有数据库进行数据交 换。但这种方式在灵活性上仍然存在问题,当公用x m l 模式发生变化时,参与 交换的各方都需要重新开发数据转换模块以适应新的x m l 模式。 综合上述单方定义x l v i l 模式和公用x m l 模式的实现方式,其区别主要在 于数据交换过程中使用的x m l 模式的来源不同,两者在灵活性方面存在如下问 题: 1 ) 单x m l 模式的数据交换依赖于一个按交换需求定制的x m l 模式,交换 双方围绕这个定制的x m l 模式,开发专用的数据转换模块进行关系数据与x m l 数据的转换。一旦因交换需求发生变化,势必导致x m l 模式发生变化,从而导 致数据转换模块的变更,因此单x m l 模式的数据交换的灵活性较差。 2 ) 源数据库和目标数据库通常都从自身的应用需求出发,对其所关注的数 河海大学坝士研究生牛业论文 基于x m l 的异构数据库交换研究 据预先定义好了关系模式,按交换需求定制的x m l 模式与交换双方的关系模式 不能对应或至少与一方不能对应,存在结构和语义上的异构,如表结构1 ;同、字 段名称不同,字段数据类型不同等。所以,数据转换模块在进行关系数据与x m l 数据转换时,还需要对数据进行操作和编辑,消除数据异构性,然后才能将数据 转入本地数据库或x v l l 文档,这进一步将数据转换模块绑定到一个具体的x m l 模式,降低了数据交换的灵活性。 1 4 双x m l 模式交换的可行性 ( 1 ) 双模式交换思想 文献【2 3 】提出了一种双模式的数据交换思想。该交换思想的原理是先由源方 对源数据进行转换,得到源模式的中间数据,然后再按照指定的规则将其转换为 目标模式的中间数据,由目标方的适配器解析目标模式的中间数据入库。交换模 型如图1 1 所示。 图1 1 双模式数据交换模型 适配器专注于访问数据库,负责完成数据库数据与中间数据之间的转换。交 换器则专注于操作中间数据,按照指定的规则,将源模式的中间数据转换为目标 模式的中间数据。 ( 2 ) 双x m l 模式交换模型 根据上述双模式的数据交换思想,本文引入x m l 作为中间数据进行数据交 换,中间数据的组织结构由x m l 模式来描述,通过为源x m l 模式和目标x m l 模式建立匹配规则进行数据交换。双x m l 模式的交换模型如图1 2 所示。 河泡大学顾士研究牛毕业论艾草rx m l 的异构数据斥交换研究 图1 2 双x s l 模式数据交换模型 数据抽取模块负责将源数据库中的数据转换为源x m l 数据:数据交换模块 负责按照预先定义的匹配规则对源讧l 数据进行操作,生成目标x m l 数据; 数据卸载模块负责将获得的目标x m l 数据转换为目标数据库数据并存储入库。 对于图1 2 的数据交换模型,v i l 相关技术能够给予足够的支持。x m l 模 式语言能够对x m l 数据文档的组织结构进行约束,确保交换中x i v i l 数据文档 的规范性;x i v i l 编程接口提供对x m l 数据文档的访问和处理;x m l 定位和查 询技术能够使应用系统准确地获得x m l 文档中指定节点的数据对其进行操作。 ( 3 ) 双x m l 模式交换的优势 1 ) 数据交换中所使用的x m l 模式有两个,分别由源方和目标方提供,源 方按照源讧l 模式提供数据,目标方按照目标x m l 模式接收数据。如果一方 发生变化,通过更新匹配规则,不会影响到对方。 2 ) 源、目标x m l 模式可以分别对应于各自本地的关系模式,便于交换双 方进行关系数据与x m l 数据的转换。 3 ) 数据交换模块着重于按照匹配规则对源订l 数据进行操作生成目标 x m l 数据,消除源x m l 模式与目标x m l 模式之间存在的数据异构性,无需考 虑数据在交换双方关系数据库中的实际存储形式。 因此,与单x i v i l 模式的数据交换相比,双x m l 模式的数据交换具有较高 的灵活性,并且能够降低实现的复杂性。 1 5 论文工作 本文根据文献【2 3 瞧出的双模式数据交换思想,采用双x m l 模式交换方案, 解决单x m l 模式数据交换方案灵活性差的问题。需要研究采用x m ls c h e m a 对 关系数据的结构、类型和约束的进行描述,根据交换双方的关系模式构造源“l 模式和目标x m l 模式,实现关系模式和x m l 模式之间的数据转换。然后研究 在源x m l 模式与目标x i v i l 模式之间建立匹配规则,并且按照匹配规则将源 x m l 数据映射为符合目标x m l 模式的数据。最后研究目标方将目标x m l 数据 转换为本地关系数据并卸载入库。因此,本文主要工作如下: ( 1 ) 研究关系模式与x m l 模式的转换,设计提取关系模式信息构造x m l 模式 的转换算法,在x m l 模式中完整地表达表结构、数据类型及约束,使数据能够 河海人学硕士研究生毕业论文基于x m l 的异构数据库交换研究 在关系模式和x m l 模式间完整地转换。 ( 2 ) 对x m l 模式间存在的数据异构性进行研究,给出解决策略,设计在源、 目标x m l 模式间建立匹配规则的方法,并为匹配规则建立形式化描述,使数据 交换模块独立于具体的数据映射,能够通过解读不同的匹配规则实现不同x m l 模式间的数据交换。 ( 3 ) 将本文设计的异构数据库交换方案应用于水利基础数据库的交换共享,对 数据交换系统进行详细设计,并对主要功能模块进行实现与相关试验,验证方案 在实际应用和具体实现上的可行性。 1 6 论文组织 第一章绪论。概述本文的研究背景和研究现状,分析现有的基于x m l 的 数据交换方案中存在的问题,论证双x m l 模式交换的可行性,介绍本文的方案、 主要研究工作和论文组织。 第二章异构数据库交换研究综述。研究数据库间存在的异构性,分析数据 交换的任务,总结现有的数据交换的技术途径,论证x m l 相关技术在数据交换 中的作用,研究和分析系统阔的互操作技术。 第三章交换方案设计。针对单x m l 模式数据交换存在灵活性差的问题, 设计分别由源方和目标方提供交换所使用的x m l 模式,然后为源、目标x m l 模式建立匹配规贝q 进行数据交换的方案,并对方案中的关系模式与x m l 模式间 的转换、x m l 模式问的匹配等关键问题进行分析,给出解决策略。最后将本文 方案与现有方案进行比较,并对方案特点进行评述。 第四章方案应用与实现。对异构数据库交换方案在水利基础数据库的数据 交换进行应用设计,对水利基础数据库数据交换系统的数据抽取、模式转换、模 式匹配、数据映射等关键模块进行设计、实现与试验。 第五章总结与下一部工作。对全文的研究工作进行总结,给出本文需要进 一步完善和研究的工作方向。 河海人学硕士研究生毕业沦文基于x m l 的异构数据库交换研究 第二章异构数据库交换研究综述 本章对数据库问的异构性进行研究,分析数据交换的任务,总结现有的数据 交换的技术途径,论证x m l 的相关技术在数据交换中的作用,并分析系统间的 互操作技术。 2 1 数据库异构性 企业通常根据自身的应用需求采用不同的d b m s 产品创建数据库,并在 d b m s 提供的数据模型下各自独立进行数据建模,存储和管理数据。因此,这些 数据库问存在异构性,主要体现在系统异构、模型异构、结构异构和语义异构【2 4 】。 ( i ) 系统异构 系统异构是指数据库的运行环境在操作系统、通信协议上的不同。操作系统 作为系统软件,为数据库提供底层服务支持,目前除了主流的w i n d o w s 系列、 u n i x 系列操作系统,还有l i n u x 系列操作系统。数据库间所使用的通信协议也 有很多种,常见的如t c p i p 、i p x s p x 等。 ( 2 ) 模型异构 模型异构是由于不同的d b m s 使用不同的数据模型造成的异构,主要有层 次模型、网状模型、关系模型和面向对象模型 2 5 1 。目前广泛应用的是关系数据 模型。不同的数据模型通常使用不同的数据库语言,即使同是关系模型,由于各 厂商的产品对s q l 规范实现的不同以及各自进行扩展,数据库语言仍然存在差 异。 ( 3 ) 结构异构 结构异构也称为模式异构,是用户使用同一数据模型针对同一概念进行实际 建模时,由于关注的侧重点和应用目的不同而造成的数据组织结构的不同。例如 同是学生信息,源方使用一个关系模式保存所有学生信息,目标方则可能按所属 学院划分为多个关系模式保存数据。 ( 4 ) 语义异构 语义异构是指对同一现实世界事物进行描述时,数据在表达方式或内容上的 不同【2 6 】。主要包括概念级语义异构和值级语义异构。 1 ) 概念级语义异构 不同的数据库可能会采用不同的术语描述同一领域的概念,或者同一术语在 不同的数据源却表达不同的内涵。更复杂的情况是,目标数据库中的一个术语代 表的是源数据库中多个术语的某种计算结果。例如,源方使用字段n a m e 表示姓 名,目的方则使用f i r s t n a m e 和l a s t n a m e 两个字段表示姓名。 2 ) 值级语义异构 河海大学硕士研究生毕业论文 基于x m l 的异构数据库交换研究 不同数据库对于同概念使用不同的数据表示形式就产生这种异构,例如数 据格式不一致,数据精度不一致,数据量纲不一致等。 系统异构是数据库所依赖的底层系统环境上的差异而产生的,造成系统间集 成上的障碍,在系统互操作的层面上阻碍了数据库间的数据共享。不同的数据模 型使用的数据库语言不同,系统无法使用自己的数据库语言访问异构数据库获得 数据。结构异构引起的是数据组织形式的不一致,应用系统难以对异种数据结构 的数据进行分析和处理;语义异构体现的是不同数据库在数据概念术语及数据值 所表达的语义上的差异,妨碍了相互之间对数据的理解。 根据上面对数据库异构性的分析,异构数据库间的数据共享面临以下几个问 题。首先是跨平台的系统互操作,即数据的可达性问题;其次是数据的理解,用 户应能够了解数据的内在含义,识别出自己所需要的数据,即数据可用性问题; 第三是数据异构冲突的消除,只有消除了各种异构冲突的数据,才能够被应用系 统所接受和处理,即数据易用性问题。 2 。2 数据交换任务 数据交换中主要包括数据抽取、数据转换、数据传输和数据卸载等任务。 ( 1 ) 数据抽取 数据抽取是从源数据库中获得源数据的过程,为数据转换任务提供数据基 础。它封装数据库的访闯方法,包括数据库名、数据库连接、数据库操作语句等, 调用相应的数据库访问接口获得数据。 ( 2 ) 数据转换 由于数据库间存在异构性,目标数据库通常并不能识别源数据的格式,因此 需要对源数据进行转换,获得能够为目标数据库接受的目标数据。 ( 3 ) 数据传输 数据交换的最终目的是要将数据交付到目标方入库供目标方的应用系统使 用。在网络环境下,数据传输就是通过使用网络协议将数据以文本或二进制数据 流的形式传递到目标方。 ( 4 ) 数据卸载 目标方从网络获得所需要的数据后,需要对数据进行解析并卸载入库。该过 程与数据抽取互为逆过程,同样涉及到对数据库的访问,以及调用相应的数据库 访问接口。 2 3 数据交换技术途径 数据库的异构性在多个层面上制约了数据的共享利用。目前解决这一问题的 一个重要途径是进行数据交换,数据交换通过将源方的数据在目标方进行冗余存 河海大学坝十研究生毕业论文 基于x m l 的异 勾数据库交换研究 储,达到数据共享的目的。数据交换的方法很多,总结起来主要有以下几种。 2 3 1 数据库交换工具 ( 1 ) 数据库复制工具 数据库复制足指在两个或多个数据库系统构成的分布式环境中,将对源数据 库对象产生变更的事务传递到目的数据库运行的过程。目前大型关系数据库,如 s q ls e r v e r 、o r a c l e ,都提供了自己的数据复制解决方案,广泛使用的是“发布 订阅”的复制模型 2 7 l ,如图2 1 所示。 匦函圃町 今园 今匝巫圃 图2 1 数据库复制 源数据方将需要交换的数据库对象以条目( a r t i c l e ) 的形式发布,根据对条 目的订阅情况将相应的事务分发传输到目标数据方。 数据库复制的数据交换方案可以直接利用d b m s 所提供的复制工具,不用 重新开发系统。但是首先要对复制双方的数据库进行同步,在同步的基础上才能 进行事务复制来维持复制双方的数据一致性。同步的过程中需要传输大量的数 据,效率较低。另外当复制双方的表结构差异较大时,复制的初始设置工作非常 烦琐。 ( 2 ) 数据库转换工具 数据库转换是利用数据库转换工具,通过设置源数据库与目标数据库之间的 对应关系和传输变量,同时连接两个数据库,对数据格式进行转换和存储,实现 异构数据库之间的直接交换。 1 ) 数据库厂商提供的工具 数据库厂商为了帮助数据库进行数据交换,在d b m s 中提供了一些转换工 具。但这些工具往往只提供自己的d b m s 访问异构数据库的功能,通用性差。 此类工具常见的包括: s q ls e r v e rd t s 工具 d t s 工具是m i c r o s o f t 公司开发的s q l s e r v e r 数据库系统的数据转换工具。 它允许用户在使用s q ls e r v e r 的多个计算机之问转移数据库对象,或在s q l s e r v e r 数据库与多种数据源之间导入或导出数据,支持的数据源包括o l ed b 和 o d b c 的数据库、e x c e l 和文本文件。 ( 萤o r a c l es q l * l o a d e r 工具 s q l * l o a d e r 是o r a c l e 数据库提供的一个将外部数据文档的数据装载到数据 库表的工具。它可以一个装载会话中将数据装载到多个表,也可以从多个文档中 读取数据,并有选择地装载数据1 2 8 1 。 9 河海大学硕十研究生 # 业论文基于x m l 的异构数据库交换研究 2 ) 应用软件厂商提供的工具 应用软件应用厂商也开发了一些数据转换工具,这些工具较数据库厂商提供 的转换工具更具的灵活性。较为优秀的有d e l p h i 的d a t a p u m p 和p o w e r b u i l d e r 的d a t a p i p e l i n e 。 d a t a p u m p 工具 d a t a p u m p 是一个带向导的异构数据库转换工具。首先分别选择在o d b c 中 配置好的数据源名作为源数据库别名( s o u r c e a l i a s ) 和目标数据库别名( d e s f i n e a l i a s ) ,然后选择要转换的数据表名,接着对表名、字段名、字段类型按照实际 转换的目标数据库与源数据库的差别进行必要的修改,即可实现异构数据库间的 数据交换。 ( 虿) d a t ap i p e l i n e d a t ap i p e l i n e 通过对不同数据库采用不同接口的形式支持多种关系数据库的 数据转换脚】。它允许在两个不同的d b m s 管理的数据库之间将一个或多个表中 的数据转换到一个新的或已经存在的数据表中,并且可以控制哪些字段可以包含 在目的数据库表中,以及使用字段生成目标表的索引。d a t a p i p e l i n e 可以在网络 环境下进行数据交换,但对于大量结构复杂的数据,运行容易出钭3 0 l 。 数据库转换工具快速实用、运行效率高。但由于商业和技术上的原因,这些 转换工具所适用的范围以及功能有限,并且需要很大程度的人工参与进行设置。 在转换过程中,数据库被对方直接访问,安全性存在较高风险。 2 3 2 数据库交换中间件 中间件技术主要是指c o r b a 、r m i 、d c o m 等分布式对象技术。使用中间 件技术进行数据交换可以保持各异构数据库的高度自治性,同时隔离了对数据库 的直接操作,具有良好的安全性。但中间件程序是特定的、专用的,难以复用, 可扩展性差,并且中间件技术比较复杂,配套使用的应用服务器也比较昂贵,应 用成本较高。 ( 1 ) 直接的双向交换中间件 该方法是为每两种异构数据库编写一个中间件,该中间件根据双方的数据库 语言的语法,在交换过程中负责事务级的翻译和数据格式的转换。整个交换体系 所需的转换中问件较多,当有n 种异构数据库参与交换时,需要c n 2 个中间件。 其交换结构如图2 2 所示。 河海大学硕l _ 研究牛毕业论文毕于x m l 的异构数据库交换研究 图2 2 直接的双向交换中间件 ( 2 ) 基于中心数据库的交换中间件 其基本思想是建立一个中心数据库,需要交换共享的数据从源数据库提取, 暂存入中心数据库,然后再灌入目标数据库。各异构数据库系统根据关系和字段 的定义在其与中心数据库之间构造一个转换中阿件,供两者之间数据交换使用。 其交换结构如图2 3 所示。 图2 3 基于中间数据库的交换中间件 当有r 1 种异构数据库参与交换时,需要n 个转换中间件。当有新的异构数据 库加入交换体系时,只需相应地开发它与中心数据库之间的转换中间件即可。因 此,该方法比直接的双向转换中间件方案所需的转换模块少,可扩展性强,但需 要两次数据转换,导致转换时间长、转换质量低等问题。 2 3 3 中间数据法 中间数据法1 3 l 】的数据交换中,源方将需要交换的数据转换成双方都能分析 和操作的中间格式的数据文档,然后传输交付给目标方,目标方负责将接收到的 中间格式的数据转换成自己的数据格式并存入数据库。这种方法实现了透明的数 据交换,无需了解对方的底层数据存储和实现细节,具有很强的可扩展性:交换 过程中无需直接操作对方数据库,交换双方各自具有较高自治性,安全性也可以 河海人学硕士 ! j f 究生毕业论文基十x m l 的异构数据库受换酬宄 得到保证;中间数据文档能够跨网络进行传输,同时基于文档进行数据交换的应 用成本较低,因此该方案较之上述的几种解决方案具有更高的通用性。其交换结 构如图2 4 所示。 图2 4 中间数据法交换 该方案的关键在于实现两个步骤的转换,即源数据到中间数据的转换和中间 数据到目标数据的转换。经过两步数据转换,可能会引起数据信息的损失,因此 中问数据格式的选择非常重要,它直接影响数据转换的难度和复杂性以及交换后 的数据质量。早期常用的是一种称为c s v ( 制表分割符) 格式的文档,但c s v 文档本身缺少表示数据结构的元数据,使得数据难于理解,并且丢失了数据之间 的关联信息。随着x m l 的产生及其相关技术的发展,x m l 成为目前数据交换 中普遍使用的中间数据格式。它提供一个公共的数据模型,可编辑、易解析,可 存储结构化或半结构化的数据【3 2 i 。实际上,x m l 正迅速成为网络上数据表示和 交换的标准【3 3 l 。然而,现有的基于x m l 的数据交换方案在实现方式上由于依赖 一个确定的x m l 模式而存在灵活性差的问题,这一点已经在1 3 节中详细做了 论述。 2 4x m l 数据交换技术 x m l 是w 3 c 制定的用于描述数据文档中数据的组织和结构安排的语言,具 有以下几个突出的特点: ( 1 ) 系统独立性,纯文本的x m l 文档能够被任何系统所接受和处理; ( 2 ) 强大的数据表现能力,能够以简单的形式表达复杂的数据; ( 3 ) 可扩展性强,用户可以根据自己的需要设计标签集合并创建x m l 文档, 对于存储和交换丰富多样的数据信息具有重要意义; ( 4 ) 自描述能力强,便于系统和人对数据的理解,同时实现了数据与表现形式 的分离。 x m l 不仅存储数据,而且定义数据的结构,并且这一数据及其结构不是基 于二进制的、只能由程序进行解释的代码,而是简单的、可以用任何编辑器读取 的文本 3 4 1 ,能够使数据以精确的、可供人和机器分析再加工的形式向外界提供 【3 5 j ,解决网络中跨系统的数据交换问题。另外,x m l 技术由包括x m l 、x m l s c h e m a 、x p a t h 以及x q u r e y 在内的一系列规范组成,这些技术规范为数据交换 中存储、处理和操作x m l 数据提供了支持。 2 4 1x m l 文档结构 河海人掌硕士研究生毕业论文基于x m l 的异构数据库交换研究 x m l 将数据包含在一系列描述了数据结构和语义且被称为标记( m a r k u p ) 的文本中,这些文本标记在x m l 文档中以标签( t a g ) 的形式出现t 3 6 1 。整个文 档从一个根元素开始,然后是一些嵌套的元素结构,元素中包含的可以是属性, 也可以是子元素【1 7 l ,或者数据文本。下面是一个x m l 文档的示例。 m i n g l i n o 1 x i k a n gs t r e e t n a n j i n g j i a n g s u 2 1 0 0 9 8 从示例中可以看出x m l 文档是树型结构。这一树型结构既可以表示结构化 数据( 如关系数据、面向对象数据等具有严格结构的数据) ,又可以表示半结构 化数据,而且可以支持多媒体数据1 ,具有很大的灵活性,使得x m l 适合作为 公共数据模型存储数据用于数据交换。 2 4 2x m l 编程接口 数据交换过程中需要对数据进行操作和处理以消除数据异构冲突。l 为 存取7 目v l 数据提供了编程接口,通过编程接口,可以从x i v i l 文档中提取需要 的数据进行处理或将数据写入y d v l 文档。x m l 的编程接口主要有两种:基于 树结构的d o m ( d o c u m e n to b j e c tm o d e l ) 和基于事件驱动的s a x ( s i m p l e a p if o r x m l ) 。 d o m 即文档对象模型,提供了一种可以运用于不同环境和应用中的标准程 序接口,可以用任何编程语言来实现。d o m 利用对象把x m l 文档模型化,这 些模型不仅描述了文档的结构,还定义了模型中对象的行为。利用d o m ,可以 动态地创建文档,遍历文档结构,添加、修改、删除文档内容,改变文档的显示 方式等。 s a x 基于事件来处理x m l 文档。使用s a x 的过程分两步:首先用户使用 s a x 的a p i 来定义与x m l 标签相关的事件,然后启用解析器来分析x m l 文档。 当解析器在遍历“l 文档的过程中遇到用户定义过的标记就产生事件,该事件 将驱动应用系统调用相应的程序去处理该特定的标记;否则,解析器继续解析。 s a x 为应用开发者提供了实时处理特定元素的方法。 尽管d o m 和s a x 都是x m l 的编程接口,但两者在不同的应用场合具有各 自的特点。d o m 操作时要先将整个x m l 文档装入内存,对系统资源占用很大 扣f 海大学硕士研究生毕业论文 基于x m l 的异构数据库交换研究 且执行效率较低,适合于结构化编辑x m l 文档,例如排序、记录移动和共享 x m l 文档,而s a x 恰恰相反,不需要将整个x m l 文档装入内存,执行效率高, 适合大文档,可完成内存不足或与文档结构无关的任务,如计算文档节点数、提 取特定节点内容等。 2 4 3x m l 模式语言 x m l 模式通过对x m l 文档的各个逻辑成分和物理成分进行语法规定,保 证x m l 数据文档严密的条理性、逻辑性和良好的结构性。因此使用x m l 作为 中间数据进行数据交换,在异构数据库问传输的可以是规范的符合既定规则的数 据文档,既便于交换双方对x m l 数据的理解,也便于系统高效准确地对x m l 数据的进行处理。另外,模式还可以帮助校验x m l 数据文档,确认其是否符合 预定的语法规则,即合法性。d t d ( d o c u m e n tt y p ed e f i n i t i o n ) p 7 1 和x m l s c h e m a 3 8 1 1 3 9 4 0 1 是目前常用的两种x m l 模式定义语言。 d t d 发展较早,相对比较成熟,所以在短期内还具有其存在的优势。x m l s c h e m a 是w 3 c 结合了原有的d t d 和数据库的建模语言而提出的,尽管其语法 结构远比d t d 复杂,但比d t d 更具有表现力,适合各个领域的应用。x m l s c h e m a 采取了类似于数据库的定义方式,数据结构、数据类型和完整性约束共 同组成了定义的主体,父子元素的关系类似于表与字段的关系。x m ls c h e m a 中 有丰富的数据类型定义,这是d t d 难以表达的。目前咀。s c h e m a 规范中已经 预定义了超过4 0 种的数据类型,数据类型的指定对于模式映射和高效处理都是 有利的。x m ls c h e m a 数据格式的定义为异构数据库之间的数据转换提供了便 利。同时,它对数据约束的定义保证了数据的有效性,这在数据交换中也具有重 要的意义。 2 4 4x m l 定位和查询 x m l 提供了在x m l 文档中定位和查询数据的技术,这些技术在数据交换 中对x m l 数据进行操作和处理具有重要作用。 ( 1 ) x p a t h x p a t h 4 1 l 是用于在x m l 文档中定位信息的语言。可以把x p a t h 看作文件路 径,通过文件路径的规则能够找到所需要的文件,同样,依据x p a t h 所制定的规 则,可以方便地找到x m l 文档树中的任何一个节点。x p a t h 操作于x m l 文档 树之上,使用紧凑的、非x m l 的语法来选择一个或一组节点,而不是基于标记 的语法,能够区别包括元素节点、属性节点、文本节点在内的不同类型的节点。 ( 2 ) x q u e r y x q u e r y 4 2 1 1 4 3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030动力电池回收利用商业模式创新与政策支持
- 离心泵质量检验及操作规程说明
- 建筑施工负面清单管理办法
- 高校创新创业项目策划书范文及模板
- 公路桥梁维护维修技术方案
- 设备安装项目进度与质量控制
- 学生假期作业完成情况统计报告
- 医疗质量评价信息化研究-洞察及研究
- 社交媒体对人际关系影响的实证研究-洞察及研究
- 水肥一体化技术的经济效益分析-洞察及研究
- 中医治未病健康宣教
- 食堂员工服务培训
- 提升心理抗压能力的技巧
- 中医医术确有专长人员(多年实践人员)医师资格考核申请表
- 低空飞行器设计
- 《穴位埋线疗法》课件
- 【大型集装箱船舶港口断缆事故预防应急处理及案例探析7500字(论文)】
- 脑梗塞并出血护理查房
- 三对三篮球赛记录表
- 中医基础之五行学说与五脏六腑
- 某水库调度规程完整
评论
0/150
提交评论