(计算机软件与理论专业论文)基于xml的异构数据源集成中间件的研究.pdf_第1页
(计算机软件与理论专业论文)基于xml的异构数据源集成中间件的研究.pdf_第2页
(计算机软件与理论专业论文)基于xml的异构数据源集成中间件的研究.pdf_第3页
(计算机软件与理论专业论文)基于xml的异构数据源集成中间件的研究.pdf_第4页
(计算机软件与理论专业论文)基于xml的异构数据源集成中间件的研究.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

(计算机软件与理论专业论文)基于xml的异构数据源集成中间件的研究.pdf.pdf 免费下载

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

文档简介

南开大学学位论文版救使用授权书 南开大学学位论文版权使用授权书 本人完全了解南开大学关于收集、保存、使用学位论文的规定,同意如下 各项内容:按照学校要求提交学位论文的印刷本和电子版本:学校有权保存学 位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存 论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务; 学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版;在 不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术 活动。 学位论文作者签名:蝗本 e 1 年_ ! ;冠;。日 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签学位论文作者签 涉舞 名:名: 解密时年月日 间: 各密级的最长保密年限及书写格式规定如下 内部5 年( 最长5 年,可少于5 年) 秘密1 0 年( 最长1 0 年,可少于1 0 年) 机密2 0 年( 最长2 0 年,可少于2 0 年) 南开大学学位论文原创性声明 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名:筵u 噜 伽弋年x 其s a 日 中文摘要 中文摘要 企业在发展过程中积累了大量数据,并在实施信息化的过程中,采用了不 同的数据管理系统,这些系统从简单的文件数据库到复杂的网络数据库,构成 了企业的异构数据源。为了解决异构数据源集成的问题,本文给出了基于x m l 的异构数据源集成方案及其主要框架。 该框架以当前主流的中间件集成方式为基础,将x m l 引入到了中间件系统 中来。一般常基于x m l 作为应用间交换数据的一种标准,也是万维网重要的信 息交换标准和表示的技术之一,同时,x m l 提供了一种可编辑、易解析的信息 交换模式,并且可以表示为任何类型的结构或半结构化信息。 在w i n d o w s 平台的a d o 、c o m 、x m l 等技术的支持下,本文完成了一个 较为实用、高效的异构数据源集成中间件系统。该中间件系统由词法分析器、 语法分析器、重写器、计划生成、优化器,计划执行等多个模块组成。此外, 文章对集成异构数据源中的查询优化过程进行了深入探讨,提出了下推条件谓 词、标准化连接谓词、计划空间的搜索和p a t h k e y 的使用等方法,从而有效的提 高查询速度。最后,本文给出了所设计开发的原型系统,验证了本文主要工作 的效果,包括中间件层是如何接收用户查询,以及对用户查询如何进行语法分 析,并在此基础上生成查询任务树、查询优化、查询分解以及进行数据组合形 成全局视图。 关键词:异构数据源;查询分解;中间件;x m l 4 英文摘要 a b s t r a c t w i t h t h e d e v e l o p m e n t o f ac o m p a n y , l o t s o f d a t a i sa c c u m u l a t e d i n t h e p r o c e s s o f u s i n gm i s w h o s ed a t a b a s e sm a yb ed i f f e r e n tf r o me a c ho t h e r t h ed a t a b a s e sm a y v a r yf r o ms i m p l ef i l ed a t a b a s e st oc o m p l e xn e t w o r kd a t a b a s e s t os o l v et h ep r o b l e m o fi n t e g r a t i n gt h ed i f f e r e n td a t as o u r c e s ,t h i sp a p e rg i v eas o l u t i o no ft h ei n t e g r a t i o n f o rd i f f e r e n td a t as o u r c e sb a s e do nx m l t h es o l u t i o no ft h ei n t e g r a t i o nf o rd i f f e r e n td a t as o u r c e sa n di t sm a i nf r a m e w o r k a r es t a t e di nt h i sp a p e r x m lt e c hi si n t r o d u c e db e c a u s ex m li so f t e nu s e da st h e s t a n d a r do f e x c h a n g i n gd a t ab e t w e e nd i f f e r e n ta p p l i c a t i o n sa n das h o ww a yo f w w w b e s i d e s x m lc a l ls t a n df o rm e t a - d a t a u s i n gt h ea d v a n c e dt e c h n o l o g yo fa d o ,c o ma n dx m lo nw i n d o w sp l a t f o r m , w ed e v e l o p e dau s e f u la n de f f e c t i v em e d i a t o rs y s t e m ,w h i c hi sb a s e do np o p u l a r m e d i a t o rf r a m e w o r ka n dt a k e s t h em e d i a t o rs y s t e mi nt h i sp a p e rc o m p o s e ss e v e r a l p a r t si n c l u d i n gw o r dp a r s e r , g r a m m a rp a r s e r , r e w r i t e r , p l a n n e r , o p t i m i z e ra n d e x e c u t e r b e s i d e s ,t h i sp a p e ra l s od e e p l yd i s c u s s i o nh o wt oi m p r o v et h es p e e do fq u e r y , i n c l u d i n gp u s h i n gq u a l i f i c a t i o n ,t r a n s f o r m i n gq u e r i e st o s t a n d a r df o r m ,s e a r c h i n g p l a n n i n gs p a c ea n du s i n gp a t h k e y b ys o m ee x a m p l e s ,t h ep a p e rd e s c r i b e sh o wt h e m e d i a t o rr e c e i v e st h eq u e r yf r o mu s e ra n dh o wt om a k eag r a m m a ra n a l y s i st ot h e q u e r y , g e n e r a t eaq u e r yt a s kt r e e ,a n dt h e n ,h o wt oo p t i m i z et h eq u e r yp l a nt r e e , d e c o m p o s et h eq u e r yt r e ei n t os o n q u e r y t r e e ,c o m b i n et h er e t u r n e dd a t at og l o b a l v i e wa tl a s t i nt h ep a r to fg e n e r a t i n gg r a m m a ra n a l y s i sa n dq u e r yt r e e ,t h eq u e r y d e c o m p o s i n gi st h ev i t a lq u e s t i o nw es h o u l ds o l v e k e yw o r d :q u e r yd e c o m p o s i n g ;m e d i a t o r ;x m l ;d i f f e r e n t d a t as o u r c e s 5 第一章概述 第一章概述 第一节背景 企业在发展过程中积累了大量数据,并为存储和管理这些数据不断投资。 然而,由于实施数据管理系统的阶段性,以及计算机存储技术的不断发展,和人 为因素的影响,以至于即使在一个单独企业,采用的数据管理系统也大不相同, 从简单的文件数据库到复杂的网络数据库,它们构成了企业的异构数据源。尽 管这些数据管理系统能够满足数据存储和管理要求,但是在许多情况下,为完 成一项工作,企业应用可能需要访问分布在网络不同位置上的多个数据管理系 统中的数据【”。 例如,某大型集团的信息系统建设中,生产、库存采用北京和利时系统工 程公司的h s 2 0 0 0 e r p 软件;销售部门采用英克软件;财务采用金碟财务软件。 如果没有一个统一的数据集成系统,那么这三套系统就是完全割裂的。如果想 同时获得这三套系统的信息,则必须先访问北京和利时公司的h s 2 0 0 0 软件,再 访问英克软件,最后再访问金碟的财务软件。这样的处理显示是低效的,复杂 的,易于出错的。 在完成工程项目的过程中,我们发现在企业中的多系统的异构问题是一个 较为普通的难以解决的问题,在今后几年将会是一个难点问题和热点问题。与 此同时,我们也发现,企业数据集成也从企业内部集成走向了企业间集成。现 在的企业比以往任何时候都需要将内部数据进行发布和交换,这必然导致越来 越多的企业应用需要访问各种异构数据源,并且这些数据源可能分布在网络上 任何地方。为了满足这种需求,必须有一种系统能够支持异构数据源的数据集 成”。 所以,无论是从企业自身发展角度还是从企业间数据集成的角度来看,越 来越多的企业应用需要一种异构数据集成系统作为访问异构数据源的支撑【l 】,建 立企业异构数据的集成系统势在必行。 第二节国内外发展现状 9 第一章概述 1 2 1 当前数据集成方案 ( 1 ) 联邦数据库系统 集成几个数据库的最简单的结构可能是实现需要交互的所有数据库对之间 的一对一连接。这些连接允许一个数据库系统d b l 以另一个数据库系统d b 2 能 理解的术语来查询d 2 。这种结构的问题是,如果n 个数据库中的每一个都需要 与其他n 1 个数据库进行交互,则我们必须写n ( n - 1 ) 条代码以支持系统之间的查 询【2 1 。 图1 1 联邦数据库模型 ( 2 ) 数据仓库 在数据仓库集成结构中,来自几个数据源的数据被抽取出来,合成一个全局 模式。然后,数据存储在数据仓库中,这在用户看来与普通数据库无异1 2 。组织 方式如图1 _ 2 所示。 图1 2 数据仓库 1 0 第一章概述 一旦数据存储在数据仓库中,用户就可以提出查询,正如他们向任何数据 库提出查询一样。另一方面,通常不允许用户对数据仓库进行更新,因为这些 更新不能反映在基本数据源中,并且可以导致数据仓库与数据源不一致。此外, 数据仓库中的内容需要周期性的更新,以保持和数据源里的数据一致。 ( 3 ) m e d i a t i o n 。m e d i a t o r 是一种软件组件,它支持虚拟数据库,用户可以 查询这个虚拟数据库,就像它已物化一样。m e d i a t o r 不存储任何自己的数据,而 是将用户的查询翻译成一个或多个对数据源的查询。然后,m e d i a t o r 将那些数据 源对用户查询的回答进行综合处理,将结果返回给用户【2 】。其基本结构如图1 3 所示。 陶1 4m e d i a t o r 模型 m e d i a t o r 负责把查询分发到各个包装器,包装器然后把查询转换成本地数据 源可以理解的模式。m e d i a t o r 本身不对查询进行任何解释。m e d i a t o r 对包装器返 回的结果进行合成。 按照这个理论来讲的话,对于需要集成的数据源,为每个数据源都要设计 一个包装器,或者说为一类数据源( 关系数据库、x m l 、w e b 数据) 设计一个 可动态配置的包装器。 这种方式存在的问题:既然m e d i a t o r 不对查询进行解释,那么这种对数据 第一章概述 源的集成就无法考虑到数据源之间数据的特殊的联系。因为每个包装器只了解 自己数据源的内容,m e d i a t o r 只负责把各个包装器返回来的数据进行的组合。 1 2 2 国内外研究现状 异构数据库集成并不是一个新的研究领域,随着x m l 技术的采用,该领域 又重新成为了研究的热点i l j 。 从采用基于x m l 技术的中间件来集成异构数据库或异构信息的角度来看, 目前,相关研究主要集中在国外】。 美国政府在1 9 9 8 年通过o p a l 计划开始支持y a t ( 基于中间件的信息集成系 统1 的研究,该系统m e d i a t o r w r a p p e r 中间件框架实现了关系模式和s g m l 到 o d m g 的转化,在2 0 0 0 年,该系统的研究再次受到o p a l 计划和a q u a r e l l e 资助,并以研究基于x m l 中间件信息集成系统( y a t 系统) 为主,其中 c h r i s t o p h i d e sv ,c l u e ts ,s i m e o nj 等人主要研究了以x m l 集成视图对异 构数据的包装和查询,并提出了相应的代数体系结构i l 】。 w i s c o n s i n 大学和m ma l m a d e nr e s e a r c hc e n t e r 共同研究和实现了 x p e r a n t o 中间件系统是一个比较成功的系统。该系统的主要目标是把关系数 据库的数据以x m l 的形式展示给用户。为了实现这个目标,x p e r a n t o 系统 实际是一个中间件系统,在这个系统上,用户可以定义新的x m l 视图,并把这 个x m l 视图与关系数据库中的数据映射起来。x p e r a n t o 系统可以把x m l 查询语句转化成s q l ,并把s q l 发送到底层的数据库当中去,然后把返回的结 果变为x l v i l 形式展现给用户1 3 。 x p e r a n l d 系统的主要特点是建立在“纯x m l ”基础上的,用户不需要 知道s q l 语句,对用户来说好像所有的数据存在x m l 中一样。正因为系统是 基于x m l 的,所以系统既可以集成关系数据库,也可以集成元数据。x p e r a n t o 的系统架构如图1 5 所示,其每部分的作用如下: x m l - q lp a r s e r :接收x m l q l 查询,产生x q g m ( x m lq u e r yg r a p h m o d e l ) - - 一种代表x v i l 查询的中间语言模型。 q u e r yr e w r i t e :把x q g m 代表的查询分解为视图引用,进行x m l 视图 合并,并产生语义等价的x q g m 。如果用户查询既有关系数据也有元 数据( m e t a - d a t a ) ,那么还要考虑到数据的分类。 1 2 第一章概述 s q lt r a n s l a t i o n :把x q g m 转化为形式。 x m lv i e ws e r v i c e s :作为存储功能,x m l - q l 视图定义的结口。当视图 定义时,他们被存在特定的表中。 x m ls c h e m ag e n e r a t o r :获取数据库类型信息,并为x m l 视图和查询结 果产生s c h e m a 信息。 x m l t a g g e r :把s q l 查询结果转化为结构化的x m l 文档【3 】。 图1 5x p e r a n t o 系统架构图 就关系模式到x m l 模式转化( 模式转换是基于x m l 的异构数据库集成中 间件的核心) 面来看,已存在转化工具和大量相关算法的研究: 相关工具:一些商业产品实现了关系模式到x m l 文档的转化,例如 o d b c 2 x m l 、o r a c l e ss q l 、x m ls p y 、s i l k r o u t e 工具。目前,除 o d b c 2 x m l ,x m ls p y 、l k r o u t e 外,大部分的工具都是为相关的数据库产品服 务,不支持多种异构数据库系统更不支持其到x m l 的集成,而o r a c l e ss q l 、 x m ls p y 、s i l k r o u t e 虽然支持多种数据库系统,但仍不支持异构数据库的集成。 同时,这些工具大部分( 除x m l s p y 外) 都是输出x m l d t d 模式,不支持x m l s c h e m a 模式。 相关算法的研究也主要集中在国外。 如d o n g w o nl e e ( u c l a ,美国,加利福尼亚大学洛杉矶分校) 在美国国防部高 第一章概述 级研究项目( d a ) a ) 和国家科学基金( n s f ) 的双重支持项目x p r e s sx m l 中,提出基于x m l 的关系数据库发布和基于关系数据库的x m l 存贮和检索, 提出并初步建立基于约束的模式映射。j a y a v e ls h a n m u g a s u n d a r a m ( c o m e l l ,美国, 康奈尔大学) ,提出基于内嵌的关系数据发布技术。w e n f e if a l l ( 贝尔实验室) 则在 建立x m l 约束方面作了大量研究【1j 。 相比之下,国内尚未全面系统的开展x m l 与关系数据库集成技术的研究。 复旦大学对半结构化数据模型的增量维护、查询语言及其s q l 转换、基于关系 数据库的x m l 文件系统进行了初步研究。华中科技大学在半结构化、层次数据 的模式发现等方面展开了一定的研列”。 1 3 1 目前系统的不足 第三节研究的内容 虽然目前已经有不少成形的系统,但是这些系统在使用中都存在着不尽人 意的地方,而且也不具备一定的通用性。以i b m 研究院所开发的x p e r a n t o 中间件为例,它是将x m l 查询语言作为输入。以x m l 查询语言作为输入,其 优点是可以对虚拟的x m l 视图进行查询,并可以集成结构化数据和元数据。但 其缺点也是存在的: 首先,x m l 查询语言本身还没有完全成熟,各公司的标准不够统一,而且 原来的使用s q l 语言的用户要重新学习x m l 查询语言。 其次,对于x m l 格式的数据,使用x m l 查询语言是方便的,但对于现在 被广泛使用的关系数据库,x m l 查询语言不如s q l 成熟、方便、强大。 最后,使用x m l 查询语句进行查询,传统数据库查询的优化算法将不能有 效的发挥作用。 1 3 2 本文研究的内容 在本文所实现的系统,采用s q l 语言作为输入,并吸收了传统关系数据库 中的有效的优化算法,以x m l 作为中间传送格式和最终输出结果。其主要优势 是: 1 4 第章概述 ( 1 1 以s q l 语言为输入,会使用用户感到十分方便。同时也可以利用s q l 语言在操作关系数据库时的强大功能。 ( 2 ) 系统借鉴了许多传统数据库中的优化算法,并根据异构数据集成的特点, 进行了修改或补充。 ( 3 ) 以x m l 为结果,则可以有效的将结果与其它应用程序进行数据交换。 在中间件研究的过程当中,我们要解决的主要问题包括以下几个方面 ( 1 ) 异构性 异构性是企业异构数据集成必须面临的首要问题,其主要表现在两方面。 异构数据源是指数据的存储方式是不同的。关系数据库、文本文件就可以 认为是异构的。s q ls e r v e r 和o r o c a l 也可以认为异构的,因为它们之间很多数据 类型是不同的,相同的数据类型的存取方式也可能是不同的。同样是s q l s e r v e r 数据源,表示了相同的数据,如果表的结构有所不同,也是异构数据源。这种 “异构”的概念熏在表达存储形式上的不同。 强调存储地点的异构。不同主机之间,不同的操作系统之间,不同网络之 间,它们的数据之间的差别,而这种异构数据源的集成重在通信。对于这种异 构,已经有两种非常著名的解决方案:d c o m 和c o r b a 。 在本文中,主要解决的问题是第方面的问题。也就是数据存储方式不同 的异构。 ( 2 ) 性能 网络时代的应用对传统数据集成方法提出了挑战,提出了更高的标准。一 般说来,当前负责集成的应用必须满足:轻量快速部署,即系统可以快速适应 数据源改变和低投入的特性。由于异构数据源的集成过程中,可能需要在网络 上进行传输,这就需要系统尽可能减少数据的传输量,提高传输的速度。另外, 在对不同数据源的集成过程中,需要采用先进的快速的算法,提高集成速度。 f 3 1 语义冲突 信息资源之间存在着语义上的区别。这些语义上的不同可能引起各种矛盾, 从简单的名字语义冲突( 不同的名字代表相同的概念) ,到复杂的结构语义冲突 ( 不同的模型表达同样的信息) 。语义冲突会带来数据集成结果的冗余,干扰数 据处理、发布和交换。所以如何尽量减少语义冲突也是数据集成的一个研究热 点。 ( 4 ) 基于i n t e m e t 的集成。 第一章概述 随着网络技术的发展,所集成的数据源越来越分散,集成中间件可能不仅 要集成一台机器上的数据源,还要集成局域网甚至广域网上的数据源。 上面列举了在构建企业异构数据源集成系统时所必须面对的几个主要问 题,其中,异构性、性能、语义冲突问题为异构数据集成中的共性问题。值得 指出的是,尽管对问题进行了分类,但事实上,这些问题是相互联系、相互制 约的,不应该简单的孤立对待。 1 3 3x m l 技术的引入 当我们选用了中间件作为企业异构数据源集成的解决方案后,就要为中间 件系统选择一种全局的数据模式。负责集成的中间件系统必须提供一种全局数 据模式来统一异构的源数据模式。过去,异构数据源的集成系统,例如多数据 库系统( 如c i m s 中的多数据库系统) 或联合数据库系统通常采用关系或对象的 数据模式作为全局模式。然而,它们并不能满足网络时代的i n t r a i n t e m e t 应用所 提出的高标准。一般来说,异构数据集成的全局模式必须满足:( 1 ) 能够描述 各种数据格式,无论其是结构化的还是半结构化的,无论其是否支持所有的查 询语言还是简单的文本查询。( 2 ) 易于发布和进行数据交换,集成后的数据可 以方便的以多种格式发布和便于应用交换数据l lj 。 随着x m l 及其相关技术和应用的发展,x m l 不仅成为了应用间交换数据 的一种标准,也是万维网重要的信息交换标准和表示的技术之一。事实上,现 在业界已存在几个工业标准( x m ld t d ) 的草案。x m l 的产生给不同的信息格式 的统一带来了深刻的影响。x m l 第一次提供了一种信息交换模式,这种格式是 可编辑,易解析,并且可以表示为任何类型的结构或半结构化信息。 目前,x m l 已有多方支持,并且x m l 的强适应性,使其可以实现对资源 的快速包装和集成发布,所以,通过引入了x m l 技术,将x m l 技术与全局数 据模式相结合可以使异构数据源集成中间件系统能更好地适应于开放、发展环 境中的数据集成。许多著名的异构数据源集成研究都引入了x m l 相关技术,例 如i b m 的t s i m m i s 项目,g a r l i c 项目以及s i m s 和m o m i s 项目等项目。 第四节论文的组织结构 第一章概述 本文探讨了实现异构数据源集成中间件的设计方法和实现技术路线,给出 了原型系统的设计方案。文章的整体结构如下: 第一章主要是讨论异构数据源集成的必要性,及其研究的主要内容,同时 也列举了国内国外的研究进展和相应的成果。 第二章介绍了本文所实现的异构数据源中间件原型系统的整个架构和中间 件系统的整个工作流程。 第三章主要讨论优化算法在中间件原型系统当中的应用。为了使中间件原 型系统比得实用,系统中采用了很多优化算法,这些算法中既有从数据库系统 中借鉴来的,也有专门适用于异构数据源系统的优化算法。 第四章描述了在原型系统实现的过程,原型系统每部分功能实现中所采用 的算法、流程,以及在解决具体问题时所采用的方案和核心代码。最后谈到了 系统所达到的目标。 第五章是对全文的总结,概括了本文中所实现系统的优势和特点,同时也 指出了其不足和未来能进一步完善之处。 第五节本章小结 企业异构数据源集成并不是一个新的课题,但在企业生存环境不断改变的 前提下,这个课题也是不断发展的。如何面向未来,采用合理的技术实现网络 时代企业数据集成将是一个持久的讨论。作为企业应用和企业服务集成实现的 一个基础,企业异构数据源集成将对企业信息化进程带来深远的影响 4 1 。 第二章体系结构的设计 第二章体系结构的设计 本章将从逻辑架构、视图层次、内部实现、数据存储、网络集成等多个角 度来阐述中间件系统的具体实现方案。 第一节主要架构 目前已有的基于x m l 的异构数据源集成中间件方案,其一般架构都是基于 图2 1 设计的。 在图2 1 中,数据源层表示现有的异构的数据源以及在这些数据源上的应 用。x m l 中间件层是最重要也是承担主要工作的一层。中间件先在每个数据源 上加上一个w r a p p e r ,使各个异构数据源中的数据经过w r a p p e r 封装后具有统一 的数据格式。这种经过w r a p p e r 封装后的数据称之为输出模式。产生输出模式的 数据后,中间件系统会分解、处理用户的查询请求,把不同数据源的输出模式 进行合并,形成一个统一的数据视图,最后以全局模式展示给用户。全局概念 模式是在一个或几个输出模式的基础上形成的新的“视图”。全局概念模式本身 并不存储数据,而是利用数据字典记录了是由哪几个输出模式的所组成。用户 可以直接访问全局概念模式而不需要关心概念模式的具体构成方式。全局概念 模式有点类似于数据库概念当中的“视图”。全局视图的建立就是针对所有数据 源数据模式的抽取过程,它将各异构数据源中的不同的数据表示形式统一成一 致的数据视图。其中,关键要解决的问题是对各个数据源的集成存取,或者说 将用户对集成视图的操纵转换成对底层数据源的操纵,包括两方面工作:一个 是将用户对集成模式的访问转换成数据源可以执行的请求;另一方面是将各数 据源返回的数据转换成集成模式的表示形式,反之亦然。 第二章体系结构的设计 图2 ,1 集成中间件基本架构 第二节系统目标 针对上述体系结构,本文中间件原型系统所实现的主要功能目标包括: ( 1 ) 实现对特定s q l 语言( 系统定义的一种类s q l 语言) 的支持。 s q l 语言( s t r u c t u r e dq u e r yl a n g u a g e ) 是一种介于关系代数与关系演算之 间的语言,是一种用来与关系数据库管理系统通信的标准计算机语言。其功能 包括数据查询、数据操纵、数据定义和数据控制4 个方面,是一个通用的、功 能极强的关系数据库语言。目前已成为关系数据库的标准语言。中间件系统支 持s q l 语言,可以使用户不需要学习过多的新知识,易于掌握,提高了中间件 的易用性。 ( 2 ) 将最终结果转化为x m l 的形式。 随着x m l 及其相关技术和应用的发展,x m l 不仅成为了应用间交换数据 第二章体系结构的设计 的一种标准,也是万维网重要的信息交换标准和表示的技术之一。事实上,现 在业界已存在几个工业标准( x m ld t d ) 的草案。x m l 的产生给不同的信息格式 的统一带来了深刻的影响。x m l 第一次提供了一种信息交换模式,这种格式是 可编辑,易解析,并且可以表示为任何类型的结构或半结构化信息。 ( 3 ) 将中间件包装为c o m 组件。 c o m 是软件组件互相通讯的一种方式。它是一种二进制和网络标准,允许任 意两个组件互相通讯,而不管它们是在什么计算机上运行( 只要计算机是相连 的) ,不管各计算机运行的是什么样的操作系统( 只要该操作系统支持c o m ) , 也不管该组件是用什么语言编写的。这是由于c o m 的这种特性,将中间件以c o m 的形式实现以后,其它任何语言或者编程工具只要方便的调用c o m 接口,就可 以实现集成的功能,从而实现了集成的跨平台,跨语言。 ( 4 ) 引入优化算法,实现高效集成。 提高集成速度,减少网络传输,是本文原型系统的一个重要任务。只要提 高集成的速度,才能够真正的使集成中间件变成一个实用的中间件系统。在优 化的过程中,系统主要采用了下推条件以减少数据传输,采用先进的关系操作 算法提高连接速度,并充分利用有序字段提高集成速度。在第三章中,将详细 解释查询优化的方法。 ( 5 ) 实现在i n t e m e t 上的集成。 随着网络的不断发展,数据源不仅仅存在于一台单机上,更有可能分布在 局域网甚至广域网中,实现在i n t e m e t 的数据源集成是很有意义的。 2 2 1 系统架构 根据以上给出的系统功能目标,本文实现的中间件的主要架构如图2 2 所 示。图2 2 中描述了整个中间件系统的工作流程,其主要由以下几个部分组成。 ( 1 ) 用户输入请求。用户以系统规定的s q l 语句,作为输入请求。 ( 2 ) 接收查询语句,进行词法语法分析,生成查询树。 ( 3 ) 根据查询树,生成相应的任务树。 ( 4 ) 将任务树根据数据源所在的位置进行分解,从数据源中取出数据。如果 数据源非本地数据源,则将请求发送给网络模块,传给远程数据源。 ( 5 ) 将各数据源返回的结果进行组合,最终以x m l 的形式输出。 第二章体系结构的设计 2 2 2 视图层次 图2 2 中间件系统桨构 设计的原型中间件系统中,一共有四种模式:全局外模式、全局概念模式、 输出模式和局部模式。局部模式是指各异构数据源存储数据的原始格式。局部 模式中,各类数据源的数据格式是不同的,异构的。输出模式在本系统中以a d o 接口的形式表现出来。a d o 是一种微软开发的可以访问多种数据源的编程接口, 通过a d o 访问可以将a d o 可以访问的数据源( 主要是关系型数据库) 中的数 据变成统一的r e c o r d s e t 类型的。在本中间件系统中,之所以使用了a d o 编程 接口,是为了让a d o 起到一个w r a p p e r 的作用,使各个数据源中的数据通过 w r a p p e r ( a d o ) 变成同构的数据。通过引入a d o ,我们可以简化w r a p p e r 编程的 工作,同时a d o 也可以支持相当多的异构数据源,比如a c c e s s ,s q ls e r v e r 等几 第二章体系结构的设计 乎所有的关系型数据库,以及e x c e l 电子表格。当然,a d o 不是万能的,它 的功能也是有限制的,比如说它缺少对半结构化和非结构化数据的支持,所以 对半结构化和非结化的数据,就需要加入包装器了。本论文所完成的系统因人 力和时间所限,只考虑到了a d o 所支持的数据源,而尚未考虑到a d o 不支持 的数据源。全局概念模式是将各个异构数据源中的数据组合在一起的一种模式。 这种模式已经是同构的,并且是将各个数据源的数据组合在一起的,但是输出 模式对于全局概念模式来讲不是透明的,换句话说,对于用户来说,全局概念 模式是很多同构数据源的组合。全局外模式是建立在全局概念模式之上的一种 模式,输出模式对于全局外模式来说,是透明的。对于用户来讲,全局外模式 是一个独立的数据源,而感觉不到任何数据的异构性和多数据源性。 2 2 3 功能模块 图2 3 视图层次 系统的功能模块图如图2 4 所示。功能模块的主要部分包括p a r s e d 查询分解 器) ,p l a n n e r ( 计划生成器) 和e x e c u t e r ( 执行器) 。 如图2 4 所示给出了原型系统的功能模块结构图。原型中间件系统的主要功能 模块包括p a r s e r ( 查询分解器) ,p l a n n e r ( 计划生成器) 和e x e c u t e r ( 执行器) 。 p a r s e r 的主要任务是将用户的查询语句进行分解,生成查询树; 第二章体系结构的设计 p l a n n e r 功能模块的作用是根据上一步所生成的各子查询树,产生相应 的执行计划,并对计划进行一定程度的优化。 e x e c u t e r 功能模块的作用是执行上一步所生成的计划。 此外,在p l a n n e r 和e x e c u t e r 运行时过程中,将参考数据源配置文件,以找 到数据源的物理位置。 茁结 叠 i | _ k 懈c, 一。 洲_ 雕- 、 x 辫髓鳓 r _ 一i 。接口4 眄。撞瞄 。 l p t f p 抽d i l 铲 :“”“”i 一 0 目 潮终蠼鳙: 图2 4 功能模块 第三节p o s t g r e s q l 的研究 2 3 1 研究p o s t g r e s q l 的目的 虽然该系统完成的是一个异构数据源集成的中间件系统,但在该系统中的 很多理论和实现都与实际的数据库系统是比较相似的。比如说在查询分解,计 划树的生成,关系代数的实现等方面,都与数据库系统是一致的。因此,在原 型系统中参考了当前l i n u x 系统下功能强大的开源数据库p o s t g r e s q l 系统实现的 第二章体系结构的设计 源码,采用了数据库系统中的一些实现方案,从而大大提高了本文原型异构数 据源中间件系统的执行效率。 2 3 2p o s t g r e s q l 的功能与结构 p o s t g r e s q l 是一种非常复杂的对象关系型数据库管理系统( o r d b m s ) , 也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统。有些特性 甚至连商业数据库都不具割s 1 。 这个起源于伯克利( b s d ) 的数据库研究计划目前己经衍生成一项国际开发 项目,并且有非常广泛的用户【5 】。 从技术角度来讲,p o s t g r e s q l 采用的是比较经典的c s ( c l i e n t s e r v e r ) 结 构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析 客户端来的查询请求,生成计划树,进行数据检索并最终把结果格式化输出后 返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的 客户端c 接口。而不同的客户端接口都是源自这c 接口,比如o d b c ,j d b c , p y t h o n ,p e r l ,t e l ,c c + + ,e s q l 等,同时也要指出的是,p o s t g r e s q l 对接 口的支持也是非常丰富的,支持几乎所有类型的数据库客户端接口。这也是 p o s t g r e s q l 的一大优点【5 j 。p o s t g r e s q l 的基本工作流程图如图2 5 所示。 p o s t g r e s q l 数据库系统的实现当中,p a r s e r , r e w r i t e r , p l a n ,e x e c u t o r 等部分的工作 原理对于数据集成中间件的研究有着重要的参考价值。 2 4 第二章体系结构的设计 i 瓦矗j g l i e a c p 函o 乳一 f l 缈i f e5w ) r ki 。l ( 、v i c 母 图2 5 p o s t g r e s q l 工作流程图 第四节中间件工作流程 下面详细介绍一下异构数据源集成中间件系统从接收用户查询命令到最后 返回x m l 的整个过程。 2 4 1 用户输入查询请求 用户的查询请求是以系统规定的类s q l 语句为输入形式的。之所以采用类 s o l 语句的形式,主要是由于s q l 语言易学易用,功能强大,且已经普及。本系 统所支持的类s q l 语言,见附录一。 2 4 2 语法树的生成 将类s o l 语句演变为相应语法树的过程中,使用了l e x 和y a c c 工具。 l e x 是一个词法分析生成器,可以识别出满足原型系统给出的定义文件 第二章体系结构的设计 中的规则的“单词”。 y a c c 是一个语法分析生成器,负责对l e x 生成的“单词”进行语法分 析。通过事先定义好的语法规则,最终可以生成一棵语法树。 在l e x 和y a c c 帮助下,通过定义文件( 见附录一) ,可以生成一颗语法树。 在语法树中,用户输入的s q l 语句根据语法定义文件以树形结构的形式显示出 来。 e x p r 夕8 ,: :, s d e p t c s s s n os c s n o 图2 6 语法树 例如,如果用户输入的s q l 语句如下: s e l e c ts s n o ,s s n a m e ,s c s c o r ef r o ms t u d e n ts ,s t u d e n t c o u r s es c w h e r es s i l o = s c s i l oa n ds d e p t = c s : 根据上述语法定义文件,系统将最终生成如图2 6 所示的语法树。 2 4 3 查询计划树的生成 定义l查询计划树( p l a n t r e e ) 是一棵树b = ( v ,e ) ,其中,v 是节点集,每 个非叶节点是类操作符,叶节点为类。 在定义1 中,类是符合输出模式的数据,如果是关系数据库的话,可以称 之为“关系”,但一般被集成的数据不一定都是关系数据库,这里将输出模式中 的数据称之为类。一棵查询计划树的结构应该类似于图2 7 ( b ) 所示。 其中o p 是指类操作符,c 是指类。类操作符主要包括:选择操作s l 、投影 操作p j 、并u n 、差d f 、笛卡尔积c p 、联接j n 、分组操作g b 。其中分组操作 o n 售:;蕊 ;弋! i l 蹦 畔 c 鼬嘶。i 第二章体系结构的设计 主要是支持聚合函数。 下面将介绍如何将y a c c 生成的语法树变为查询计划树。对于像s e l e c t 的类 s q l 语句,主要变换规则如下: ( 1 ) 将语法树中的f r o m1 i s t 的儿子结点,也就是所有要操作的类,进行笛 卡尔积的操作,把结果做为第( 2 ) 步的参数。 ( 2 ) 如果有聚合操作,那么把第一步的传来的结果进行聚合操作,然后把 运算完的结果当做参数传给第( 3 ) 步 ( 3 ) 把上面传来的参数进行选择( s l ) 操作,选择操作的参数为语法树中 c o n d f f i o n 部分。在选择操作之前,先进行优化,把c o n d i t i o n 尽量下推,以减少 取出的数据,从而减少网络传输量,提高集成速度。选择操作完成后,把结果 传给第四步。 ( 4 ) 进行投影操作,其参数为s e l l i s t 部分【4 j 。 下面以图2 6 生成的语法树为例来说明对应这棵语法树的查询计划树是如 何生成的。 将图2 6 对应的语法树转换成相应措施的查询计划树,为如图2 7 ( a ) 所示。 i s e l e c t ( s s h o = s c s n oa n ds d e p t = - c s 、 i ss c f 曲 2 4 4 查询计划树的重写 图2 ,7 查询计划树 当把用户的查询请求转变成一棵查询计划树后,接下来的第二步任务就是 要进行查询计划树的整理和重写工作。根据用户请求而直接生成的查询计划树, 其叶结点有可能是全局概念模式,而不符合数据库的输出模式要求,也就是说 查询计划树的叶结点还不能被单个数据库的包装器所能解释,因此需要整理初 始查询计划树并熏新生成新的查询计划树。因此,需要将凡是叶结点是全局概 。 r 夕。 r: 第二章体系结构的设计 念模式的都转变为输出模式。为进行该步工作,采取的主要方法是通过数据字 典的记录,把拥有全局概念模式的叶结点都各自转变成一棵子查询计划树。具 体的变化形式以图2 8 所示为例。 2 4 5 查询计划树的优化 图2 8 查询重写 整理和重写查询树的工作完成以后,接下来进行的工作就是优化查询计划 树。在一个单数据库系统中,查询优化的目的是为了提高数据库的存取速度, 而提高存取速度的关键是考虑数据在存储系统中的排列,取出数据时数据量的 大小等因素。 在异构数据源集成实现中,数据存储的功能是由各个异构的数据库管理系 统自己分别来完成的。那么优化查询计划树的主要目标在于充分利用各个数据 库自己的优化功能,把能在数据库管理系统完成的查询不转嫁到集成系统中来 完成。虽然查询优化的目的与传统单个数据库系统中的优化目的不相同,但是 利用各数据源自带的优化方式,可以很容易实现异构数据库查询任务树的优化 目的。本文对实现查询计划树的优化的主要方法总结包括: ( 1 ) 把对查询任务树中的一元操作尽量下移到叶节点。 ( 2

温馨提示

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

评论

0/150

提交评论