(计算机应用技术专业论文)基于xml的异构数据库查询技术的研究.pdf_第1页
(计算机应用技术专业论文)基于xml的异构数据库查询技术的研究.pdf_第2页
(计算机应用技术专业论文)基于xml的异构数据库查询技术的研究.pdf_第3页
(计算机应用技术专业论文)基于xml的异构数据库查询技术的研究.pdf_第4页
(计算机应用技术专业论文)基于xml的异构数据库查询技术的研究.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机应用技术专业论文)基于xml的异构数据库查询技术的研究.pdf.pdf 免费下载

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

文档简介

山东轻工业学院硕士学位论文 摘要 随着计算机网络和数据库技术的发展,在企业信息化建设和管理的过程中, 异构数据库的应用越来越广泛,于是人们就提出了共享分布在不同地理位置上的 异构多数据库信息的要求。异构数据库系统是相关的多个不同数据库系统的集合, 可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本 身就已经存在,拥有自己各自的d m b s 。异构数据库的各个组成部分具有自身的 自治性,在实现数据共享的同时,每个数据库系统仍将保有自己的应用特性、完 整性控制和安全性控制。 x m l 本身所具有的与平台无关性、易于扩展、交互性好、语义性强、可格 式化等特性和优点使得它在异构数据库系统中,方便于异构数据库的描述和实现 异构数据库之间的转换,并能通过自身的优点,解决目前异构数据库系统中存在 的联邦查询优化欠缺、和对基于w e b 的异质数据库间共享的集成不成熟、扩展性 较差等问题。 本论文研究和分析了异构数据源集成体系结构,在此基础上,选用典型的三 层网络体系结构作为异构数据集成平台框架的体系结构。论文将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 w i t ht h ed e v e l o p m e n to fi n t e r n e ta n dd a t a b a s e ,i nt h ec o m p a n yi n f o r m a t i o n d e v e l o p m e n ta n dm a n a g e ,h e t e r o g e n e o u sd a t a b a s e sa p p l i c a t i o nm o r ea n dm o r e s o p e o p l eb r o u g h ts h a r ew i t hh e t e r o g e n e o u sd a t a b a s ei n f o r m a t i o n i ti sal o to fr e l e v a n t s e t so fd a t a b a s es y s t e m st oc o n s t r u c tt h eh e t e r o g e n e o u sd a t a b a s e i tc a nr e a l i z es h a r i n g o fd a t aa n dt r a n s p a r e n tn e s sf o rv i s i t e a c hd a t a b a s es y s t e mi nj o i nt h eh e t e r o g e n e o u s d a t a b a s ei t s e l fa l r e a d ye x i s t e da n dh a si t so w nd b m s e a c h p a r to ft h eh e t e r o g e n e o u s d a t a b a s eh a si t so w n a u t o n o m yq u a l i t y a tt h et i m eo fr e a l i z i n gt h ed a t as h a r i n g ,e a c h d a t a b a s es y s t e mh a v ei t so w n a p p l i c a t i o nc h a r a c t e r i s t i c ,t h ei n t e g r a l i t yc o n t r o la n dt h e s e c u r i t yc o n t r o ls t i l l t h em e r i t sa n dc h a r a c t e r i s t i co fx m l 一一i th a sn o t h i n gt od ow i t ht h ep l a t f o r m ,e a s y t oe x p a n d ,i t si n t e r s e c t i o ni sg o o d ,s o m e t i m eh a v es t r o n g e rq u a n t i t y , a n di tc a nb e f o r m a t t e d - - m a k ei te a s i e rt od e s c r i b et h eh e t e r o g e n e o u sd a t a b a s ea n dr e a l i z et h e i n t e r - c o n v e r tb e t w e e nh e t e r o g e n e o u sd a t a b a s e b e s i d e s ,t h r o u g hi t so w nm e r i t s ,i tc a n s o l v et h ep r o b l e m s 一t h ed e f i c i e n to fu n i o ni n q u i r i e sa b o u ta n do p t i m i z e s ,t h ei n t e g r a t i o n o fh e t e r o g e n e o u sd a t a b a s es h a r eb a s e do nw e bi sn o tv e r ym a t u r e ,p o o re x p a n d i n g - - e x i s t i n gi nh e t e r o g e n e o u sd a t a b a s es y s t e ma tp r e s e n tp a r t l y t h i sp a p e rc o n s i d e rh e t e r o g e n e o u sd a t a b a s ei n t e g r a t i o na r c h i t e c t u r e ,w ec h o s et h e t h r e e - t i e rn e t w o r ka r c h i t e c t u r ea saf r a m e w o r kf o rh 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 p l a t f o r ma r c h i t e c t u r e t h e s i sw i l lb ea p p l i e dt ox m l d a t ai n t e g r a t i o nt e c h n o l o g yt o d e s i g nx m l - b a s e df r a m e w o r kf o rd a t ai n t e g r a t i o np l a t f o r m ,g i v et h ea r c h i t e c t u r eo ft h e f r a m e w o r ko ft h ei m p l e m e n t a t i o ns t r a t e g yf o re a c hm o d u l e m i d d l el a y e rw i t hx m ld a t a a sad e s c r i p t i v e t o o l ,t h r o u g h t h e m a p p i n gr e l a t i o n s h i p b e t w e e nt h ev a r i o u s h e t e r o g e n e o u sd a t a b a s ex m lc o n v e r t e dt oau n i f i e df o r m a t ,a sx q u e r yq u e r yl a n g u a g e u s e dt op r o v i d eu s e r sw i t ht o o l sa n dau n i f i e d q u e r yi n t e r f a c e b a s e do nx m l t e c h n o l o g yt oa c h i e v em a n yo ft h eh e t e r o g e n e o u sm o d e lo ft h ep r o p o s e dd a t a b a s eq u e r y , t ot h ep r o g r a m m e rp r o v i d e sat r a i no ft h o u g h tt or e s o l v et h i sp r o b l e m ,i m p r o v et h e r e u s a b i l i t yo ft h ep r o c e s s ,r e d u c i n gt h ec o s to fs o r w a r ed e v e l o p m e n ti no r d e rt om o r e r e a s o n a b l ea n dm o r ee f f e c t i v es o l u t i o nt oh e t e r o g e n e o u sm u l t i - d a t a b a s ed a t ae x t r a c t i o n a n ds h a r i n go ft h ep r o b l e m k e yw o r d s :x m l ,h e t e r o g e n e o u sd a t a b a s e ,q u e r y , m a p p i n g 学位论文独创- i 生声明 本人声明,所呈交的学位论文系在导师指导下本人独立完成的研究成果。文 中引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法律意义上 已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申请的论文或 成果,与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示谢意。 论文作者签名:也缮銎 日期:盟年上月上日 学位论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属山东轻工 业学院。山东轻工业学院享有以任何方式发表、复制、公开阅览、借阅以及申请 专利等权利,同意学校保留并向国家有关部门或机构送交论文的复印件和电子 版,本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成果时, 署名单位仍然为山东轻工业学院。 论文作者签名: 嵫犟 导师签名:妥监整 日期:坠l 年月上日 日期:鱼丑年月卫日 山东轻工业学院硕士学位论文 第1 章绪论 1 1 课题的研究背景与意义 随着计算机技术的广泛发展,许多不同的数据库( 例如s q ls e r v e r ,o r a c l e , d b 2 ,m y s q l 等) 被各大厂商开发出来并且应用在不同商业管理、政府办公、科学 研究和工程应用等领域,这一情况仍将继续持续发展下去。在很多情况下,为完 成某项工作,人们可能需要访问分布分布在网络中不同位置上的多个数据管理系 统中的数据。不仅如此,网络的发展使企事业单位逐渐从一个孤立节点发展成为 不断与网络交换信息的实体,企事业单位数据集成也从企业内部集成走向了企业 之间的数据集成。现在的企业比以往以往任何时候都需要将内部数据进行发布和 交换,这必然导致越来越多的企业应用需要访问各种异构数据源,但是这些数据 源却可能分布在网络上任何不同的地方。 为了满足这种需求,必须要有一种系统能够支持异构数据源之间的数据集成, 并且查询所需要的各种数据资源。对于企业应用来说,访问各种异构数据源是企 业内部发展的需要,也是适应外部环境的需要。数据集成系统可以把原来孤立在 多个异构数据源中的数据整合起来,为部门的应用提供一个完整的统一的数据视 图,从而充分利用现有各种异构数据资源。 如何集成、访问这些数据的一个关键问题是要提供给用户一个统一的视图, 从而屏蔽它们的系统环境、平台、数据结构等各个方面的异构性,使得用户不必 再需要了解各数据库管理系统的知识,不必自己进行数据转换和汇总,只需要通 过简便的全局查询就可以从巨大的数据资源中获取各自所需的信息。另外选用合 适的先进技术进行数据的分析、提取、集成和处理。 可扩展标记语x m l t l ( e x t e n s i b l em a r k e dl a n g u a g e ) 的出现为数据信息集成提 供了一种新的解决方法。因为x m l 可以作为一种信息的高层封装与传输标准, 或者可以说不同应用系统之间的数据接口标准,能够准确地表达多维信息间的逻 辑结构和含义。当一个查询任务的相关任务数据存储在不同的数据源时,x m l 通过它的标准格式为不同应用程序间的数据交换和不同系统间的数据集成提供了 一种强大的机制。它一出现就便很快在异构数据库的集成中得到应用,基于x m l 的异构数据库集成以及查询已成为目前国内外这方面研究的热点。 第1 章绪论 1 2 国内外研究情况 1 2 1 异构数据库集成技术的任务 数据集成本质上来说,就是要实现对多个数据源的数据提供统一的表示、存 储和管理,它在实现上则是通过一系列软件技术来对“信息孤岛”进行连接和集 成,对各种分布、异构的数据资源进行全局、统一、高效的访问和管理,为各种 应用和决策者支持提供一个良好的数据基础。 数据集成一般需要解决以下几个问题: ( 1 ) 分布性:解决各种不同地方数据的分布性问题,实现数据的集中与汇总。 ( 2 ) 异构性:主要分为结构异构和语义异构。 结构异构是指数据源表达数据的结构存在差异,目前广泛使用的结构有表、 对象、文件等。 语义异构分为两种类型:一种类型是相同的数据在不同的数据源中的表现形 式存在差异( 属性名、数据格式和类型等) ;另一种类型是指由于数据维护错误导 致同一数据项在不通数据源中有不同值。 ( 3 ) 自治性:在对原有的应用系统的数据进行继承时,不能影响原有系统的 正常运行。 ( 4 ) 扩展性:集成系统应具有很好的可扩展性和适应性,能够适应数据源的 数目、内容以及格式等的不断变化。 ( 5 ) 可靠性:提供数据的可靠传输,解决不同软硬件和网络环境中系统的通 信问题,实现“信息孤岛”之间的联通。 总之,需要一种服务,能够提供对该领域内相关数据源的透明访问,好像操 作一个数据源一样,把这种服务叫做数据集成服务,把能够集成多个数据源,提 供这种服务的平台叫做数据集成平台【2 】 如图1 1 所示。 图1 1 数据集成平台结构图 2 山东轻工业学院硕士学位论文 数据集成的主要目的是提供一个访问异构数据源的统一的接口,使用户不必 考虑数据模型的异构性、数据合成等问题,用户只需指定他们想要的数据,而不 必描述怎样得到的数据。这样就减轻了用户查找相关数据源和存储数据的统一视 图。这样用户访问所有数据源就像操作一个数据源一样【3 】。 1 2 2 现有的数据集成方法 数据集成的研究始于七十年代中期,已经经历了三十年的发展,众多的方法 中,主要的也是最常见的方法有三种:联邦数据库系统、中间件法和数据仓库法。 ( 1 ) 联邦数据库系统 联邦数据库系统f 4 , 5 l ( f e d e r a t i o nd a t a b a s es y s t e m ,f d b s ) 是由参与联邦的半自 治的数据库系统组成,目的是实现数据库系统间部分数据的共享网。联邦中的每 个数据库的操作是独立于其他数据库和联邦的。之所以叫“半自治”是因为联邦 中的所有数据库都添加了彼此访问的接口。 联邦数据库系统分为紧密耦合f d b s 和松散耦合f i ) b s 两种。 紧耦合f d b s 一般是由一个或几个统一的模式组成的,这些模式可通过半自 动技术生成,也可通过用户手工来完成。要解决逻辑上的异构,就需要领域专家 决定数据库模式间的对应关系。由于模式集成技术不易添加和删除联邦数据库集 成系统中的数据库,所以紧耦合f d b s 一般是静态的。 图1 2 联邦数据库体系结构 松耦合f d b s 没有统一的模式,但是它却提供了一些查询数据库的统一语言。 这样f d b s 中的数据库更具有自治性,但必须由用户解决所有语义上的异构。松 耦合f d b s 没有统一的全局模式,所以每个数据库都要创建自己的“联邦模式”。 f d b s 中实现互操作最常用的方法是将每个数据库模式分别和其它所有的数 据库模式进行映射,这样的例子如图1 2 所示。这样在联邦中需要建立n ( 1 1 1 1 个模式映射规则,但当参与联邦的数据库很多( n 值很大) 时,建立映射规则的任务 就变的不可行了。所以,联邦数据库集成系统适合于自治数据库的数量比较小的 第1 章绪论 情况,并且希望数据库能保持各自之间的“独立”,允许每个用户单独查询,各个 数据库间能够彼此联合回答查询的情况。但是对于网络上越来越丰富的数据源, f d b s 显然不是一个很好的解决方案。 比较著名的联邦数据库产品有h p 公司数据库技术部开发的p e g a s u s ,u n i s q l 公司开发的u n i s q l m 等【6 ,7 】。 ( 2 ) m e d i a t o r 方式 m e d i a t o r 方式【8 】通过提供所有异构数据源的虚拟视图来集成它们,这里的数 据源可以是数据库,w e b 数据源等等。该系统还提供给用户一个全局模式( 也叫 m e d i a t o r 模式) ,用户提交的查询也是针对该模式的,所以用户不必知道数据源的 位置、模式及访问方法。 m e d i a t o r 方式与紧耦合联邦有如下不同之处: m e d i a t o r 方式可以集成非数据库数据源。 基于中介器的系统中的数据源的查询能力可以是受限制的,数据源可以不 支持s q l 查询。 m e d i a t o r 方式中的数据源是完全自治的,所以对系统中数据访问通常是只 读的,而f d b s 支持读写访问。 图1 3 所示的是典型的采用m e d i a t o r 方式的提供体系结构,该系统的主要部 件是中介器和针对每个数据源的包装器r ( w r a p p e r ) 。这里中介器的功能是接受针对 全局模式生成的查询,根据数据源描述信息及映射规则将接收的查询分解成每个 数据源的子查询,再根据数据源描述信息优化查询计划,最后将子查询发送到每 个数据源的包装器。包装器将这些子查询翻译成每个数据源模式的查询,并把查 询结果返回给中介器。中介器将接收的所有数据源的结果合并成一个结果返回给 用户。 ( 3 ) 数据仓库法 全局查询ii 综合结果 中介器 ( m e d i a t o r ) 搿果查询 包装器l 果 果 数据源ll i 数据源n 图1 3m e d i a t o r w r a p p e r 体系结构图 4 山东轻工业学院硕士学位论文 数据仓库法【9 】也叫物化视图法,该方法需要建立一个存储数据的仓库,由 e t l ( e x t r a c t ,t r a n s f o r ma n dl o a d ) q - 具定期从数据源过滤数据,然后装载到数据仓 库,供用户查询。数据仓库法体系结构如图1 4 所示。 图1 4 数据仓库法体系结构图 数据仓库集成异构数据源也需要一个统一的数据视图,而且数据仓库中存储 的是历史和汇总数据,用于决策支持,主要供分析或执行等人员使用。为避免数 据仓库与数据源中数据出现不一致,通常不允许用户对数据仓库进行更新。 1 2 3x m l 与数据集成 目前兴起的x m l 技术,具有很多特点,主要表现为:( 1 ) 具有强大的数据 表现力,能够以简单的形势表达复杂的数据;( 2 ) 可扩展性能强,可以根据用户 的不同需要进行扩展【】o 】;( 3 ) 自描述能力强,能够实现数据与表现形势的分离。 这些特点就决定了数据交换中的媒介】非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 的数 据库应用也正在迅速发展起来。 1 3 本论文主要内容及组织 本论文研究和分析了异构数据源集成体系结构,在此基础上,选用典型的三 层网络体系结构。设计了基于x m l 的数据集成平台框架,给出了该框架体系结 第1 章绪论 构各模块的实现策略,并研究其中的关键技术:模式映射和查询处理。论文共分 为六章: 第一章为绪论部分,介绍了本论文的研究背景、研究意义以及国内外发展情 况、组织结构以及主要研究内容。 第二章为x m l 语言的发展及其应用,介绍了标记语言的发展,x m l 的组成、 特点,以及x m l 与j a 、,a 技术的结合。 第三章为异构数据库的发展及现状。介绍了异构数据库问题的产生、异构数 据库的特征、要求、分类以及异构数据库的发展现状。 第四章为基于x m l 的异构数据库查询系统的设计,从整体上介绍了本文要 讨论的方案的整体设计以及在整个方案各个关键模块的设计说明。重点介绍了查 询处理器和查询优化算法。 第五章为使用到的关键技术,主要是数据库连接技术和x m l 和数据库之间 的映射机制。 第六章用一个实例实现本模型,主要介绍了实现技术的关键技术和相关代码。 第七章为总结与进一步的工作,从总体上总结了本文所研究的内容及其主要 问题的解决方法,讨论了该方案需要进一步完善的地方以及在实际中下一步该做 的工作。 山东轻工业学院硕士学位论文 第2 章x m l 技术与数据库集成 2 1x m l 简介和特点 2 1 1x m l 的产生 x m l 是从1 9 9 6 年开始有其雏形,并向w 3 c ( 全球信息网联盟) 提案,而在1 9 9 8 二月发布为w 3 c 的标准( x m l i o ) 。x m l 的前身是s g m l ( t h es t a n d a r dg e n e r a l i z e d m a r k u pl a n g u a g e ) ,是自i b m 从6 0 年代就开始发展的g m l ( g e n e r a l i z e dm a r k u p l a n g u a g e ) 标准化后的名称。为了满足商业w e b 出版的需要和解决w e b 技术在 新的分布式文件处理领域的应用需求,w 3 c 组织于1 9 9 8 年2 月制定的一种通用 语言规范,这就是x m l 8 ( e x t e n s i b l em a r k e dl a n g u a g e 可扩展标记语言) ,以用于 那些目前h t m l 无法满足要求的应用。而帆目的即在于提供一个对信息能够 做精准描述的机制,藉以弥补h t m l 太过于表现导向的特质。在过去几年里, x m l 得到了快速的普及和广泛应用。这种爆炸式增长的主要驱动力源于它提供了 一种标准化,可扩展的方法,将语义信息包含在描述半结构数据的文档中。这使 x m l 能够克服置标语言的缺点并支持电子商务环境中的数据交换。 x m 儿 i ill 定义显示a p l i l i d t d s c h e m ac s s x s ld o ms a x w s m l w s d lu d d l x m l b 弱 图2 1x m l 标准架构 x m l 的基本标准化包括三个方面:定义、显示、操纵三个方面。扩展标准由 各个行业根据自己的应用领域指定,定义本行业领域信息交互标准,提交w 3 c 审核通过。有代表性的为w e bs e r v i c e 相关系列标准,用于w e b 应用领域。如图 2 1 所示。 第2 章x m l 技术与数据库集成 2 1 2x m l 的特点 ( 1 ) 开放的国际化标准 x m l 是w 3 c 正式批准的,它完全可用于w e b 和工具的开发。x m l 具有标 准的名域说明方法,支持文档对象模型标准、可扩展类型语言标准、可扩展链接 语言标准和x m l 指针语言标准。使用x m l 可以在不同的计算机系统间交换信息, 而且还可以跨越国界和超越不同文化疆界交换信息。x m l 种还包括可扩展格式语 言x s l ( e x t e n s i b l es t y l el a n g u a g e ) 和可扩展链接语言x l l ( e x t e n s i b l el i n k i n g l a n g u a g e ) 使得x m l 的显示和解析更加方便快捷。 ( 2 ) 高效可扩充 x m l 允许程序自行定义标记来满足需要。同样一个行业或某一特定人群,也 可以指定在自己范围内的通用标记集【1 2 】,这样x m l 可以轻松地适应每一个领域 而无需对语言本身做大修改。另外,x m l 的数据定义与数据本身分离而独立存在, 这样使x m l 的标记集不致日益扩大。x m l 支持复用文档片断,使用者可以发明 和使用自己的标签,也可以与他人共享,可延伸性大。在x m l 中,可定义组 无限量的标准,可以有效地进行x m l 文件的扩充。 ( 3 ) 良好的移植性能 x m l 语言可以定义各种数据,比如说文本、图像、声音等。这些数据往往有 很多种不同的格式使得数据不能在各系统之间交流,或者可以使用额外的转换软 件来实现跨平台的交流。x m l 的这个特点使得只要交换数据的系统都能处理一种 格式的文件即x m l 文档,就能处理由x m l 标注的各种数据,从而实现了不同格 式数据的跨平台交换【l4 1 。 ( 4 ) 良好的自描述性 x m l 有许多部分,但是只需要了解其中的三个就可以了解它是怎样工作的。 它们是:文档类型定义( d o c u m e n tt y p ed e f i n i t i o n ,d t d ) ,也就是x m l 的布局语 言;可扩展的样式语言( e x t e n s i b l es t y l el a n g u a g e :x s l ) ,也就是x m l 的样式表 语言;以及可扩展链接语言( e x t e n s i b l el i n k l a n g u a g e :x l l ) 。因而x m l 文档是 自描述的。x m l 文档良好的自描述性不仅使文档能被人读懂,还可以被不同的应 用程序识别、分析和处理。 总之x m l 不仅能满足不断增长的网络应用需求,向时能够确保在通过网络 进行交互合作时,具有良好的可靠性与互操作性。它是一种自我描述的定义语言, 用户自己可以定义标记来描述文件中的任何数据元素,从而突破了h t m l 固定标 记集合的约束,使文件的内容更丰富更复杂并组成一个完整的信息体现。由于这 些优点,x m l 已经进化成了一个电子商务和信息交换的全球平台。 山东轻工业学院硕士学位论文 2 2x m l 文档结构 x m l 的基本概念和术语都很简单,并且已经形式化为开放的因特网标准。如 同w 3 c 的x m l l 0 规范中所说的那样,“x m l 文档由称为实体的存储单元组成, 实体中包含解析过或未解析的数据。x m l 有许多部分,但是只需要了解其中的三 个就可以了解它是怎样工作的。x m l 一般包括3 大部分:数据、结构与显示方法。 其中,结构用于描述数据的意义、数据与数据之间的关系,而应用程序则可以使 用多种方法来显示x m l 文件中的数据。 2 2 1x m l 文档逻辑结构 逻辑结构是指文档中各个不同元素的组织结构,它代表文档构建的原则,通 常可以把x m l 文档分为序言与主体两部分。序言由x m l 的声明组成,包括版本 号、可能的语言编码、其它属性、可选的文档类型定义( d t d ) 等,其中d t d 可以 是内部的,即包括在x m l 文档中,也可以是外部的,即指向另一个文件。如: 根元素出现在序言之后,它包括了x m l 文档的剩余部分,也是x m l 文档的 主体。这一部分由元素、处理指令、属性、注释、实体引用等组成。x m l 规则要 求一个文档存在唯一的根元素。元素必须有起始标记符和对应的结束标记符,而 且应逐层嵌套,否则l 文档的格式就是不正确的,x m l 解析器有可能因此而 报错。 每个x m l 文档都由x m l 序言开始,在前面的代码中的第一行便是订l 序 言, 。这一行代码会告诉解析器和浏览器,这个文件应 该按照前面讨论过的x m l 规则进行解析。第二行代码, ,则是文档元 素( d o c u m e n te l e m e n t ) ,它是文件中最外面的标签( 我们认为元素 ( e l e m e n t ) 是起始标签和结束标签之间的内容) 。所有其他的标签必须包含在这 个标签之内来组成一个有效的x m l 文件。x m l 文件的第二行并不一定要包含文 档元素:如果有注释或者其他内容,文档元素可以迟些出现。例如: t 1 嗄a 卜j s1 g 也 9 第2 章x m l 技术与数据库集成 x m l 文档中能出现的有效对象是:元素、属性、注释、和处理指令。 2 2 2x m l 与数据库的转换 当前,数据库是存储【1 6 】和管理数据的重要工具。x m l 作为数据交换中的媒 介,它的内容可能源于数据库,也可能来自最终被保存到数据库中。因此,x m l 与数据库的关系非常重要。这就需要有一个转换的模型,使得x m l 能够与现有 关系数据库管理系统实现自由的数据的传递与转换。建立模型后,就可以通过 x m l 作为中介数据结构,实现在不同结构的数据库之间的数据转换。x m l 为异 构及不同平台的关系数据库,提供了数据传送的平台,加上它强大的网络功能, 使得x m l 的应用能够延伸到网络,并且具有与平台无关的特性。 在现实当中,以数据为中心和以文档为中心的文档之间的差别不一定很明显。 例如,另一种以数据为中心的文档比如发票,可能含有大粒度的、结构不规则的 数据比如零件说明;另一种以文档文中心的文件如用户手册,可能包含细粒度的 结构规则的数据( 通常为元数据) 比如作者和修订日期。其它例子包括法律和医学 文书,虽然以松散的形式写成但是却包含离散的数据块例如日期、名称和操作程 序,出于法规的原因通常要以完整的文件形式存储。 除此之外,弄清文件的这两种特点有助于选择数据库的类型。一般来说,将 数据存储于传统的数据库,例如关系型,面向对象型或层次型数据库。这可由第 三方的中间件完成或由数据库本身提供内在支持。对于后者,该数据库被称作支 持x m l 的( x m l e n a b l e d ) 。文档可被存储在原生( n a t i v e ) 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 与数据库的数据转换技术和应用面世, 如a d o 、d b 2 x m l 、o d b c 2 x m l 、a s p 2 x m l 等等。这些技术实现了关系数据 库和x m l 文档之间的数据转换。但是要求与关系数据库相互转换的x m l 文档只 能是二维表格形式的。现在在关系数据库中支持x m l 数据管理的产品和方法进 行了有趣的结合。主要有三种商业数据库产品:毋md b 2 ,o r a c l e 9 i 。和s q l s e r v e r 。m m 公司提供的x m l 数据管理和信息集成产品的技术和体系结构都 比较成熟,通过d b 2 x m le x t e n d e r 扩展了s q l 和对w 曲s e r v i c e 的支持,实现了 对d b 产品功能的补充。 山东轻工业学院硕士学位论文 2 3x q u e r y 查询处理 w 3 c 对x q u e r y 的定义是:x q u e r y 是一种标准的查询语言,能够结合标准文 档、数据库、w e b 网页及各类形式的数据表示,它被广泛的应用于各领域,功能 强大且易学。x q u e r y 代替了专有的中间件语言和w 曲应用开发语言。并且能够 将复杂的j a v a 或c + + 程序用简单的几行代码表示清楚,它相比其他替代语言更使 工作简单易行。x q u e r y 有很多实现模型,w 3 c 组织的x m l 查询工作组网站提 供了详细的列表,根据所具有的x q u e r y 引擎可以方便的进行查询处理。 一种比较恰当的定义是:x q u e r y 是对x m l 数据集进行查询的,x m l 数据不 仅指x m l 文档,还指一切看起来像x m l 的数据,x q u e r y 对于x m l 数据,就 像s q l 对于关系数据一样,用来查找x m l 文档里节点的集合【15 1 。这种使用x m l 结构的智能查询语言能够表达所有基于这些数据的查询,无论数据是物理存储在 x m l 中,还是通过中间件被看成是x m l ,x q u e r y 查询语言被设计成能够在多种 x m l 数据元中广泛应用的语言。 每个x q u e r y 查询都包括一个或多个表达式,常用的x q u e r y 表达式有:路径 表达式、序列表达式、算术表达式、f l w o r 表达式、条件表达式、构造器、定 量表达式等。 x q u e r y 查询数据模型的处理过程大致如下几步: ( 1 ) 产生x q u e r y 查询模型: x q u e r y 实际上是完成数据模型实例之间的转换,因此x m l 数据在x q u e r y 执行之前应该以数据模型的形式存在。x q u e r y 对这个数据模型的实例执行查询, 其返回结果是另一个数据模型的实例。如果要将结果返回给用户,就需要将这个 结果再转换成为x m l 数据,其中就涉及到两个步骤,首先是数据模型的产生, 其次是数据序列化过程: 输入的x m l 文档经过x m l 解析器进行解析,解析之后产生一个x m l 信息集。如果此文档与一个或多个模式关联,则还要根据这些模式进行验证。验 证的结果是一个抽象的信息集,称为后模式验证信息集。 将x m l 信息集或者后模式验证信息集转为数据类型,这个转化过程通过 一组映射规则实现的。 x q u e r y 中本身提供了构造器,用来在查询中构造x m l 结构。构造器能构造 元素、属性、文档、文本、注释以及处理指令结点。通过直接构造器或计算式构 造器来使用x m l 式的表示方法或闭合表达式的表示方法。 ( 2 ) 查询数据模型序列化 序列化是将数据模型中的结点和原子值序列转换为字节流的过程。w 3 c 组织 关于序列化方面有相应的标准“x s l t 2 0a n dx q u e r y l 0s t e r i l i z a t i o n ”。序列化的 第2 章x m l 技术与数据库集成 过程有以下几步: 将所读取的数据模型进行规范化处理,消除冗余与关系范式的不合理现 象,实际上进行序列化的是其规范化形式。 产生标记序列,将产生元素的开始和结尾标记、x m l 声明标记。 编码规范化,将字符扩展后所有的字符信息流进行u n i c o d e 规范化。 字符编码,将前面产生的所有的字符流转换为所需的字节流表示。 ( 3 ) 模式导入 根据查询中的模式定义导入外部模式,将序列化好的查询数据提供给外部模 式。由模式导入转换成可供表示的对外查询。 ( 4 ) 静态查询分析 在静态查询分析阶段,查询被转换成一种称为查询操作树的内部表示,它与 s q l 查询类似。通过静态上下文的初始化,并反映序列、模式定义中的信息,在 根据静态上下文就可以对类型名及函数名进行解析。若不符合静态上下文的名字 将引发错误。同时要规范化操作树,即将所有隐式的操作变为显式操作,并将有 效的查询布尔值抽取出来。 ( 5 ) 动态计算模式 当静态查询分析没有出现错误,就进入了动态计算执行阶段。在动态计算模 式下,查询的执行依赖于查询操作树、输入的数据和序列化数据流。将查询表达 式执行时能够访问到的所有信息称为动态上下文。动态上下文包括外部查询环境 中的信息和静态上下文中得的信息。同时在执行阶段,有可能会产生新的数据模 型相关的数据信息。 2 4x m la p i 围绕x m l 出现的应用编程接口【 1 ( a p i ,a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e ) 对 于x m l 应用开发来说无疑是十分重要的。应用开发者可以使用这些标准的接口 来获得和设置x m l 文档中的元素、属性、数据内容等,在基于x m l 的数据集成 系统中,这些标准接口也就用来提取x m l 文档中规定的数据的结构以及有用的 数据内容。在x m l 的应用编程接1 2 l 中,最重要的是w 3 c 制定的d o m 和s a x , 下面对它们进行简单的介绍。 ( 1 ) d o m ( d o c u m e n to b j e c tm o d e l ,文档对象模型) :d o m 将x m l 文档作为 一个树形结构,而树叶被定义为节点。x m ld o m 定义了所有x m l 元素的对象 和属性,以及访问它们的方法( 接口) 。d o m 利用对象把文档模型化,这些模型不 仅描述了文档的结构,还定义了模型中的对象的行为。 图2 2 显示了d o m 解析模型的树型结构【1 8 , 1 9 1 。文档是所有d o m 树的根,这 山东轻工业学院硕士学位论文 个根至少有一个子节点,即根元素,它是示例代码中的c a t a l o g 元素。另一个节点 是d o c u m e n t t y p e ,用于d t d 说明,在我们的示例中没有定义。c a t a l o g 元素有子 节点,它的子节点也有自己的子节点。子节点可以是元素、文本、注释、处理指 令以及类似的信息。 应用程序 e l e m e n tb o o kt e x tc o m m e n t s a t t ri d = ”1 2 l ”e l e m e n ta u t h o re l e m e n ta u t h o re l e m e n tp r i c e t e x tx 几i nan u t s h c ! lt e x tb l o t t e r , r u s t ye l e m e n t3 9 图2 2d o m 解析模型的树型结构 下面的例子显示了d o m a p i 的用法。这个示例代码从上一个x m l 文档中打 印出一个目录下所有书籍的名称。 a n 载解析器 d o m p a r s e rp a r s e r = n e wd o m p a r s e r 0 ; 载入文档 p a r s e r p a r s e ( ”b o o k s x m l ”) ; d o c u m e n td o c u m e n t = p a r s e r g e t d o c u m e n t 0 ; 找出各个t i t l e 元素的所有d o m 元素节点 n o d e l i s tn o d e s2 d o c u m e n t g e t e l e m e n t s b y t a g n a m e ( ”t i t l e ”) ; w h i l e ( i n ti = o ;i n o d e s 1 e n g t h ( ) ;i + + ) e l e m e n tt i t l e e l e m = ( e l e m e n t ) n o d e s i t e m ( i ) ; 确证第一个子节点在元素的开始和结束标记之间包含了文本 n o d ec h i l d n o d e - - t i d e e l e m g e t f i r s t c h i l d 0 ; i f ( c h i l d n o d ei n s t a n c e o ft e x t ) 1 3 第2 章x m l 技术与数据库集成 打印目录 s y s t e m o u t p r i m l n ( ”b o o kt i t l ei g :”+ c h i l d n o d e g e t n o d e v a l u e o ) ; ) ) 这个程序获得x m l 文件名并建立d o m 树,通过使用g e t e l e m e n t s b y t a g n a m e ( )

温馨提示

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

评论

0/150

提交评论