(计算机软件与理论专业论文)基于xml的数据库存储和查询研究.pdf_第1页
(计算机软件与理论专业论文)基于xml的数据库存储和查询研究.pdf_第2页
(计算机软件与理论专业论文)基于xml的数据库存储和查询研究.pdf_第3页
(计算机软件与理论专业论文)基于xml的数据库存储和查询研究.pdf_第4页
(计算机软件与理论专业论文)基于xml的数据库存储和查询研究.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机软件与理论专业论文)基于xml的数据库存储和查询研究.pdf.pdf 免费下载

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

文档简介

中国科学技术大学硕士论文基于x m l 的数据库存储和查询研究 致谢 三年的硕士研究生生活马上就要结束了,同顾在中园科学技术大学八年来的生 活与学习,心中充满了感激和欣慰。在科大朐八年是我生命中最重要的一段时光, 从一个懵懂的高中毕业生到一个马上要走上社会,去实现自己理想和抱负的青年 人,在这里伴随着成长,我学到了更多的知识,结识了更多的良师益友,我常常觉 得自己是幸运的,可以来到科大,来到计算机系学习。在此论文完成之际,我谨向 这八年来关心和帮助过我的老师,同学表示衷心的感谢。 首先我要感谢我的导师岳丽华教授,师从岳老师三年多的时间,无论从生活, 科研上对我的影响都是巨大的。岳老师渊博的学识,严谨的治学态度和诲人不倦的 精神给了我很大的启迪。从岳老师那里,我学到了字斟句酌的严谨学风,正确的进 行科学研究的方法,积极乐观的生活态度。读研期间,岳老师在我身上倾注了大量 的心血,同时也寄予了厚望,整篇论文都足在岳老师的认真指导下完成的,再次向 岳老师表示最诚挚的感谢。 其次我要感谢龚育昌教授和金培权老师,龚老师丝不苟、认真负责的工作态 度和对问题犀利的把握,给我留下了深刻的印象。金老师孜孜不倦的工作作风和教 书育人的高尚品质深深感染了我。 同时还要感谢我们项目组的王强,柳刘,蔡荣峰,傅宜生,杨洋,韩恺,刘彬, 魏晶晶,韦鹏等同学,和他们的讨论,使我获益匪浅。和他们在一起生活和学习的 日子,使我感到快乐,没有他们点点滴滴的帮助,就没有今天的这篇论文。 感谢9 7 1 l 的全体同学,认识他们是我一生的骄傲。 感谢s a 0 2 0 1 1 和数据库实验室的全体同学,认识他们我感到万分的荣幸。 感谢中国科学技术大学,我一生以此为荣。 最后我要衷心感谢我的父母,没有他们的,扛养之思,就没有这篇论文。 中国科学技术大学硕士论文 基于x m l 的数据库存储和备i 匐研究 摘要 伴随着互联网的发展,传统的h t m l 数据交换方式已经越来越满足不了日益增长 的数据交换的需要。x m l 作为一种极有前途的互联网上数据交换的新格式,已经越 来越多的取代i i t m i ,成为数据交换的标准。如何在数据库中存储和查询x m l 数据已 经逐渐成为数据库界研究的热点问题。本文在前人研究的基础上,结合国内外的最 新发展动态,通过大量的资料采集、整理和分析,结合具体实例对x m l 数据库技 术的存储和查询领域及其应用进行了分析和研究。 在x m l 查询方面,现有的查询算法大都在实例级上直接对) 。她文档进行查 询。当文档很大时,查询的性能下降很快。本文提出r 一种x m l 查询算法一x q a d , x o a d 可以利用) 。v 几文档d t d 中的格式信息来减少对实例的访问次数,从而提高 查询效率。x q a d 不仅支持结构谓词外还支持值谓词查询。本文中还用实验的方法 把x q a d 算法的性能同其他x m l 查询算法做了比较,实验结果表明在查询表达式 中谓词结构较少的情况下,x q a d 算法性能 i 有较大幅度的提高。 在x m l 存储方面,本文提出了一种新的本源x m l 存储策略一e c p s t ,与其他 存储策略相比,e c p s t 的特点在于它利用路径模式树中的模式信息来对x m l 进行 存储。e c p s t 把对应到路径模式树的同一个结点的元素聚类,并把它们存储在一起。 本文中用实验的方法把e c p s t 同其他存储策略做了比较,实验结果表明对于含有环 节构的x m l 文档,e c p s q 、可以有效的减少查询时的t ( 】次数,提高查询的效率。 在上述研究基础上,设计并实现了一个简单的原型系统_ n s p s t ,在该系统中, 我们以从蛋白质数据库s w i s s p r o t 上下载的x m l 数据文档为例,把它按照 e c p s t 存储策略进行存储,并提供奁询功能,验证了e c p s t 在实际应用中的作用。 关键词:x m l ;x m l - e n a b l e d 数据库;x m l n a t i r e 数据库;存储策略:路径模式树 ! 塑型竺垫查查! :婴! :堡壅 些! 兰坚坠塑垫塑鉴童熊里! 壅墅竺塞 a b s t r a c t a l o n g w i t ht h ev i g o r o u sd e v e l o p m e n to fi n t e m e t ,t h et r a d i t i o n a ld a t a - e x c h a n g i n g m a n n e ro fh t m lc a nn o tm e e tt h en e e do fi n c r e a s i n gd a t a x m li s e m e r g i n ga sad e f a c t os t a n d a r df o ri n f o r m a t i o nr e p r e s e n t a t i o na n dd a t ae x c h a n g eo v e rt h ew e b t r i d i t i o n a l d a t a b a s ec a nn o tq u e r ya n ds t o r ex m l d a t ae f f e c t i v e l y t h e r e f o r e ,x m ld a t a b a s ew i l lb e t h ef o c u si nt h ef u t u r e h o wt oq u e r ya n ds t o r ex m ld a t ae f f e c t i v e l yi nx m l d a t a b a s ei s b e c o m i n g ar e s e a r c hh o t s p o t i nt h eq u e r y i n go fx m l ,m o s to ft h ep r o p o s e dm e t h o d se v a l u a t ep a t he x p r e s s i o n q u e r i e si n i n s t a n c e s p a c e ,i e d i r e c t l yf a c i n gt h ex m li n s t a n c e s ,s u c ha sx m lt r e e t r a v e r s a la n dc o n t a i n m e n t j o i nw a y s s p e e do f t h e s em e t h o d si s h i g h l yr e l e v a n tt ot h e a m o u n to fi n s t a n c e st h e yp r o c e s s t h e r e f o r e ,i f t h e yr u no nl a r g es c a l ex m ld o c u m e n t s , t h ee f f i c i e n c yw i l l e x t r e m e l yd e c r e a s e i nt h i sp a p e r ,an e wa l g o r i t h mo fq u e r y i n go n x m l ,x q a d ,i sp r o p o s e d a c c o r d i n gt ot h ef e a t u r e so f q u e r ya n dd t d ,t h i sa l g o r i t h m c a ng r e a t l yd e c r e a s et h et i m e so fa c c e s s i n gt h ei n s t a n c e so fn o d e st o i m p r o v et h e p e r f o r m a n c e t h ea l g o r i t h ms u p p o a sf e a t u r e sn o to n l ys t r u c t u r a lp r e d i c a t e sb u ta l s ov a l u e p r e d i c a t e s f i n a l l yw eg i v et h ep e r f o r m a n c ea n a l y s i sa n d e v a l u a t i o nb y e x p r e m e n t s t h e p r o b l e m o f q u e r y i n g x m le f f i c i e n t l y p o s e sc h a l l e n g e s f o rd a t a b a s e r e s e a r c h e r s 。t y p i c a l l y ,t h ee f f i c i e n c yo fq u e r yx m lh e a v i l yd e p e n d so nt h es t o r a g e s t r a t e g y 。i nt h i sp a p e r ,an e w n a t i v ex m l s t o r a g es t r a t e g y ,e c p s t ,i sp r o p o s e d 。e c p s t c l u s t e r se l e m e n t sr e c o r d sw h i c hm a p st ot h es a m en o d eo np a t hs c h e m at r e ea n dp l a c e t h e mc l o s et o g e t h e r tt h u st h en u m b e r so fi or e q u i r e d d u r i n gr e t r i e v a lw i l lb er e d u c e d a a tl a s tw e d e v e l o pap r o t o t y p en a m e dn s p s t ,i nw h i c hw es t o r ep r o t e i nd a t ai n x m lf o r m a t a c c o r d i n g t oe c s p t k e y w o r d s :x m l ;x m l - e n a b l e dd a t a b a s e :x m l - n a t i v ed a t a b a s e ;s t o r a g es t r a t e g y ; p a t hs c h e m at t e e 4 - 中国科学技术大学硕士论文基于x m l 的数据库存储和崔询研究 1 1 研究背景 第一章绪论 w w w 的迅速发展,使其成为全球信息传递和共享日益重要和最具潜力的资源, 电子商务、电子图书、远程教育等全新领域的需求和发展,使w e b 数据变得更加 复杂和多样化,利用传统数据库技术很难存储和管理所有不同的w e b 数据。 目前x m l 正在成为i n t e r n e t 上数据描述和交换的标准,并且将来会代替 h t m l 而成为w e b 上保存数据的主要格式。x m l 及其一系列相关的标准已广为接 受和使用,包括x m l 文档的存储、奁询、集成、索引等,为x m l 成为数据库奠定 了基础。i n t e m e t 发展的今天,数据库技术酋先要考虑的是,在数据库与i n t e m e t 之 上所架构的信息系统之间有没有可结合的共同点。事实上,x m l 与数据库的关系越 来越密切,从存储在不同介质中的数据自动的生成x m l 文档以及从不同的数据存 储交换信息,必将成为未来面向信息的i n l e m e t 的主要特点。 本论文正是基于上述背景提出的,本章余下的几个小节中,我们将简要介绍目 前x m l 数据库的研究现状,主要包括x m l 存储和x m l 查洵等方面的研究,并简 要介绍了本论文所做的r 作。 1 2x d l 数据库的研究现状 随着i n t e m e t 的发展尤其是w e b 技术的广泛应用,越来越多的应用采用了x m l 技术作为数据表示和数据交换的标准,这使得通过数据库技术对x m l 数据进行管 理变得日益重要。围绕着x m l 数据的存储。索引和查询等问题,在世界范围内展 开了广泛的研究。 i 2 1x 枷。的存储 现有的x m l 存储策略大致可被分成两大类:一种是本源x m l 存储( n a t i v e x m l s t o r a g e ) ,另一种是非本源x m l 存储( n o n n a t i v ex m ls t o r a g e ) 。区别一种存储策略 中国科学技术大学硕士论文 基于x m i 。的数据库存储和鹰询研究 是否是本源的主要是看存储它们的数据模型。本源x m l 存储是基于x m l 的数据模 型,如文档对象模型( d o m ) 和对象交换模型( o e m ) 。而非本源x m l 存储则是 基于传统的关系数据模型或者对象数据模型。在关系模型上进行x m l 路径表达式 查询的时候需要进行大量的连接操作,这个代价是很大的。和关系型数据库相比, 面向对象数据库的复台类型和继承在一定程度上有助于解决x m l 数据的不规则性。 但是,为半结构化数据设计面向对象的模式是件很困难的事情,而且在面向对象数 据库上进行一些特殊目的的处理时,要比在个成熟的关系型数据库上多做很多工 作。因此非本源方式的存储策略并不能有效解决x m l 数据的存储问题。 已有一些研究者提出了许多本源x m l 的存储策略 1 ,2 ,3 ,4 ,5 】。l o r e 2 】 和t i m b e r 3 都是使用经典的基于元素( e b ) 的策略,他们把每个元素当成一个最 小的存储单位,然后把这些元素按照先序的方式存储起来。n a t i x 4 使用基于子树 ( s b ) 的策略。根据物理页的大小,n a t i x 把x m l 文档树分成若干子树,把每个子 树作为一个记录来存储。在拆分的过程中要确保每个予树的大小尽量接近一个物理 页的大小。与上面两种策略不同,a p a c h ex i n d i c e 5 的存储模块使用的是基于文档 ( d b ) 的策略。他把整个x m l 文档作为一个单一的文档来进行存储。所有以上这 些本源x m l 存储策略的特点是都没有利用到x m l 的模式信息,但是【l 】中的研究 表明,x v i l 的模式信息对存储策略的设计起到非常重要的作用。o r i e n t s t o r e 1 1 比上 述方法前进了一步,提出了一种模式引导的基于元素的聚类( e b c ) 策略。但是e b c 的缺点是对含有环结构的x m l 文档支持不够,而在文献1 6 1 对6 0 个现实应用的d t d 的研究表明,其中有超过半的d t d 含有环结构。 1 2 2x m l 的查询 在目前对x m l 数据进行查询的方法c h 遍历x m l 文档树是一个比较基础且 比较简单的一种方法。该方法逐个遍历x m l 树中的每个结点来确定它们是否符合 路径表达式的要求,但是当x m l 文档很大时它的性能会下降。f 2 1 中提出的a m t w i g 算法通过用路径模式树索引来旺配查询自动机,利用文档巾的模式信息减少对实例 结点的访问次数,从而提高了性能。但是a m t w i g 需要先构建路径模式树,而且 a m t w i g 只支持结构谓词不能支持值谓词查询。除此之外,结构连接算法可以支持 结构谓词和值谓阋的奁洵,但它每次连接都要存储中间结果,降低了性能。 中国科学技术大学硕士论文 基于x m l 的数据库存储和直询研究 1 3 本论文的工作 本论文中,针对x m l 数据库中存在的问题和科研项目的需求,从x m l 的查洵 和x m l 的存储两个角度分别提出了一。种新思路和解决方案。 本文的主要贡献是:( 1 ) 提出了一种新的x m l 的存储策略一e c p s t ;( 2 ) 提出了 一种新的x m l 的查询算法_ x q a d ;( 3 ) 实现r 一个简单的原型系统n s p s t ,把 s w i s s p r o t 中的蛋白质数据根据存储策略e c p s t 来进行存储,并提供查 旬功能。 1 4 章节安排 本论文章节安排如下: 第一章绪论主要介绍x m l 数据的研究背景和当前关于x m l 数据库存储和查 询的研究现状,最后简要介绍本论文所做的工作: 第二章x m l 简介简单分析厂x m l 的产生背景,对x m l 的文档结构、d t d 、 以及x m l 的特点进行介绍: 第三章x m l 数据库与传统数据库的特点分析本章包括了两个主要部分,首先 介绍传统数据库,把传统的数据库的特点以及现在所面临的问题进行介绍。第二部 分对x m l 数据库一些基本概念、模型及分类进行介绍。 第四章x m l 数据库奁洵研究提 | j 一种利用d t d 的模式信息米对x m l 数据进 行查询的算法_ x q a d ,并在最后用实验的方法同其他的算法进行性能比较: 第五章x m l 数据库存储研究提出了种新的本源x m l 存储策略e c p s t , e c p s t 把对应到路径模式树同一结点的x m l 文档元素存储在一起,这样就可以减 少查询时的i o 次数,提高查询的性能。 第六章根据第五章提出的存储策略,初步实现了一个原型系统,并以一个从 s w i s s p r o t 上下载下来的生物数据为例,按照e c p s t 策略进行存储,并提供查 询功能; 第七章结束语总结本论文的研究: 作,并提出下1 步的工作目标; 最后是参考文献和蹊研期间本人发表的论文。 中国科学技术大学硕士论文 丛于x m i 。的数据库存储和查询研究 第二章x m l 简介 2 1 ) 。的产生与发展 i n t e r n e t 的发展将人们带入了个信息爆炸的时代。但网上信息的海量和无 组织性使得它只是一一个杂乱无章的信息仓库,在进行信息检索时常常发生“信息迷 向”,因而人们希望能够得到更加“智能化”的信息服务。h t m l 文档着重描述w e b 页面的显示格式,它不容易被解析、检索以及“智能化”的处理,与之相关的基于关键 词的检索技术虽然已经相对成熟,但却很难满足“智能化”信息服务的需要。在新需 求的推动下,人们提出了一种着重描述w e b 内容的可扩展标记语言x m l 。x m l 突 破了h t m l 固定标记集合的约束,用户可以根据需要来定义任意一种标签来描述元 素。x m l 是一套定义语义标记的规则,这些标记将文档分成许多部件并对该部件加 以标识。它也是元标记语言,能够用来定义与特定领域有关的、具有语义信息的、结 构化的标记语言的句法,从而有利于信息的表达和结构化组织,使数据检索和处理更 加有效 3 8 。 x m l 目前正在成为各种数据特别是文档的首选格式。由于它具有标记不同字段 ( f i e l d ) 的能力,使得搜索变得更简单和动态化,从而把企业准备扔迸废纸篓的文件变 成了进行数据挖掘的宝藏。x m l 把内容从演示格式中解放出来,使材料可以多次重 复使用。这样一来,同样的内容可以分别用于新闻发布,白皮书、宣传册、演示和 w e b 页面,对那些需要把不兼容的系统融合在一起的企、【k ,x m l 可以充当公共传 输工具,以中性格式进行数据传输。此外,x m l 还可以处理各种数据,包括文本、 图像和声音,并且可以由用户进行扩展以处理任何特殊类型的数据。x m l 的特性使 之成为在线和离线数据的共同语言。 w 3 c 制定了w e b 数据交换的标准x m l 4 6 ,它的主要优点是: ( 1 ) 支持异质系统间的相互通信。x m l 使用的是公开、非专有格式允许不同专 业开发与自己特定领域有关的标记语言,不受版权、专利、商业秘密等知识产权的 限制。x m l 的开放牲决定了它可成为异质系统之湖逃行交流的媒介,各系统只要装 有x m l 解析工具,便可理解以x m l 为中介“ 其它系统传送的信息并加以利用,而 不用考虑对方的信息格式和使用特殊的软件而完成跨,f 台的交漉,这有力地促进了 中国科学技术大学硕士论文 基于x m i 的数据库存储和查询研究 电子商务和w a f 的发展。 ( 2 ) 保值性。x m l 是s g m l 的精简网络版。s g m l 足一种有着十几年历史的国 际标准是一种用标记来描述文档资料的通用语言。它当初设计的目标之一就是为 文件提供较长的寿命,以保征新版的文书编辑软件能够对旧版的文件忠实地再现。 x m l 保留了这个特性,它是自描述的、使用非常简单的数据格式,可以用纯a s c i i 文 本来书写。同时,与压缩文件和串行的j a v a 对象不同,即使丢失一部分数据仍是可以 读取的。 ( 3 ) 开放性。结构良好的x m l 文档可以很容易进行语法分析,即使各个用户建 立与其他用户不同的x m l 应用。x m l 数据可以很容易被其他应用使用 a o 】。 ( 4 ) 结构化和集成的数据。由于x m l 足数据驱动的标识语言,文档中所有的内容 几乎都是数据和数据结构,只有关于x m l 解析器或包装程序用的指令不以数据为 主。因而,x v l l 很容易进行精确检索并可以根据多种来源集成数据并将其作为一个 文档来显示。数据可以进行重新排列,数据的各部分可以根据用户的操作隐藏或显示, 这有利于信息仓库的集成处理。总之,x m l 是元标记语言,用户可以定义自己需要 的标记。它描述的是文档的结构和语义而不是页面元素的格式化。很多商业性组织 和研究机构都致力于相关技术的研究。随着x m l ,x s l ,x p a t h ,x m l 模式,d t d , p i ,x s l t ,x s p ,j a x p t m ,s a x ,d o m 等术语的相继出现,x m l 已经逐渐显示 出了强大的生命力 3 9 】。 2 2 舭文档结构 今天,人们开始考虑用x m l 文档来存储、组织和管理i n t e m e t 上的庞大信息资 源。下面先对x m l 作一个简要的介绍。 一篇x m l 文档由标记和内容组成。) 几中共有六种标记:元素( e l e m e n t s ) ,属性 ( a t t r i b u t e s ) ,实体引用( e n t i t yr e f e r e n c e s ) ,注释( c o m m e n t s ) ,处理指令( p r o c e s s i n g i n s t r u c t i o n s ) 和c d a t a 段( c d a t as e c t i o n s ) 。下面就这几种类型的标记分别进行介绍。 2 2 1 注释 注释以“ ”结束,介于“ ”之间的全部 数据均被x m l 处理器忽略。在使用注释时应注意以f ) l 条规则: 1 注释不能出现在x m l 声明之前,x m l 声明必须是文档最前面的部分。例 如,下面这种情况是不允许的: 中国科学技术, ;= 学硕士论文 基于x m l 的数据库存储和查询研究 h e l l o ) 眦f 2 注释不能放在标记中。例如,下l f 【i 这种情况是非法的: 9x m lv e r s i o n = ”10 ”? h e l l 0 x _ m ,i 3 注释可以包围和隐藏标记。在下面的例子中, 标记及其内容被当作注 释:而且文档在浏览器中显示时不会出现,好像不存在的一样: ? x m lv e m i o n = ”1 0 ”? h e l l o ) 帆! 4 两个连字符号“一一”除了作为注释起始和结束标记的部分外,不能出现 在该注释中。例如,下面的是非法注释: 着以为着不能像下面的语句这样嵌套注释: h e l l ox 儿! ! 一 中国科学技术大学硕士论文基于x m l 的数据库存储和查询研究 n i c k 2 2 2 实体引用 实体引用是指分析文档时会被字符数据取代的置标。x m l 预先定义了5 个实 体引用,列在表22 1 中。实体引用用于x m l 文档中的特殊字符,否则这些字符 将被解释为置标的组成部分。例如,实体引用& i t ;代表小于号( ) ,否则会被解 释为个标记的起始部分。 实体引用字符 & a m p ; & i t : & q u o t ; & a p o s ; 表22l x m l 中的实体引用与h t m l 中不同,必须以一个分号结束。因此群;是正确 的实体引用写法,& g t 是不正确的。未经处理的小于号( ) 同表示“和”的符号 ( & ) 在一般的x m l 文本中往往被分别解释为起始标汜和实体引用( 特殊文本是 指c d a t a 段,将在后面讨论) 。因此,小于号同“和”号必须分别编码为& l t :和& a m p ;。 例如,短语“b e n & j e r r y sn e w y o r ks u p e rf u d g ec h u n ki c ec r e a m ”应当写成b e n & a m p ;j e r r ysn e w y o r ks u p e r f u d g e c h u n ki c ec r e a m 。大于号、双引号和撇号在它 们可能会被解释成为夏标的一部分时也必须编码。但是,养成全部编码的习惯要比 努力推测一个特定的应用是否会被解释为置标容易得多。 2 2 3c d a t 大多数情况下,出玑柏一一剥尖括号( c ,) r f j 的足置标,0 ;在尖括号中的是字符 数据。但是有一种情况例外,在c d a t a 段中所有文本都足纯字符数据。看起来与 中国科学技术大学硕士论文基于x m l 的数据库存储和咨询研究 标记或者实体相似的仅仅是它们各自相应的文本。x m l 处理器无论如何是不会解 释它们的。 c d a t a 段用于需要把懿个文本解释为纯字符数据_ 而并不是置标的情况。当有一 个包含许多 、或”字符而非置标的庞大文本时,这是非常有用的。对于大部分 c 和j a v a 源代码,正是这种情况。 如果想使用x m l 乍i 有关x m i 。的简介,c d a t a 段问样非常有效。例如,在本 b 中包含许多小的x m l 代码块,i 酊我i e 在使川t 的处q ! 器义不能顾及这些情况。但 是如果把本书转换为x v l l ,我将不得不很辛苦地用& i t ;代替全部小于号,& a m p ;代 替所有“和”字符。如f 所示: & l t ;? x m lv e r s i o n = ”10 ”s t a n d a l o n e = “y e s ”? & g t ; & i t ;g r e e t i n g & g t ; h e l l ox 儿! & i t ;g r e e t i n g & g t ; 为了避免这种麻烦,可以使用个c d a t a 段表示。个不需翻译的文本块。c d a t a 段以 结束,例如: 难一不许出现在c d a t a 段中的文本是c d a t a 的结束界定符】j 。注释可能会出现 在c d a t a 段中,但不再扮演注释的角色。也就是说两个注释标记和包含在它们之 间的全部文本都将显示出来。 因为】 不能出现在c d a t a 段中,所以c d a t a 段不能嵌套。这使得使用x m l 写 有关的c d a t a 段相对困难些。如果需要的话,必须去掉项目符号,并使用l t :、 & a m p ;和实体引用。c d a t a 段不常需要, 一咀需要时,它是非常有用的。 2 2 4 元素 7 i 素在x m l 文档中以 结束,而且不包含在注释或者c d a t a 段中。 因此,m l 标记有与h t m l 标记相同的形式。开始或打开标记以 ) 结束。例如, 中国科学技术大学硕士论文 基于x m l 。的数据库存储和奁询研究 2 2 5 属性 起始标记和空标记可以随意地包含属性。属性是用等号( = ) 分隔开的名称一数 值对。例如: f 【e l l ox f l ! 在此 元素有一个l a n g u a g e 属性,其属性值是e n g l i s h 。 标记有一 个s r c 属性,其属性值为w a v i n g l l a n d m o v 。 2 2 5 1 属性名 属性名是字符串,遵循与标记名问样的规则。这就足,属性名必须以字母或下 划线( 一) 开盘厶,名称中后续字符- f i f 以包含字母、数字、下划线、连字符和句号。其 中不能含有空格( 经常用下划线替代空格) 。 同一个标记不能有两个阀名的属性。例如,下面的例子是不合法的: 属性名是区分大小写的。s i d e 属性与s i d e 或者s i d e 属性不是同一个属性,因此以 下例子是合法的: 2 2 5 2 属性值 属性值也是字符串。如下面所示的l e n g7 | h 属性,即使字符串表示的是一个数, 但还是两个字符7 和2 ,不是十进制数的7 2 。 2 2 6x m l 文档示例 x m l 文档的元素标签之间具有层次结构,同层次的标签之间具有有序性,下面 举例说明。下页表2 2 6 中给 h 了一个x m l 文档的例子,文档中只包含了部分上述标 记。 示例x m l 文档前2 行是对x m l 文档的声明,其中第1 行给出了x m l 文档采 用的x m l 版本号。第2 行足外部d t d 使用说明,d t d 中包含的是x l v l l 的模式信 息,在本文的2 3 中将对d t d 详细介绍。第3 行足注释。从第4 行开始是x m l 文 档的实质内容。x l v i l 通过标签( t a g n a m e ) 组织数据结构,在标签之问可以包括字符 数据或者下一层次的标签。标签必须成对出现。每个x m l 文档只有唯一的根元素, 任何元素都是根元素的后代,出现在根元素内部。表中标签为l i s t 的元素即为根元 素。i i s t 元素有两个名为r e c i p e 的子元素,表示r e c i p e 元素出现两次。r e c i p e 元素有 r e c i p en a m e ,a u t h o r ,m e a l ,i n g r e d i e n t s 等予元素。其中r e c i p en a m e ,a u t h o r 等都有 个文本类型的元素作为其子节点并表示其取值。而i n g r e d i e n t s 又有i t e m 子元素, i t e m 也有“一个文本类型的元素作为其予节点并表示其取值。m e a l 除了有一个文本类 型的子元素外,还有一个可选的c o u r s e 元素作为其子元素。 ? x m lv e r s i o n = ”10 ”? c a r o ls c h m i d t c h o c o l a t ec h i pb a r s d i n n e r d e s s e r t 2 3cb u t t e r 2cb r o w ns u g a r 。 1t s pv a n i l l a 中国科学技术大学硕士论文 基于x m l 的数据库存储和查询研究 l3 4cu n s i f t e da l l p u r p o s ef l o u r l1 2t s pb a k i n gp o w d e r l 2t s ps a l t 3e g g s l 2c c h o p p e dn u t s 2c u p s ( 12 - o zp k g ) s e m i - s w e e t c h o cc h i p s p a s t aw i t ht o m a t os a u c e d i n n e r e n t r e c ll bs p a g h e t t i 1l6 - o zc a nd i c e dt o m a t o e s 4c l o v e sg a r l i c ld i c e do n i o n i t a l i a ns e a s o n i n g o r e g a n o b a s i l c r a s h e dr e dp e p p e r 表2 2 6 x m l 文档示例 2 3d t d d t d 代表文档类型定义、。一项文档类型定义应规定元素清单、属性、标记、文 档中的实体及其相互关系。d t d 为文档结构制定了一套规则。 d t d 的出现,赋予j - x m l 文档可扩展性、结构性和可验证性。正因为如此, 一一l8 - 中罔科学技术大学硕士论文 基于x m l 的数据库存储和查询研究 x m l 具备r 类似于数据库的一壮性质,人们可能利用x m i ,来组织和管理信息。与 此同时,又可以与h t m l 一样在浏览器中方便地表示,在h l t e m e t 上高效地传递和 交换。考虑到与h t m l 的兼容,d t d 并不是x m l 文档必须的成份。具有d t d 的 x m l 文档称作“v a l i d ”,否则就是“w e l l f o r m e d ”。 d t d 是w 3 c 推荐的x m l 文档类型定义标准。它描述了一个特定类型的x m l 的层次结构和能包括的内容。x m l 解析器利用d t d 来验证x m l 文档的j e 确性。 正是由于x m l 提供了d t d 的机制来捕述和定义x m l 文档的模式信息,这使x m l 数据不同于一般的半结构化数据。不过虽然d t d 提供了一定的模式信息,但是还 不全面:同时d t d 本身也是可以动态改变的。这就为x m l 的扩展提供了方便。 d t d 描述了标识语言的语法和词汇表,也就是定义了文档的整体结构以及文档 的语法。通过d t d 可以允许文档的编写者制定基于信息描述、体现数据之间逻辑 关系的自定义标记,确保文档的易读性、清晰的语义和易检索性。d t d 可以是一个 完全独立的文件,也可以在x v l l 文件中直接设定。所以,d t d 分为外部d t d ( 在 x m l 文件中调用另外已经编辑好的d f d ) 和内部d t d ( 在x m l 文件中直接设定 d t d ) 两种。比如,有几十家相互联系的、合作伙伴关系的公司、厂商,他们相互 之间的交换电子文档都足用x m l 文档。那么我们可以让所有交换的x m l 文档都使 用同样的d t d ,这是最方便的做法,同时也适用于公司内部的l 文件使用。 内部d t d 内部d t d 是在x m l 文件的文件序言区域中定义的。语法如下: ( ! d o c t y p e e l e m e n t - n a m e 1 ) 外部d t d 外部d t d 是一个独立fx ) a l 文件的文件,实际,【 也是+ 一个文本文件,只是使 用d t d 为文件扩展名。因为外部d t d 独立于x m l 文件,那么它可以供多个x m l 文件使用,就像用网一个模板可以写出多个不同内容的文件样,这多个x m l 文 件因为是引用同一个外部d t d ,所以它们的结构大致榻同。 外部d t d 的创建方式、语法和内部d t d 是一样的,外部d t d 的优点是可以 被多个x m l 文档所引剐。表2 3 给了表2 26 巾作为例子的x m l 文档的d t d 表2 3 d t d 的例子 d t d 中使用元素类型声明( e l e m e n t t y p e d e c l a r a t i o n ) 来定义x m l 文档中的元素和属 性。类型声明结构如下 d t d 中元素有以下四种类型: ( 1 ) 父元素类型。这种类型元素只可以包含子元素,没有文本值。在这种定义中 还给出x m l 文档中子元素的出现次数,可以是“十”( 出现一次或多次) ,“叫( 出 现0 次或多次) ,或者“? ”( 出现0 次或1 次) 。在上而的例子中,i n d e g r e d i e n t s 元素 可以有一个或多个i t e m 予元素。如果有多个子元素的话,同时还规定了兄弟子元素 之间的关系,可以是“,”( 顺序关系) ,如上面d t d 中的r e c i p e 元素,也可以是“i ” ( 或关系) 。 ( 2 ) 混合元素类型。这种类型元素可以包含文本或子元素。定义方式: 。在这种类型中也可以定义子元素的 出现次数,如上面的m e a l 和i t e m 元素。 ( 3 ) a n y 元素类型。x n i l 文档里该元素巾可以包含任何内容。通常只把文档的 根元素规定为a n y 类型。定义方式: ; ( 4 ) 空元素类型。这类元素在x m l 文档r l j 使用空,0 素标记,元素中没有内容。 定义方式 。 以上四种类型都可以定义元素的属性,定义方式: a t t l i s t 元素名属性名属 性类型属性有效性约束) ,。在上而例子中没有元素含有属性。通常采用图的方式来 表示d t d 的结构。将表23 所示的d t d 文档可以表示成d t d 图的形式如图2 3 所 玎i 。 图中用不同的形状表示不同类型的x m l 缔点,其中圆形表示元素( e l e m e n t ) 结 点,方形表示文本( t e x t ) 结点。带箭头的线段表示元素问父子关系。如r e c i p e 是1 i s t 中国科学技术大学硕士论文基于x i v i l 的数据库存储和查询研究 的子结点,t e c i p e _ n a m e 是r e c i p e 的子结点等等。在一些线段上标记有“秽或“+ ”, 这些符号为d t d 中的元字符。例如,从结点i n g r e d i e n t s 到i t e m 的箭头上的“+ ”符 号表示i n g r e d i e n t s 可能有一个或多个名为i t e m 的子结点,从结点i t e m 到s u b _ i t e m 的箭头上的“妒表示i t e m 元素可以有零个或多个s u b i t e m 的予元素。 2 4x m l 的特点 x m l 是开放性的,它允许各个组织、个人建立适合自己需要的置标集合,并且 这些置标可以迅速地投入使用。这一特征使得x m l 可以在各个领域中一展身手, 并且逐渐成为i n t e r n e t 上数据描述和交换的新标准,x m l 主要有以下几个特点: 1 可扩展性强:) 0 帆是元标记语言,可以根据应用的需要,创建应用于各种各样情况 下的标记语言: 2 结构性强:x i v l l 的文件结构可以嵌套到任意程度,能用米表示面向对象的等级层 次: 3 交互性好:通过使用) 0 帆,用户可以非常方便地在本地进行数据操作,不需与服务 器交互,减轻了服务器的负担: 4 语义性强:) o m 。可以自定义标记,以利于异构系统之间的数据交换和信息检索,实 现机器与机器之间的信息交换: 5 纯文本:几乎任何工具都可创建和编辑x m l ; 6 基于内容的数据标识:可以被不问程序用于不同目的: 7 可格式化:可扩展样式语言x s l 可以指定如何罹示数据。数据和显示是分离的,可 以为同一数据指定不同的样式表用于不同输出: 8 极强的链接能力:可以定义双向链接、多目标链接、扩展链接和两个文档间的链接: 9 易于处理:v

温馨提示

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

评论

0/150

提交评论