




已阅读5页,还剩64页未读, 继续免费阅读
(计算机应用技术专业论文)基于关系数据库的xml数据存储技术的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着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 ls c h e m a ,研究x m ls c h e m a 到关系模式的映射技术,实 现x m l 文档在关系数据库的存储。本文的主要内容包括:概述了现有的x m l 数据存储技术和基于关系数据库的x m l 文档映射技术,并分别对它们进行分析 比较。在此基础上,提出一种基于x m ls c h e m a 的关系映射方法,该方法是建立 在对x m ls c h e m a 中各组件的特性进行充分了解的基础上,针对不同的组件,采 用不同的转化方法,同时考虑组件的语义完整性约束;在实现x m l 文档到关系 数据库的有效存储过程中,首先将x m ls c h e m a 映射为关系模式,接着将x m l 文档中的数据抽取出来并存入该关系模式中;本文还简单研究了x m l 文档的重 构问题,并考虑最大限度的复原x m l 文档;根据本文所提出的模式映射理论, 建立了一个原型系统,对基于x m ls c h e m a 的关系映射算法进行了实验和验证, 表明对通用x m l 文档的关系化存储有比较理想的效果。 最后,本文总结了课题的研究成果,阐明了将来的研究方向。 关键词x m l ;x m ls c h e m a ;关系模式;模式映射;存储 a b s t r a c t a b s t r a c t w i mt h es h a r pi n c r e a s i n go f m ld a t a x m lh a sa l r e a d yb e c o m et h es t a n d a r d f o r m a tf o rd a t ae x p r e s s i o na n dd a t ae x c h a n g eo nt h ei n t e r n e t a tt h es a m et i m em a n y k i n d so fm e t h o d sc o m eo u tt om a n a g ex m ld a t a , s u c ha sx m ln a t i v ed a t a b a s e o b j e c t - o r i e n t e dd a t a b a s e ,a n dr e l a t i o n a ld a t a b a s ea n ds oo n a m o n ga l lt h em e t h o d so f s t o r a g e ,x m ld a t as t o r a g eb a s e do nr e l a t i o n a ld a t a b a s ei sb e c o m i n gaf e a s i b l ea n d p r o m i s i n ga p p r o a c ha n di sw i d e l yc o n c e m e di nr e c e n ty e a r sb e c a u s eo ft h ew i d e a p p l i c a t i o no fr e l a t i o n a ld a t a b a s ea n di t sm a t u r et e c h n i q u e h o w e v e r , a st h es t r u c t u r eo ft a b l e si nr e l a t i o n a ld a t a b a s ei sg r e a t l yd i f f e r e n tf r o m t h eh i e r a r c h ys t r u c t u r eo fx m l d o c u m e n t s ,i ti sd i f f i c u l tf o rt h er e l a t i o n a ld a t a b a s et o s t o r ex m ld o c u m e n t s e f f e c t i v e l y w h i l ek e e p i n gi t ss t r u c t u r ea n dd o c u m e n t i n f o r m a t i o n i no r d e rt os o l v et h i sd i f f i c u l tp r o b l e m t h ei s s u eb e t w e e nt h ex m l s c h e m aa n dt h er e l a t i o n a ls c h e m em a p p i n gq u e s t i o nb e c o m e st h ec o r ei s s u eo f r e l a t i o ns t o r a g eo fx m ld o c u m e n t s t m s s u b je c tb a s e do nx m ls c h e m ai n t e n d st oa c t u a l i z er e l a t i o ns t o r a g eo fx m l d o c u m e n t sb yac l o s es t u d yo nt h em a p p i n gt e c h n i q u eb e t w e e nx m ls c h e m aa n d r e l a t i o n a ls c h e m a 删sp a p e rm a i n l yc o n t a i n st h ef o l l o w i n ga s p e c t s f i r s t ,i to u t l i n e s t h ex m ls t o r a g et e c h n o l o g ya n dx m ld o c u m e n t sm a p p i n gt e c h n o l o g yb a s e do nt h e r e l a t i o n a ld a t a b a s ea tp r e s e n t ,t h e nw ec a r r yo nt h ea n a l y s i sa n d c o m p a r i s o n s e p a r a t e l yt ot h e m a b o v et h i sf o u n d a t i o n ,t h i sp a p e rp u tf o r w a r dam a p p i n gm e t h o d t oc o n v e r tt h ex l 订ls c h e m ai n t ot h er e l a t i o n a ls c h e m a g i v e nt h ec h a r a c t e r i s t i c so f a l lk i n d so f 舢m o d u l e s ,t h i sm e t h o da d o p t sd i f f e r e n tt r a n s f o r m a t i o nm e t h o df o r d i f f e r e n tm o d u l et ok e e ps e m a n t i cc o m p l e t e n e s sr e s t r i c t i o no fi t ss c h e m ai n f o r m a t i o n s e c o n d l y , i nt h ep r o c e s so fr e a l i z i n gt h ee f f e c t i v er e l a t i o ns t o r a g eo f m ld o c u m e n t , w er e s e a r c ht h em e t h o df r o mx m ls c h e m at or e l a t i o ns c h e m a , c r e a t ear e l a t i o n a l s c h e m a ,a n dt h e ns t o r et h ex m ld o c u m e n td a t at ot h i sr e l a t i o n a ls c h e m a t h i r d l y , w e s i m p l yi n t r o d u c eh o w t or e c o n s t r u c tx m ld o c u m e n tf r o mr e l a t i o n a ld a t a b a s es y s t e m a n dh o wt om a i n t a i nt h eo r i g i n a ll o o ko fx m ld o c u m e n t f i n a l l y , t h i sp a p e rs e t su pa p r o t o t y p i cs y s t e mb a s e do nt h em a p p i n gt h e o r yt h a tw eh a v em e n t i o n e da b o v e t m s s y s t e me x p e r i m e n t sa n dt e s t i f i e st h er e l a t i o n a lm a p p i n ga r i t h m e t i cb a s e do nx m l s c h e m a ,a n di ti n d i c a t e st h a ti tw o u l db ev e r yh e l p f u lt or e l a t i o n a ls t o r a g eo fx m l d o c u m e n t s a tl a s t ,t h i st h e s i ss u m su pt h ep r o d u c t i o n so ft h i ss u b j e c t ,a n dt h ef u t u r ew o r k s a r es u m m a r i z e d k e y w o r d sx m l ;x m ls c h e m a ;r e l a t i o n a ls c h e m a ;s c h e m am a p p i n g ;s t o r a g e i i i 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 签名:曼亟! 萑日期:21 1 墨:互 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:量垂! 趁 导师签名: 牛鼋 第1 章绪论 1 1研究背景 第1 章绪论 近年来,互联网得到了迅猛发展,它提供了全球范围的网络互联与通信功能, 其丰富的信息资源给人们的学习和生活带来了极大的便利。作为互联网最主要应 用的w e b 实际上已成为最大的信息资源库。电子商务、电子出版、远程教育等 基于w e b 的新兴领域的全面兴起使得传统的w e b 资源更加复杂化和多样化。人 们对w e b 服务功能的需求也达到更高的标准,如用户需要对w e b 进行智能化的 语义搜索和对数据按照不同的需求进行多样化显示等个性化服务;公司和企业要 为客户创建和分发大量有价值的文档信息,以及对不同平台、不同格式的数据源 进行有效的数据交换和集成等等。在这种大环境下,以简单易学、灵活通用著称 的h t m l ,随着网络应用的日益广泛,局限性逐渐明显,越来越不能适应作为 i n t e m e t 上信息交换和表示的工具了。 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 ) 作为s g m l ( s t a n d a r dg e n e r a l i z e dm a r k u p l a n g u a g e ) 的一个优化子集,它不像h t m l 那样事先定义好一组标签,而是提 供了一个标准,只要遵循这个标准,你可以灵活的定义自己的标记。x m l 不仅 能够存储数据,而且能够存储结构和语义信息,具有通用的数据表示能力,能表 示结构化、半结构化及元结构化数据,可以描述不同种类应用软件中的数据,这 使其在数据交互和信息共享方面拥有天然的优势,成为w e b 上数据表示与交换 的通用标准。 x m l 与h t m l 相比主要有以下几点优势: ( 1 ) x m l 简单,具有自我描述能力。通过语义标记来说明数据的语义,容易 理解且易于解析。这使得x m l 具有机器可读性,具体应用可以按照各种方式解 析、过滤及重构x m l 文档。 ( 2 ) x m l 具有灵活性。h t m l 的标记是预定义的,具有固定的名称及语义, 不能扩展,而x m l 的标记可由用户定义,可以被任意的扩展。x m l 的嵌套结 构可以表示各种复杂的数据结构,各种格式的数据都可以较容易的转换为x m l 数据,这使得x m l 非常适合于w e b 信息的发布和集成。 ( 3 ) x m l 具有平台独立性。x m l 可用于不同类型、系统间的交换格式的传 送,从而简化了从一个应用程序到另一个应用程序之间传递信息的工作。 ( 4 ) x m l 实现了结构、内容和显示相分离。文档类型定义( d t d ) 或x m l 模式( x m ls c h e m a ) 描述了x m l 文档的结构,即元素间的嵌套关系。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 m l 文档可以根据应用的需要以不同的风格显示。 由于x m l 的诸多优势,出现大量的x m l 数据,并且保持着快速增长,使 得对x m l 有效存储和操作方面的研究日益受到重视。同时由于关系数据库技术 的大力发展、成熟的技术和广泛的应用,使得x m l 文档的关系化存储成为研究 的一大热点。 本文所研究的就是基于x m ls c h e m a 的x m l 文档的关系化存储技术,提出 了一种映射的设计方案,并基于该方案实现了一个原型系统来验证映射技术的可 行性。 1 2研究现状与意义 目前,w 3 c 组织制定的x m l 系列标准已成为新一代的w e b 标准,x m l 的 使用已经普及到w e b 应用的各个方面,随着大量x m l 数据的出现,对x m l 有 效存储和操作方面的研究也越来越受到人们的重视。微软、i b m 、o r a c l e 等 计算机业的巨头都对它的前景看好,大批的数据库研究者们也对x m l 技术展开 了深入的研究,国外的许多大学、研究机构和各种基金都已经或正在开展x m l 数据处理技术的研究。 x m l 数据管理技术作为x m l 技术研究热点从某种意义上也说明了有许多 问题尚未解决。正因为这样,说明x m l 数据管理相关的各种技术都有待发展。 目前,在x m l 数据管理方面需解决的前沿问题主要有: ( 1 ) x m l 数据的存储。x m l 的数据存储是处理x m l 数据的首要问题。x m l 的主要存储方式为文件系统【6 】,关系数据库7 1 ,面向对象数据库【8 】和半结构化数 据仓库【9 】等。 ( 2 ) 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 的查询处理及优化,其中关键工作包括 索引的设计、查询处理的逻辑及物理优化等。 ( 3 ) x m l 视图。在w e b 环境下,x m l 视图显得比传统数据库中的视图更加 重要。面向电子商务应用,需要建立x m l 的主动视图l l o j 。 ( 4 ) x m l 索引。x m l 索引作用至关重要,x m l 数据是树结构,单纯的值索 引远不够用,需要新的索引类型。l o r e 在这方面作了许多研究【9 l ,这里参考l o r e , 列举出主要的一些索引技术。值索引:可以根据元素名或属性名和值上的谓词条 第1 章绪论 件找到满足条件的元素或属性。父子索引:可以根据元素名找到所有由该元素名 连接的父子元素对。路径索引:可以根据路径找到所有该路径可以到达的元素。 在x m l 数据管理的诸多研究热点中,x m l 数据存储是x m l 数据处理其他 问题研究的基础,因此显得尤为重要。几大关系数据库厂商在这方面的研究已经 取得了一些进展: 当前对x m l 的存储支持得较好的关系数据库主要有o r a c l e ,m i c r o s o f ts q l s e r v e r 和i b md b 2 ,并不断有新产品问世。例如,微软公司的s q ls e r v e r2 0 0 5 提供一种新的x m l 数据类型,使在s q ls e r v e r 数据库中存储x m l 片段或文件 成为可能。2 0 0 6 年夏大,i b m 发布了代号为“毒蛇”的d b 29 t 1 2 j ,它支持纯x m l 文档,通过层次型与关系型的混合管理模式,对结构化数据与异构数据进行统一 管理。或许是应对i b m “毒蛇”出洞,还未正式发布的o r a c l ed a t a b a s el l g 1 3 j 中 加入了对于二进制的x m l 文件存储,以提高数据库提取文件的速度。 包括甲骨文、微软在内的数据库厂商都在走从传统关系数据库中支持x m l 的路线【1 4 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 文档的关系数据库存储还存在一系列困难,仍有待于近一步研究、创新。 1 3本论文主要研究内容 本文主要对x m l 数据存储技术进行研究。通过查阅大量文献,在深入了解 x m l 数据存储技术目前研究现状的基础上,对基于关系数据库的x m l 数据管 理技术进行了较为深入的探讨。 首先简要介绍了x m l 的相关技术,包括x m l 的特点和应用分析、x m l 文 档有效性验证语言d t d 和x m ls c h e m a 、以及x m l 解析技术。其次对x m l 关 系数据库存储方法作了详细地介绍,指出了各个方法的优缺点。由于关系数据库 的广泛使用,以及关系数据库成熟的事物和并发控制机制。本文接下来对基于关 系数据的x m l 文档映射技术进行了深入的研究和总结,发现目前的映射技术大 北京工业大学工学硕十学位论文 多是基于模型的和基于d t d 的映射,而基于x m ls c h e m a 的映射技术较少,并 且在映射过程中,缺乏语义一致性验证。 本文提出一种基于x m ls c h e m a 的关系数据库映射模式,该方法具有如下特 征: ( 1 ) 将x m ls c h e m a 转化为x m ls c h e m a 语义图; ( 2 ) 根据x m ls c h e m a 中不同的组件采用不同的转化方法,在转化的过程中, 简化x m ls c h e m a 语义图,并且在转化的过程中充分的考虑了语义一致性的转 化; ( 3 ) 将x m ls c h e m a 转化到关系模式时,映射到两类表,分别是元数据表和 数据表,元数据表用来存储x m l 文档的结构,包括层次和顺序,而数据表是用 来存储x m l 文档中的数据; ( 4 ) 从x m l 文档中抽出数据,存储到映射好的关系模式中;对基于上面的 映射方法,简要地介绍了从关系数据库逆向转化为x m l 文档的方法; ( 5 ) 最后基于本文提出的映射理论,设计了一个原型系统来验证我们所提出 的理论。 1 4论文组织结构 本文共分六章,文章的结构安排如下: 第一章绪论,主要介绍了论文的研究背景,以及x m l 数据管理技术的研究现 状和意义。 第二章x m l 及数据存储技术的研究分析,简单介绍了x m l 的特点、x m l 模式语 言和x m l 解析技术,这是实现x m l 数据管理的基础;简单描述了x m l 文档的存储方 式,并对各种存储方式的优缺点进行分析比较;接着,详细介绍了x m l 文档到关 系数据库的映射技术,并进行了比较。 第三章是本人的主要研究问题之一,提出了) ( m ls c h e m a 中各组件的转化方 法,以及如何保持语义一致性。 第四章是本人的主要工作成果,在总结分析前几章的基础上,研究了将x m l s c h e m a 映射为关系模式,并抽取x m l 文档中的数据存储到该关系模式中,最后简 单介绍了如何重构x m l 文档。 第五章原型系统的的设计和实现。介绍了系统的架构和功能,详细介绍了 每个功能模块。该原型系统是在前几章理论研究基础上开发的,同时也是对这些 理论技术可行性的有效验证。 最后一章是对本文工作的总结和展望。 第2 章相关技术的分析及问题的提出 第2 章相关技术的分析及问题的提出 对于x m l 数据存储技术的研究,首先要对x m l 的相关技术有深入的了解, x m l 相关技术包括w 3 c 制定的一系列x m l 核心标准,作为我们一切研究的理 论基础,在本章中我们将简要介绍涉及到的x m l 相关技术;其次要对x m l 的 存储技术有深入的了解,本章的后两节对现有的存储技术进行概述,并对其进行 了分析比较。 2 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 ,可扩展标记语言) 是由w 3 c ”】于1 9 9 8 年2 月发布的一种标准,是s g m l 的一个简化集。它继承了s g m l 的强大功能, 去除了繁琐的定义,弥补了h t m l 作为网络标准语言的不足。它将s g m l 的丰 富功能和h t m l 的易用性结合到了万维网的应用中,深受软件开发商的支持和 程序开发人员的厚爱。目前x m l 在很多方面都有应用,具有如下特点: x m l 的特点 x m l 作为一种标记语言,具有严格、规范的语法,创建x m l 文档必须满 足一定的规范,依据x m l1 0 规格,所有的x m l 文档都必须是格式良好的 ( w e l l f o r m e d ) ,一个格式正确的x m l 文档必须符合以下几点要求: ( 1 ) 声明语句。x m l 声明必须以小写x m l 声明,并设置v e r s i o n 属性,必须 出现在第一行,其格式如下: ,声明的作用是告诉浏览器或者其它处理程序:这个文档 是x m l 文档。声明语句中的v e r s i o n 表示文档遵守的x m l 规范的版本;s t a n d a l o n e 表示文档是否附带d t d 文件,如果有,参数为n o ;e n c o d i n g 表示文档所用的语 言编码,默认是u t f 8 。 ( 2 ) 元素。元素组成了x m l 文档中的大部分内容,x m l 文档有且只有一个 根元素,所有元素( e l e m e m ) 构成一个层次树,元素之间必须正确嵌套。元素 由一对标记组成,结束标记匹配相应的起始标记。格式为: 内容叫标记 名 。 ( 3 ) 属性。元素可以用属性来注释,属性通常用来给元素提供所显示内容的 额外信息,出现位置为元素的起始标记中,对于一个元素来说,不能存在多个相 同名称的属性,元素大小写敏感。格式为:属性名= 属性值。 ( 4 ) 处理指令。处理指令通常用来为处理x m l 文档的应用程序提供信息, 这些信息包括如何处理文档,如何显示文档等。处理指令的出现位置可以为元素 北京工业大学工学硕士学位论文 的后裔,也可以为根元素的前面或者后面。格式为: 。 ( 5 ) 注释。x m l 注释出现位置可以为元素的后裔,也可以为根元素的前面或 者后面。格式为: 。 ( 6 ) 命名空间。x m l 允许设计者定义自己的标记名,命名空间的出现解决了 重名的情况。格式为:x m l n s :p r e f i x = u r i 。 图2 1 给 图2 1 一个良构的x m l 文档 f i b r e 2 一law e l l f o r m e dx m ld o c u m e n t x m l 的应用分析 作为互联网的新技术,x m l 的应用非常广泛,渗透到了互联网的各个角落。 借用g a r t n e r 公司的报告中的一句话:“商业公司不能再做局外人了,不能对x m l 置之不理。可见,x d v l l 的重要性,以下是x m l 的主要应用场合【l ”: ( 1 ) 数据交换。电子商务通过互联网传输和交换商务数据,并对商务数据进 行人工或自动处理,这也是x m l 的主要应用领域之一。x m l 的可扩展性和自 相容性等特点,使之成为数据交换的有力工具。 ( 2 ) 内容管理。x m l 只用元素和属性来描述数据,而不提供数据的显示方法, 它提供了一个独立于平台和语言的内容,使用象x s l t 这样的语言能够轻易地将 x m l 文件转换成各种格式文件,比如h t m l ,w m l ,p d f , f l a tf i l e ,e d i ,等等。 ( 3 ) w e b 集成。现在有越来越多的设备也支持x m l 了,为了利用互联网技 术和标准为移动设备连接互联网建立全球性的同一规范,p h o n e c o m 联合了 m o t o r o l a 等通讯公司建立了w a p 论坛,推出了w a p 规范,同时w 3 c 也定义了 基于x m l 的手持设备置标语言h d m l 。 ( 4 ) 配置管理。许多应用都将配制数据存储在各种文件里,将配制数据标记 为x m l 格式,能使其更具可读性,并能方便地集成到应用系统中去。使用x m l 第2 章相关技术的分析及问题的提f j j 配制文件的应用程序能够方便地处理所需数据,不用象其他应用那样要经过重新 编译才能修改和维护应用系统。 x m l 模式语言 x m l 模式语言负责定义和描述x m l 文档的结构和内容模式。它可以定义 x m l 文档中存在哪些元素和元素之间的关系,并且可以定义元素和属性的数据 类型。x m l 模式语言主要有两种:d t d 和x m ls c h e m a ,现分别介绍如下: 1 d t d d t d 是d o c u m e n tt y p ed e f i n i t i o n ( 文档类型定义) 的简称。它是一套关于 标记的语法规则,详细描述一组x m l 文档的结构。d t d 列出了可用在文档中的 元素、属性、实体和符号表示法,说明在文档中可以使用哪些标一记,哪些标记 可以出现在其它标记中,哪些标记具有属性,使用的标记应按什么顺序出现等。 例如,图2 2 是一个x m l d t d 的例子,图2 1 中的x m l 文档就是符合这 个d t d 的描述的: ! e i e m e n tb o o k s ( b o o k + p ! e i e m e n tn a r f l e ( # p c d a t a p 图2 2 一个ld t d 的实例 f i g u r e 2 2a ne x a m p l eo f 也d t d 在d t d 文档中,可以利用操作符幸( 0 次或多次) 、+ ( 至少1 次) 、? ( 0 次 或1 次) 、l ( 或选) 来定义子元素的出现次数。其中e l e m e n t 表示元素,a t t l i s t 表示属性,# p c d a t a 表示数据,d t d 假设所有取值都只能是字符串值。 x m l 文档中d t d 的使用方法分两种:内部d t d ,即在x m l 文档的序言部 分中直接加入d t d 的描述;外部d t d ,即d t d 可作为一个完全独立的文件, 将d t d 存储在一个后缀为d t d 的文件中,在x m l 文件中调用它。可以看出,内 部d t d 相当繁琐,通用性低,而同一个外部d t d 文件,可以被多个x m l 文档 引用;外部d t d 文件的可移植性很好,当需要修改的时候,只修改外部d t d 文件,而不需逐一修改使用了该d t d 的所有x m l 文档。使用了d t d 的x m l 文档必须符合该模板的要求,在分析阶段必须通过d t d 的有效性验证。 随着x m l 技术的广泛使用,d t d 逐渐暴露了自身存在的不足: ( 1 ) d t d 是基于正则表达式的,描述能力有限; ( 2 ) d t d 没有数据类型的支持,在大多数应用环境下能力不足; ( 3 ) d t d 的约束定义能力不足,无法对x m l 实例文档做出更细致的语义限 制: 北京工业大学工学硕士学位论文 ( 4 ) d t d 的结构不够结构化,重用的代价相对较高; ( 5 ) d t d 并非使用x m l 作为描述手段,而d t d 的构建和访问并没有标准的 编程接口,无法使用标准的编程方式进行d t d 维护。 2 x m ls c h e m a 同d t d 一样,s c h e m a 也是一种x m l 文档模式定义语言。但与d t d 不同 的是,s c h e m a 克服了d t d 的几个局限,x m ls c h e m a 与d t d 相比,有如下几 个优点: ( 1 ) x m ls c h e m a 使用标准x m l 语法,本身就是一个x m l 文档,可以直接 用成熟的x m l 文档解析器读取; ( 2 ) x m l 提供了丰富的数据类型,包括数字型、布尔型、日期型等等,并且 可以定义新的数据类型,允许对数据进行更严格的合法性检查; ( 3 ) x m ls c h e m a 支持继承性,即可利用一个已有的x m ls c h e m a 产生一个 新的) ( m ls c h e m a ; ( 4 ) x m l 支持命名空间,保证了标记的唯一性; ( 5 ) x m ls c h e m a 的扩展性好,它的内容模型是开放的,可以随意扩充、更 新等。 下面是一个x m ls c h e m a 的例子,一般,这样的模式文件保存在一个后缀为 x s d 的文件中,与图2 2 中d t d 是等价模式,同样可以描述图2 1 的x m l 文档。 x m l 解析技术 图2 - 3 一个舭s c h e m a 的实例 f i g u r e 2 3a ne x a m p l eo f 也s c h e m a 第2 章相关技术的分析及问题的提 x m l 文档实际上就是纯文本数据,使用x m l 数据格式的应用程序首先必 须能对x m l 数据进行读取、分析,进而进行处理。s a x ( s i m p l e a p i sf o r x m l ) 与d o m ( d o c u m e n to b j e c tm o d e l ) 是两种常用的x m l 应用程序接口标准。它们 在应用程序开发过程的作用如下图: 图2 4s a x 和d o m 应用体系 f i g u r e 2 4t h ea p p l i c a t i o ns y s t e mo fs a xa n dd o m 下面分别给予详细的介绍。 1 s a x s a x ( t h es i m p l ea p if o rx m l ) 即简单编程接口,第一个被广泛采用的用 j a v a 编写的x m l a p i ,是一个事实上的标准【1 8 1 。s a x 是一个通用的,基于事件 的x m l 解析的标准编程接口。s a x 是事件驱动的“推”模型,是一种基于回调 ( c a l l b a c k ) 机制的程序运行方法,即它不需要一次读入整个文档,是边读文档 边对文档进行解析,文档的读入过程就是s a x 的解析过程。从这一点来说,s a x 是一种轻量型的解析方法。 莹 e v e n th a n d l e r p 文 r e a d 挡 s a xp a _ r $ s r p 1 l hl d t dh a n d l e r e v e n t s e r r o rh a n d l 盯 c o n t e a th a n d l e r 图2 5s a x 解析模型 f i g u r e 2 5t h es a x p a r s e rm o d e l 2 d o m d o m ( d o c u m e n to b j e c tm o d e l ) 即文档对象模型,_ 个来自w 3 c 的成熟标 准【1 8 】。d o m 将x m l 文档看作是一个分层的对象模型,是一棵节点树,称为d o m 树。在d o m 树中,有一个根节点,即根元素,其它节点都是这个根节点的后代 节点,节点用来表示x m l 文档中的元素,属性、文本、注释、处理指令以及类 似的信息。 d o m 是文档驱动的,即它一次把整个x m l 文档读入内存,然后向应用程 北京工业大学工学硕士学位论文 序提供对整个文档可操作的d o m 树,可以通过这棵树来访问所需信息。d o m 解析器需要一次把x m l 文档读入内存,从这一点来讲j 它是一种重量型的解析 方法。 一 图2 6d o m 解析模型的树型结构 f i g u r e 2 6t h et r e es t r u c t u r eo fd o m p a r s e rm o d e l 3 d o m 与s a x 比较 s a x 和d o m 是两类不同的x m l 文档解析方法,两种技术各有利弊。主要 区别在于: , ( 1 ) 应用程序的目的:如果必须对数据进行更改,并且作为x m l 将它输出, 则在大多数情况下,使用d o m 。与使用x s l 转换来完成的简单结构更改不一 样,如果是对数据本身进行更改,则尤其应该使用d o m 。 ( 2 ) 数据的数量:对于大文件,s a x 是更好的选择。 ( 3 ) 将如何使用数据:如果实际上只使用一小部分数据,则使用s a x 将数据 抽取到应用程序中,这种方法更好些。另一方面,如果知道将需要向后引用已经 处理过的信息,则s a x 可能不是正确的选择。 ( 4 ) 需要速度:通常s a x 实现比d o m 实现快。 ( 5 ) 值得说明的是,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 章相关技术的分析及问题的提出 2 2x m i _ 文档存储方式 在处理x m l 数据时,首要的问题就是存储,对x m l 数据的各种处理,查 询、检索、更新都是建立在一定的存储模式基础上的。当前,x m l 数据的基本 存储方式可分为三类:文件系统、支持x m l 的数据库( e n a b l e dx m ld a t a b a s e ) 和纯x m l 数据库( n a t i v ex m ld a t a b a s e ) 【19 1 。 2 2 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 m l 文档模式信息设计关系表结构, 然后解析x m l 文档,结合模式信息,将x m l 的内容分别存储到对应的关系表 中。利用关系数据库系统来处理x m l 数据的方式具有如下的优点:一方面,当 前的关系数据库的技术十分成熟,商用关系数据库系统都具有高性能的查询引 擎,良好的可扩展性、安全性和健壮性,因此,利用关系数据库系统管理x m l 数据可以重用数据库的查询优化器和事务处理机制,能够保证x m l 数据的一致 性和完整性:另一方面,目前大量的w e b 数据主要存放在关系数据库中,采用 x m l 关系系统便于在关系数据库上建立适于二者的应用,使关系数据库进入 w e b 领域成为可能。 目前,主要的关系数据库厂商都提供了对x m l 的支持,开发出了大量的在 x m l 文档和数据库之间进行数据转换的工具,如i b m ,m i c r o s o f t ,o r a c l e ,s y b a s e 等。x s u 捆绑于o r a c l e 9 i ,能够将从关系表或视图中恢复的数据转换为x m l 。 x s u 提供了将x m l 内容映射为关系表的工具,但是,对于复杂结构的x m l 数 据,必须为了映射而进行重构。s q l x m l 捆绑于s q ls e r v e r2 0 0 0 ,使得开发者 可以将x m l 文档映射为关系表,为现存的关系映射创建x m l 视图,用) a 7 a m 北京工业大学工学硕士学位论文 查询关系数据,为s q l 查询生成x m l 结果。 纯x m l 数据库的存储方式 纯x m l 数据库( n a t i v ex m ld a t a b a s e ) 这个术语首先出现在s o f t w a r ea g 为t a m i n o 所做的营销宣传中。目前尚没有关于n a t i v ex m l 数据库的一致公认 的定义,下面是一个较为普遍接受的论述( 取自“x m l :d bm a i l i n gl i s t ”t 3 0 1 ) : n a t i v ex m l 为x m l 文档( 而不是文档中的数据) 定义了一个( 逻辑) 模 型,并根据该模型存取文件。这个模型至少应包括元素、属性、p c d a t a 和文件 顺序。这种模型的例子有x p a t h 数据模型、x m li n f o s e t 以及d o m 所用的模型 和s a x 的事件。 n a t i v ex m l 以x m l 文档作为其基本( 逻辑) 存储单位,正如关系数据库 以表中的行作为基本( 逻辑) 存储单位。 n a t i v ex m l 数据库对底层的物理存储模型没有特殊要求,即它不一定必须 建立在关系、层次或面向对象的数据库上,也不一定必须规定存储格式,如索引 或压缩文件。 从以上定义可以看出,一个n a t i v ex m ld a t a b a s e 是专门用于存储x m l 数 据或存储x m l 模型中所有构件的数据库,该数据库是文档进文档出,虽然n a t i v e x m l 数据库更适合于x m l 本身的特点。然而,纯的x m l 数据库缺乏细粒度的 数据处理能力,不适合于处理数据集中的x m l 文档。同时,这样的系统还不成 熟,数据处理的效率也不尽人意【3 1 l 。 2 2 2 现有存储方式的比较分析 通过上面的介绍,我们可以看出,现有的存储方式各有优缺点,主要表现在 以下几个方面: ( 1 ) 实现的复杂程度方面。以文件系统的方式存储实现容易,而其他两种相 对较为困
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租房协议范本模板一2篇
- 口腔中心劳动合同范本5篇
- 新解读《GB-T 31029-2014飞机垃圾接收车》
- 朝阳辅警合同范本
- 服装铺面转让合同范本
- 酒店绿化合同范本
- 2025年电力安装工程技术人员劳动合同3篇
- 家政保姆合同范本购买
- 委托加工熟食合同范本
- 工程挂靠合同范本简单
- 工程缺陷责任期终止证书版本
- GB/T 45356-2025无压埋地排污、排水用聚丙烯(PP)管道系统
- 石墨产品的国际市场推广策略
- ktv店长合同范本
- 科技辅导员培训课件
- 小学生爱国主义教育工作计划
- 电子政务教程(第三版)课件全套 赵国俊 第1-12章 电子政务概要-中国电子政务的发展基础
- 乡镇卫生院医用耗材监管制度
- 语言学概论-第三章-语义
- 2024-2025学年广东省深圳实验学校初中部九年级上学期开学考英语试题及答案
- 健康与社会照护第三届全省职业技能大赛健康与社会照护项目技术文件
评论
0/150
提交评论