(系统工程专业论文)基于XML的异构数据源查询处理研究.pdf_第1页
(系统工程专业论文)基于XML的异构数据源查询处理研究.pdf_第2页
(系统工程专业论文)基于XML的异构数据源查询处理研究.pdf_第3页
(系统工程专业论文)基于XML的异构数据源查询处理研究.pdf_第4页
(系统工程专业论文)基于XML的异构数据源查询处理研究.pdf_第5页
已阅读5页,还剩78页未读 继续免费阅读

(系统工程专业论文)基于XML的异构数据源查询处理研究.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 摘要 随着网络应用和企业决策支持系统的需求持续增长,越来越多的应用需要访问各 种异构数据源,数据集成成为时下研究的一个热点。而关于异构数据源的查询处理实 现是数据集成的难点和重点。目前国内外学者已经提出一些基于x m l 技术的查询语 言如x m l - - q l 、x q u e r y 、x p a t h ,但是这些查询语言普遍存在的一个缺点是语法复杂, 不易使用,且均处于探索阶段,尚无统一标准。鉴于此本文用x m l 扩展了s q l 一种 简单易用的查询语言x s q l ,并给出了详细的定义。 以x s q l 为基础,本文提出了一种行之有效的异构数据源查询处理的解决方案: 用户根据全局视图提出查询条件字串,用户的查询字串被应用服务器置入x s q l 查询 语言模板,并生成一棵查询树,由查询处理器负责分解成各异构数据源支持的子查询 交给各异构数据源的包装器,包装器负责向异构数据源提交查询并将返回的结构表示 成公共数据模型规范的x m l 文档,再交由查询处理器进行汇集。 由于这些数据来自于各种不同的数据源,数据的质量可能存在问题,如重复记录 或因为模式设计不好,输入错误等出现数据质量问题。查询处理器汇集这些数据以后 需要进行数据清理工作。本文在分析窗口算法和优先排序邻近算法的基础上,提出了 在本文解决方案中比较适用的算法一改进的窗口算法,使数据清理的效率加快。 最后,在上述研究的基础上,设计实现了一个学位与研究生教育集成信息系统及 萁了系统基于网络的学科信息年报系统( x w d i s ) ,x w d i s 是一个典型的异构数据 源集成系统,它以x s q l 作为查询语言,能够完成对多个异构数据源的透明查询处理。 所有这些工作,无论在理论上还是今后的实际应用中都具有实质性的参考价值。 关键词:异构数据源x m l查询处理数据清理 华中科技大学硕士学位论文 a b s t r a c t m o r ea n dm o r ea p p l i c a t i o nn e e dt ov i s i tv a r i o u sk i n d so fh e t e r o g e n e o u sd a t as 0 1 1 r c e , w i t ht h en e t a p p l i c a t i o n a n dt h ed e c i s i o n s y s t e m ss t a n d f a s f l yi n c r e a s i n g n o w d a t a i n t e g r a t i o nh a sb e e na na c t i v et o p i c t h er e a l i z a t i o no fq u e r yi st h ed i f f i c u l ta n di m p o r t a n t p o i n to ft h eh e t e r o g e n e o u sd a t ai n t e g r a t i o n t h o u g hf o r e i g n s c h o l a r sh a v ea l r e a d yp u t f o r w a r ds o m eq u e r yl a n g u a g e sb a s e do nx m l t e c h n o l o g ya tp r e s e n t ,s u c ha sx m l - q l , x q u e r y ,x p a t h ,e t c ,o n es h o r t c o m i n gt h a t e x i s t sg e n e r a l l yi nt h e s eq u e r yl a n g u a g e si s m i s c e l l a n e o u s g r a m m a r , m a k i n gq u e r y c a n o n l y b e o p e r a t e db y s o m e p r o f e s s i o n a l p e r s o n n e l ,a n di sy e ta tt h es t a g eo fp r o b i n ga n ds t u d y i n g t h eg r a m m a r i sm i s c e l l a n e o u s , t h es e m a n t i cf u n c t i o ni sn o tt h es a m e ,a n dt h e r ei sn ou n i f i e ds t a n d a r dy e t i nv i e wo f t h i s , t h i st e x th a sp u tf o r w a r dak i n do f s i m p l eq u e r yl a n g u a g ex s q l ,a n d d e t a i l e dd e f i n i t i o ni s p r o v i d e d x s q li se x p a n d e df r o ms q lb yu s i n gx m lt e c h n o l o g y , s ot h o s e w h oa r e f a m i l i a r 、“t hs q l l a n g u a g e c a l lu s ei tw i t h o u t s p e c i a lt r a i n i n g b a s e d0 1 1x s q l ,t h i st e x to f f e r sa ne f f e c t i v es o l u t i o nt ot h eh e t e r o g e n e o u sd a t aq u e r y : u s e r s ,a c c o r d i n gt og l o b a lv i e w , p r o p o s eq u e r yt e r m s ,w h i c hi sp u ti n t ox s q lq u e r y l a n g u a g et e m p l a t eb ya p p l i c a t i o ns e r v e r , a n d t h e ng e n e r a t ea q u e r yt r e e ,w h i c hi sd i v i d e db y t h e q u e r yp r o c e s s o ri n t o d i f f e r e n ts u b - q u e r ys u p p o r t e db yd i f f e r e n th e t e r o g e n e o u sd a t a s o u r c e sa n ds u b q u e r ya r es e n tt ot h e w r a p p e r o ft h ed a t as o u r c e s ,t h ew r a p p e ri s r e s p o n s i b l ef o rs e n d i n gq u e r yt oh e t e r o g e n e o u sd a t as o u r c e sa n dd e m o n s t r a t i n gt h er e t u r n s t r u c t u r ea sc o m m o nd a t am o d e ln o r m a lx m lf i l e ,a n dt h e n t r a n s f e r r i n g t o q u e r y p r o c e s s o r t ob ei n t e g r a t e d i tm a y b ee x i s ts o m ed a t aq u a n t i t yp r o b l e m ss u c ha st w oo rm o r er e c o r d sa r ee x a c t l y t h es a m eo n e ,d e s i g nm o d a li sn og o o do rd a t aw a sw r o n g l yi n p u t t e de t c t h ed a t am u s tb e c l e a n e da f t e rt h eq u e r yp r o c e s s o ri n t e g r a t i n gt h e m t h i st e x tb a s eo n a n a l y z i n go fs l i d i n g w i n d o w a l g o r i t h m a n d p r i o r i t ys o r t e d n e i g h b o r h o o da l g o r i t h m ,d e s i g n a n i m p r o v e d w i n d o w a l g o r i t h m t h i sa l g o r i t h m c a l li m p r o v et h ee f f i c i e n c yo fd a t ac l e a n i n g f i n a l l y , t h eg r a d u a t e e d u c a t i o ni n t e g r a t e di n f o r m a t i o n s y s t e m a n dap r o t o t y p eo f h e t e r o g e n e o u sd a t as o u r c es y s t e mt h a td e s i g n e da n di m p l e m e n t e do na b o v em e t h o da n d t e c h n o l o g i e s ,n a m e dx w d i s ,i si n t r o d u c e d x w d i s ,u s i n gx s q l a st h el a n g u a g eo fq u e r y c a r lf i n i s ht r a n s p a r e n tq u e r yo fal o to fd i f f e r e n th e t e r o g e n e o u sd a t as o u r c e s a l lw o r kh a s s u b s t a n t i a lr e f e r e n c ev a l u en om a t t e ri nt h e o r yo ri np r a c t i c a la p p l i c a t i o ni nt h ef u t u r e k e yw o r d s :h e t e r o g e n e o u sd a t as o u r c e e x t e n s i b l em a r k u pl a n g u a g e q u e r yp r o c e s s d a t ac l e a n i n g l l 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的 研究成果。尽我所知,除文中已经标明引用的内- t - # ,本论文不包含任何其他个 人或集体己经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均己在交中以明确方式标明。本人完全意识到本声明的法律结果由本人承担e 学位论文作者签名:青干。孽 日期:忙弓月o 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有 权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和 借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于, 不保密目。 ( 请在以上方框内打“”) 学位论文作者签名: 日期:洲忙岁月 南 寻 f 归 指导教师签名: 日期:础年;月c j 一日 华中科技大学硕士学位论文 1 1 研究背景、目的及意义 1 绪论 计算机用于企事业单位信息化建设和运用i t 技术辅助管理己经有几十年历史, 建立了为数众多的信息系统。据i d c 统计表明,过去十年,全球在信息系统上一共投 资了1 8 万亿美元。一家典型的大型企业平均拥有4 9 个应用系统【i 】,如企业资源计划 ( e n t e r p r i s er e s o u r c e sp l a n n i n g ,e r p ) 系统、客户关系管理( c u s t o m e rr e l a t i o n s h i p m a n a g e m e n t ,c r m ) 、产品数据管理系统( p r o d u c td a t am a n a g e m e n t ,p d m ) 、人力资 源系统( h u m a nr e s o u r c e s ,i m ) 、供应链管理系统( s u p p l y c h a i n m a n a g e m e n t ,s c m ) 、 办公室自动化系统( o f f i c ea u t o m a t i o ns y s t e m ,o a ) ,电子商务( e - c o r n l t l e r c e ) 平台等 等,用以帮助企业进行内外部业务的处理和管理工作。这些系统对提高企业效益起了 极大的作用。但是这些系统建立的年代不同、开发人员不同,使用的平台、操作系统、 数据库系统都有可能不同。各个应用部门的信息系统相互独立,互操作困难,多种硬 件甲台和软件平台共存,信息分散,数据不能共享。这些孤立的信息系统无法有效地 提供跨部门、跨企业的综合性的信息,不能为领导层的科学决策提供全局的、一致的 信息服务。无法实现实时的信息存取和对业务流程的透视,无法实现对客户、供应商、 项目、订单、资产等的全面掌控,也无法实现企业价值链的全面的、彻底的透视和控 制。 这样,数据集成的研究就被提上日程。现代社会信息交流越来越多,而不同系统 之问存在不同数掘类型和数据格式,甚至存在冗余、重叠的数据。在数据集成的时候, 就需要进行数据的转换,并清理冗余、重复的数据;另一方面,随着业务和计算机应 用的发展,任何企事业单位内部、政府部门等都有可能需要数据集成,所以数据集成 的用途是及其广泛的。 下述4 个方面是目前需要或者已经用到数据集成的领域: ( 1 ) 搜索引擎。网络搜索引擎和f t p 搜索引擎是需要进行数据集成和清理的地 方。这些搜索引擎获得的信息往往是非常巨大,用户需要的信息湮没其中而得不到f 确的数据。 ( 2 ) 电子政务系统。电子政务系统是一个巨大的工程,业务范围广,数据源复 杂,大部分部门、企事业单位内部已经建立了一些应用系统,对这些系统进行集成也 华中科技大学硕士学位论文 是不呵缺少的重要工作。目前,深圳黎明网络公司已经研发出i - s w i t c h 系列信息交 换机,就是针对这种电子政务应用的应用集成软硬件平台。 ( 3 ) g i s 和空间数据集成。g l s 系统的应用也是越来越广泛,如g p s 定位系统、 地图浏览、消防系统的火警定位等。g i s 数据管理系统也比较多,其中各系统的数据 格式、数据模型都不太一致。随着数据仓库以及集成系统的发展,空间数据集成也越 来越重要。在国外,空间数据集成正成为一个研究的热点。空间数据集成主要解决以 下几个问题:尽可能标准化数据的定义、格式和值;文档和交叉引用的问题; 符合未来标准。 ( 4 ) 各种系统集成项目。企业规模扩大和业务发展会需要新的系统,且要求能 够存储处理遗留系统的历史数据。 而查询处理的问题是数据集成中的一个重要问题。查询处理器的性能是否优秀关 系到一个集成系统的性能是否优秀。目前像黎明网络公司的信息交换机这样的商用产 品还比较少,而且功能也有限,使用起来并不方便,大部分查询处理器比较粗糙,功 能有限,需要过多的人工干预,对于较复杂的情形无能为力,只能应用于特定的领域, 扩展能力和重用性较低。 1 2 国内外研究概况 实现对多源异构数据信息的查询处理( 包括对数据的增、删、改、查,为叙述方 便,通称查询处理) ,在数据集成领域总结出较常用的查询处理有两种:一是用包装 器( w r a p p e r ) 实现对数据源的查询进行封装,将查询任务交给查询处理器,对于查 询能力很弱的数据源( 简称弱数据源) 来说,这种方法的缺点是包装器的设计相当复 杂。如i b m 公司的g a l i c 系统提出封装法( e n c a p s u l a t i o na p p r o a c h ) 1 6 ”,由包装器包 装数据源的查询能力,即将查询能否执行的全部判断任务交给包装器。该方法不受到 具体描述语言表达能力的限制,却加重了包装器的负担。另一种是仅向各数掘源发送 它们能完成的查询,这种方法容易造成信息的丢失或大量的无效元组,对弱数据源( 如 半结构化数据) 很难找到一种有效的查询语言。如t s i m m i s i 引、d i s c o l 9 和v e r s a t i l e i ”川 均采用这种方法。 在半结构化数据模型以及查询语言方面,迄今为止,工业界和学术界提出了不下十 种x m l 查询语言。按照提出者的研究背景,这些查询语占可以分为两大类:一类来 自文档研究领域,如x s l t 砖1 和x q l 3 】:另一类来自数据库研究领域,如l o r e l i ”j 、 x m l - - g l t 2 0 l 、x m l q l 【12 1 、x q u e r y 1 4 】、q u i l t t l 6 】和x p a t h 【1 7 1 ,各种语言在语法形 2 华中科技大学硕士学位论文 式和查询能力都不尽相同。一般来说,由文档研究者提出的查询语言功能比较弱,如 x s l 不支持连接操作,x s l 和x q l 均不支持正规路径表达式匹配等。而数掘库研究 者提出的查询语言功能相对强大,一般都支持复杂的路径表达式、连接、嵌套查询等 数掘库查询语言的典型特征。所有这些语言都还处于研究阶段,存在许多不足,主要 表现在:在理论上没有给出半结构化数据查询能力的标准及其形式描述:半结构化查 询语言的语法纷繁复杂,表现在路径的正则表达式的表达复杂,特殊的数据结构( 如 数据引用) 的表达也很复杂,使查询只能为一些非常熟悉系统的专业人士构造;这些 查询语言语法各异,语义功能也不相同,没有一个统一的标准。 1 3 本文的主要研究工作 鉴于目前企业应用中的数据主体绝大多数使用r d b m s 或w e b 页面来存储管理 的。为了简化多源异构数据信息的查询处理的实现,本文提出了一种用x m l 技术扩 展了的s q l 查询语言x s q l 。x s q l 可以方便地通过j a v a 等程序语言编写的中间件 转换成传统的s q l 语句,用于对传统的关系数据模式的数据源进行查询,同时x s q l 同其他半结构化查询语言( 如x m l q l 、x q l 等) 一样可以通过模式匹配的方式对x m l 文档表述的半结构化数据源进行查询。 本文提出的多源异构数据信息的查询处理的基本思路是首先用带命名空间的 x m l 文档来描述各异构数据源的集成模式( 统一的全局视图) 。用户通过g u i 提出查 询条件字串,用户的查询字串被应用服务器置入x s q l 查询语言模板,并生成一棵查 询树,由查询处理器负责分解成各数据源支持的予查询交给各异构数据源的包装器, 包装器负责向数据源提交查询并将返回的结构表示成公共数据模型规范的x m l 文 档,再交由查询处理器进行汇集和处理后,使用x m l 的扩展样式转换工具 x s l t ( e x t e n s i b l es t y l e s h e e tl a n g u a g et r a n s f o r m a t i o n ) 转换成用户要求的样式,将最终 结果提交给用户或相应的应用。 1 4 论文的组织结构 ( 1 ) 总结了本课题进行研究的背景、目的和意义,以及国内外在数据集成特别 是查询方面的研究工作,介绍了国内外稍为成熟的几个系统。 ( 2 ) 介绍了x m l 语言的基本知识以及x m l 语言在数据库中的存储模式和目 自u 支持x m l 的数据库,然后介绍了x m l 树模式的定义,较深入地探讨了关系模型、 面向对象模型及文件系统中半结构化或非结构化数据与x m l 树模式之问互相映射 华中科技大学硕士学位论文 技术,为解决异构系统之间信息( 数据) 集成的同一化提供了一种有效的解决思路和技 术。 ( 3 ) 针对异构数据信息的查询处理( 包括对数据的增、删、改、查,统称查询处 理) ,本文提出了一种简单易用的查询语言x s q l 并进行了形式定义。x s q l 用x m l 技术扩展s q l 而来,凡熟悉s q l 语言的人不用专门培训即可使用。x s q l 不仅可用 用x m l 文档中的数据查询,且可用于数据库中数据的查询,非常适合用作异构数据 源集成系统的查询语言。基本思路是用带命名空间的x m l 文档来描述集成模式到各 异构数据源局部模式的映射,根据用户提出的查询条件,生成一棵查询树,将必要的 操作( 选择、投影、差集等) 尽量推向表示各数据源的叶结点,充分利用各数掘源的查 询能力。然后通过包装器( x m l j a v a 中间件) 将各数据源返回的数据转换成公共数掘 模型的表示形式,进行汇集和数据清理后,使用x m l 的扩展样式转换工具 x s l t ( e x t e n s i b l es t y l e s h e e tl a n g u a g et r a n s f o r m a t i o n ) 转换成用户要求的样式,将最终 结果返回用户或相应的应用。 ( 4 ) 详细定义了x s q l 语句的分解,将全局查询分解成一个或多个子查询,每 个子查询从各异构数据源中取得所需的数据,然后对该过程进行理论分析与归纳。 ( 5 ) 介绍了数据清理的概念,各子查询所得的中间结果由于来自许多不同的数 据源,数据的质量可能存在许多不同的问题。本章介绍了一种数据清理研究的典型方 法,然后总结了常见的几种识别重复记录的算法,如滑动窗口算法、多路排序邻近算 法和优先队列方法,对这些算法的优缺点进行了总结,并且提出了一种适合于查询结 果清理的改进的窗口算法。 最后给出了一个异构数据源集成的实例研究一研究生教育集成信息系统 ( g s m i s ) 的设计与实现。 华中科技大学硕士学位论文 2 x m l 简介及x m l 树模型 2 1 x m l 语言基本知识 2 1 1x m 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 ) 是一门新兴的面i n t e m e t 应 用的嚣标语言,它是由w 3 c ( w o r l d w i d ew e d c o n s o r t i u m ) 组织于1 9 9 8 年制定的 一种通用语言规范。x m l 是s g m l ( 标准通用置标语言) 的一个子集,其最大优点在 于适合网上发布和数据交换。另外,作为对s g m l 语言标准的一种改良,x m l 凭借其 良好的扩展性和自描述性、形式与内容分离、遵循严格的语法要求以及对多语种的支 持等特点,给跨平台跨地域异构应用间的协同工作、基于语义的智能数据搜索等重要 领域带来重大突破。 从整体上讲,x m l 定义了应用问所传递数据的结构,而且这种结构的描述不是基 于二进制的、只能由程序去判读的代码,而是一种简单的、能够用任何编辑器读取得 文本。利用这种机制,程序员可以制定底层数据交换的规范,然后在此基础上开发整 个系统的各个模块,而各模块之间传输的数据将是规范的符合既定规则的数据。另外, x m l 还允许为特定的应用制定特殊的数据格式,使其非常适合于在服务器与服务器之 间传送结构化数据。 2 1 2 x m l 数据存取机制 x m l 数据源多种多样,根据具体的应用,大概可分为下面三种:一种是x m l 纯 文本文档,第二种是数据库,第三种则来源于其他各种带有一定格式的应用数据,如 邮件、目录清单、商务报告等等。其中,第一种来源,目o x m l 纯文本文档是最基本的 也是最为简单的,将数据存储于文件中,其最大的优点在于可以直接方便地读取,或 者加以样式信息在浏览器中显示,或者通过d o m 或s a x 接口编程同其他应用相连。第 一种数据来源是对第一种来源的扩展,其目的是便于开发各种动态应用,其优点则在 于通过数据库系统对数据进行管理,然后在利用服务器端语言( 如a s p 、j s p 、p h p 、 j a v as e r v l e t 等) 进行动态存取。这种方式最适合于当前最为流行的基于三层结构的应 用丌发。第三种数据出于来源广泛,微软为此提供了基于o l ed b 的解决方案,使得 各种桌面应用系统可以通过o l ed b 直接导出x m l 数据文档。本文只对前两种应用 进行研究。图2 1 为x m l 存取机制示意图。 华中科技大学硕士学位论文 幽2 - 1x m l 存取机制不意图 对于x m l 文档,可以透过d o m ( 即文档对象模型) 读取x m l 文档中的节点,这 是最基本也是最底层的x m l 存取技术。d o m 是w 3 c 推荐的一种技术标准,实际上是 提供一组a p i 来存取x m l 数据。它可以通过j a v a s c r i p t 、j s c r i p t 、v b s c r i p t 等脚本程序 柬调用,也可通过c + + 、j a v a 等高级语言来调用。d o m 为开发基于x m l 的应用系统 提供了便利。它通过一种随机访问机制,使得应用程序利用该接口可以在任何时候 访问x m l 文档中的任何一部分数据,也可以对x m l 文档中的数据进行插入、删除、 修改、移动等操作。另外一种x m l 编程接口是s a x ,它是由著名的x m l 讨论组 x m l d e v 开发的。s a x 提供了一种对x m l 文档进行j 暖序访问的模式,这是一种快 速读写x m l 数据的方式。s a x 接口是事件驱动的,当使用s a x 分析器对x m l 文档进 行分析时,就会触发一系列事件,并激活相应的事件处理函数,从而完成对x m l 文 档的访问。 另外,x m l 文档可以通过赋予一定的样式信息进而在w e b 浏览器中显示。这一 工作可以由c s s 和x s l 来完成。c s s 技术早在h t m l 3 2 中就得以实现,其关键是将 h t m l 中的元素同预先定义好和一组样式类相关联以达到样式化的目的,而x m l 同 样也支持这种技术。x s l 同c s s 有些类似,不同之处在于它是通过定义一组样式模板 将x m l 源文档转换成h t m l 文档或其它x m l 文档。x s l 实际上也是符合x m l 规范的, 华中科技大学硕士学位论文 它提供了一套完整的类似控制语言的元素和属性,可以进行文本置换、排序、根据内 容决定显示方式等等,最终可完成丰富多彩的样式描述。 其次,通过d s o ( d a t a s o u r c eo n e c t ) 进行x m l 的数据绑定也可以方便地将x m l 节 点同h t m l 标记捆绑,从x m l 文档中读取或写入数据,就象访问m i c r o s o f ta c c e s s 或 m i c r o s o f ts q ls e r v e r 一样,最后将结果在w e b 浏览器中显示。d s o 的工作方式有几种, 一种是同d o m 类似,即通过对x m l 节点树进行遍历来搜索节点,每次仅将节点数据 同h t m l 的一个元素( 如s p a n 元素) 相关联;第二种方式同第一种的不同之处在于 将节点数据同一个h t m l 多值元素( 如t r 元素) 相关联。 基于h t t p 协议通过在u r l 中嵌n s q l 语句是关系型数据库存取技术上的一大进 步,也是微软新近提出的x m l 数据库解决方案的核心,其基本原理是通过基于h t t p 协议的u r l 方式直接访问s q ls e r v e r 数据库,并返回以x m l 或h t m l 数据格式的文档, 最后加以样式化或直接在浏览器中输出。目前,大多数数据库厂商均提供了对这一 x m l 数据存取机制的支持。对于面向对象数据库来说,这一过程是通过在u r l 中嵌入 x q l x p a t h 语句来完成的,而这又进一步体现了面向对象技术在x m l 数据存取中 的优势,因为此时数据是被视为对象并按层次结构进行操作的。 另外,关系型数据库中的数据也可以通过编程来输出x m l 文档。同h t t p + s q l 机制相比,虽然在实现上较为复杂,但它提供了一定的可操作性。对于一个c h 程 序员来说,编写一套访问数据库的x m l 应用程序可能需要利用o d b c 和c + + x v i l 语 法分析器;而对于一个j a v a 程序员来说,可能只需要j d b c 和j a v ax m l 语法分析器 就够了。利用a s p 在页面文档中嵌入a d o 对象从数据库中提取x m l 数据是微软对其 a s p 技术的一种扩展,a d o 取得数据后,可以调用d o m 提供的a p i 来动态生成x m l 文档,并进而同其他应用交换数据,或者直接在 剜览器中显示。对于基于x m l 的面 向对象数据库来说,大多都提供一套相应的开发机制或丌发包,帮助开发者创建各 种一i 同的应用系统,例如一组基于j a v a 或c o m 组件的a p i 作为对c l i e n t 或s e r v e r 端应 用的扩展。 然而,从现实的角度来看,个完整的应用系统往往需要由许多小的子系统相互 协同合作,j 能最大限度地处理各种信息,这也就是所谓的分布式应用系统。在这种 情况下,必须存在一种平台级的数据存耿机制来保证数据的协调一致,否则,各个子 系统就只能是一个个的“数字孤岛”。我们知道,作为w e b 应用的“灵魂”的h t t p 协议,使得w e b 服务器和浏览器之间可以传输各种各样的内容,不论是简单的文本, 还是形式丰富的多媒体信息。但是,从另一方面来看,越来越多的互联网应用采用r p c 华中科技大学硕士学位论文 ( 远程过程调用) 进行数据交换,而h t t p 本身显然是并不适合的。相反,在这种应 用中,一些分御式对象协议,如d c o m 、i i o p c o r b a 则大行其道,但它们又会面临 另外的难题一一防火墙。作为互联网上的一种安全策略,防火墙一般会根掘协议的 端口号对来访的数据请求进行控制,而大多数的分布式对象协议通常使用动态生成的 端口号,因此实际上会造成同防火墙的冲突。为了克服这一问题,一种全新然而也是 非常直观的解决方案s o a p 诞生了。s o a p ( 即简单对象访问协议) 的核心是在h t t p 消息体的请求和应答数据中引入x m l 结构,不过依然以h t t p 作为数据的载体,通过 p o s t 命令发送数据,利用g e t 命令接收消息。s o a p 最初由微软提出,后经i b m 及l o t u s 参与修改,于2 0 0 1 年5 月初提交w 3 c 组织,并受到众多知名厂商的支持。除了h t t p 协 议之外,s o a p 也可以同其他协议配合使用。 w d d x ( 即w e b 分布式数据交换) 是由a l l a i r e 发布的旨在解决w e b 应用间传 输关键数据的一项技术,它完全基于x m l1 o 标准,在数据传输方面,广泛支持基于 原文数据传输的协议,如h t t p 、s m t p 、p o p 、f t p 等等。一般来说,任何需要通过 i n t e m e t 同其他应用共享数据的应用都可以利用w d d x 来构建。比较典型的应用是 w e b 网络联盟和企业对企业内部网和外部网应用,因为这些应用都需要进行数据发 白,包括产品信息、供求信息、客户数据、订单数据等等。另外,w d d x 对于那些连 接传统w i n d o w s 桌面系统年h w e b 系统的应用也是适合的。 2 1 3 x m l 与数据库 作为一种数据存储与交换的模式,长期以来文件系统在信息领域占据主导地位。 但现在,越来越多的行业都在逐渐将关键数据放置于数据库中进行管理,一来目前 数据库技术已经相当成熟,二来其管理功能的确非常强大。以往的数据库应用,基 本上都是基于c s 模式,数据底层结构一般来说都是相对固定,也就是说,开发出来 的应用程序是针对具体的数据结构,丌放性较差,应用范畴也受到一定限制。而x m l 作为种可扩展性置标语言,其自描述性使其非常适用于不同应用问的数据交换, 而且这种交换是不以预先规定一组数据结构定义为前提的,因此具备很强的开放性, 具有广阔的应用前景。为了使基于x m l 的业务数据交换成为可能,就必须实现数据 库的x m l 数据存取,并且将x m l 数据同应用程序集成,进而使之同现有的业务规则 相结合。f 是由于这一原因,基于数据库的x m l 存储模式越来越受到数据库厂商以 及相关研究人员的重视,而一些所谓的支持x m l 的或基于x m l 的数据库系统也相继 推出。但总的来说,不外乎两种类型:一是以关系型结构为核心的“转型”关系型 数据库( 或称做对象关系型数据库) ,二是以面向对象技术为核心的“n a t i v e ”面向 华中科技大学硕士学位论文 对象数据库。 2 1 4 n m l 在数据库中的存储模式 一般来说,x m l 在数据库中的存储模式有三种类型,即:按结构层次拆分存入 相应字段、作为l o b 类型整存整取、作为数据对象存入数据库。 第一种类型是关系型数据库通常采用的存储模式。但是这样做的直接后果是在 数据库的检索、索引方面会增加许多额外的工作,因为关系型数据库并不能很好地 支持层次结构、顺序、包含等在结构化置标语言中十分本质的关系。尤其是随着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 的面向对象数据库系统必将成 为未柬的发展方向。 2 1 5 支持x m l 的数据库 丌发基于x m l 的动态应用,如动态信息发布、动态数据交换等,前提是必须有支 持x m l 的数据库支持。在这一方面,m i c r o s o f t 署l l o r a c l e 走在其他厂商的前面。号称全 球第一大数据库及数据库应用解决方案提供厂商的o r a c l e ,早在1 9 9 9 年就率先推出支 9 华中科技大学硕士学位论文 持x m l 的数据库产品一o r a c l e8 i 。而作为微软n e t 战略的一部分的m i c r o s o f ts q l s e r v e r 2 0 0 0 也正式提供对x m l 的支持,w e b 开发人员无需进行复杂的数据库编程,只 要在w e b 浏览器下输入一个u r l 地址,即可访问s q ls e r v e r 数据库,而返回的结果可 以是一个x m l 文档。另外,它还允许通过输入样式参数,指定模板文档,或借助t s q l 和存储过程进行更高层次上的数据处理。另一方面,作为面向对象数据库技术的代表, s o f t w a r ea g 和e x c e l o n ( 原o b j e c td e s i g n ) 公司也各自推出了基于x m l 的面向对象数 据库系统和应用开发平台。这些系统通过对x m l 语法分析器和) ( 1 l 引擎的封装从而 高效地处理x m l 数据,通过同其它数据库系统的接口扩展系统的应用范围,通过对 x q l 、x p a t h 、x s l t 等规范的支持保证应用系统同业界标准的接轨,进而大大方便了 跨平台、跨系统间异构数据的交换与存取。 2 2 x m l 树模型的有关定义 从上面可以看出,x m l 完全面向数掘内容,是自描述语言,可以很方便的描述 线性表、树、图等数据结构,从而能够成为不同应用系统之间的一种通用数据接口, 便于不同系统之间的信息交换。在本文之中,采用树模型来描述,以下是对该模型的 形式化定义。 定义1 任何x m l 文档可以表示为一个由数据对象构成的树t ( v ,e ,r ,u t 是棵有向树,包括一个

温馨提示

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

评论

0/150

提交评论