(计算机应用技术专业论文)xml在关系数据库中存储技术的研究与实现.pdf_第1页
(计算机应用技术专业论文)xml在关系数据库中存储技术的研究与实现.pdf_第2页
(计算机应用技术专业论文)xml在关系数据库中存储技术的研究与实现.pdf_第3页
(计算机应用技术专业论文)xml在关系数据库中存储技术的研究与实现.pdf_第4页
(计算机应用技术专业论文)xml在关系数据库中存储技术的研究与实现.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)xml在关系数据库中存储技术的研究与实现.pdf.pdf 免费下载

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

文档简介

大连理r 人学硕士学位论文 摘要 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 ) 是继h t m l 之后发展起来的一个重要的 i n t e m e t 技术。已经成为i n t e m e t 上数掘表示和交换的新标准。随着w e b 应用的迅猛发 展,x m l 数据量与日俱增。为了充分发挥仉这一新技术的潜能,x m l 文档的有效 存储就成为了急需解决的关键问题。关系型数据库凭借强大而可靠的数据管理服务成 为了解决这一问题的重要途径。然而由于复杂的树形x m l 文档和简单平坦的关系型数 据库表结构之间固有的不匹配,使得x m l 到关系型数据库的映射r 实现十分困难,因此 成为当前的一个热门研究课题。 论文中对当前已有的x m l 文档的存储映射策略进行了深入地探讨,详细阐述了各 种存储映射策略的优点、缺陷、适应性及性能。在此基础上设计并实现了一个在关系型 数据库中存储查询x m l 文档的全面、通用的x r 原型系统。 在x - r 原型系统中映射策略的选择是通过对输入的x m ls c h e m a 添加标注来实现 的,然后对添加了标注的x m ls c h e m a 进行解析,从而得到相应的关系模式;与此同时 映射信息被保留在映射知识库中;文档分割导入模块根据映射知识库的信息将文档进行 有效地分割,产生相应的表中的记录;查询转换模块也是通过访问映射知识库的信息来 完成x m l 查询到s q l 查询的转换。各功能模块之间相互独立。标注的设计考虑到不同 的映射策略通过添加不同的标注,x - r 原型系统可以使用不同的映射策略,甚至可以 扩展到将来提出的新的映射策略。考虑到各种应用类型,x - r 原型系统中给出的标注可 以表示边表、基本内联、共享内联、混合内联等映射策略,这些策略基本上可以满足各 种应用的需求。x r 原型系统可以使用不同的关系型数据库作为后台数据库,具有很好 的可移植性。 整个系统的设计立足于通用、灵活、易于使用、可移植并且可扩展。论文的最后 以u d b 为后台数据库对x - r 系统进行实例测试和验证,结果很好a 关键词:x m l 存储:映射技术;关系数据库:标注:映射知识库 一一 茎! 些鱼薹墨塑塑壁生壹堡垫查塑堡窒生壅塑 r e s e a r c ha n d i m p l e m e n t a t i o no f x m l s t o r a g et e c h n o l o g y i n r e l a t i o n a ld a t a b a s e s a b s t r a c 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 ) i sa l li m p o r t a n t n t e m e tt e c h n o l o g yf o l l o w i n gt h e h t m l i th a sb e c o m et h en e ws t a n d a r df o ri n t e m e td a t ar e p r e s e n t a t i o na n de x c h a n g e t h e v o l u m eo fx m ld a t ai si n c r e a s i n gw i t ht h ep o p u l a r i z a t i o no fw e b a p p l i c a t i o n i ti sc r i t i c a lt o h a v ee f f i c i e n tm e c h a n i s m st os t o r ex m ld o c u m e n t st o e x p l o i tt h ef u l lp o w e ro ft h en e w t e c h n o l o g y d e p e n d i n g o nt h ep o w e r f u la n dr e l i a b l ed a t am a n a g e m e n t s e r v i c e s ,u s i n gt d b m s t os t o r ex m ld o c u m e n t sb e c o m e sac o n s i d e r a b l ea p p r o a c ht os o l v et h ep r o b l e m h o w e v e r , d u e t ot h em i s m a t c hb e t w e e nt h ex m l st r e es t r u c t u r ea n df l a tr e l a t i o n a lt a b l e s ,m a p p i n gx m l d o c u m e n tt or e l a t i o n a ld a t a b a s ei sa l li n v o l v e dp r o b l e m s oi tb e c o m e sa p o p r e s e a r c hd i r e c t i o n t i f f sp a p e rs t u d i e san u m b e ro fs t r a t e g i e sf o rs t o r i n gx m ld o c u m e n t si nr d b m sa n d i l l u s t r a t e st h e i ra d v a n t a g e sa n dd i s a d v a n t a g e s ,a d a p t a b i l i t ya n dp e r f o r m a n c e t h e na nx m l - t o - r e l a t i o n a lp r o t o t y p es y s t e mx - rw a s p r o p o s e d t h a ti sc o m p r e h e n s i v ea n dg e n e r i c m a p p i n gi nx ra r ed e f i n e dt h r o u g ha n n o t a t i o n si n a ni n p u tx m ls c h e m a r e l a t i o n a l s c h e m a sa r eg e n e r a t e dt h r o u g hp a r s i n gt h ea n n o t a t e dx m ls c h e m a , t h em a p p i n gi n f o r m a t i o ni s h e l di nt h em a p p i n gr e p o s i t o r y t h ed o c u m e n ts h r e d d e ra c c e p t sa si n p u tad o c u m e n ta n d a c c e s s e st h ei n f o r m a t i o ni nt h em a p p i n gr e p o s i t o r yt og e n e r a t et h er e c o r d sa n dp o p u l a t et h e t a b l e si nt h er e l a t i o n a ls c h e m a t h em a p p i n gr e p o s i t o r yi sa l s oa c c e s s e db yt h eq u e r y - t r a n s l a t e m o d u l e , w h i c hg e n e r a t es q lq u e r i e sf r o mx m lq u e r i e s m o d u l e sa r ei n d e p e n d e n t v a r i o u s m a p p i n gs t r a t e g i e s w e r et a k e ni n t oa c c o u n to fd e s i g n i n ga n n o t a t i o n s b yu s i n gv a r i o u s a n n o t a t i o n st h es y s t e ma r ec a p a b l eo fu s i n gaw i d er a n g eo fe x i s t i n gm a p p i n gs t r a t e g i e sa n d e a s i l ye x t e n s i b l e t on e w m a p p i n gs t r a t e g i e s c o n s i d e r i n go f v a r i o u sa p p l i c a t i o n s t h ea n n o t a t i o n s i nx - rc a ne x p r e s st h es t r a t e g i e so fe d g et a b l e ,b a s i ci n l i n i n g ,s h a r e di n l i n i n g ,h y b r i di n l i n g t e c h n i q u e sa n ds oo n w h i c hc a ns a t i s f yv a r i o u sr e q u i r e m e n t x ri sp o r t a b l ea n d c a l lb eu s e d w i t ha n yr e l a t i o n a ld a t a b a s eb a c k n d 、 t h es y s t e mi sg e n e r i c ,f l e x i b l e ,e a s yt ou s e ,p o r t a b l ea n de x t e n d a b l e i nt h e e n do f t h i sp a p e r , a c o m p l e t ee x a m p l e i sg i v e nt oi l l u s t r a t ea n dt e s tx - ra n dt h er e s u l ti ss a t i s f y i n g k e y w o r d s :x m l s t o r a g e ;m a p p i n gt e c h n i q u e s ;r e l a t i o n a l d a t a b a s e ;a n n o t a t i o n ; m a p p i n gr e p o s i t o r y - i 卜 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究 工作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 大连理工大学或其他单位的学位或证书所使用过的材料。与我一同工作 的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢 意。 作者签名:二陧! 茸一日期: 大连理i :火学硕士学位论文 引言 随着i n t e m e t 技术的迅猛发展,电子商务等网络应用已经逐步渗透到各个领域。企 业、团体、个人都在以不同的方式,不同的介质,不同的网络平台等形式加入到 i n t e m e t 当中。网络间信息交互,数据交换一时间迅猛增加,其规模,数量及数据结构 复杂度不断的增长,这就迫切需要一种统一的功能强大的数据表示格式作为数据的载 体,进行数据交换。而传统的网页格式的h m t l 等就显得力不从心,不能够满足复杂 的数据交换的需求。于是,可扩展的标 己语言x m l 登上了i n t e m e t 的大舞台。 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 数据存储方面的研究,很多学者也提出了很多不同的策略。 s a n t e b o u l 给出了用文本文件来存储x m l 文档的策略峨j a g a d i s h 给出了n a f i v e - x m l 数据库系统【2 】,它揭示了半结构化数据模型的特征。而众多的其它方法是将x m l 数据 存储在关系数据库中,例如f l o r e s c u 等提出的就是根据x m l 数据文档的d o m 模型, 将d o m 模型中的节点和边映射到关系模式的策略”1 。而j s h a n m u g a s u n d a r a m 提出7 根 据x m l 文档的d t d 信息,得到相应的关系模式的映射策略1 4 j 。而p h i l i pb o h a n o 等给 。 一型生垄茎墨墼塑堕! 堡堡垫查盟塑壅兰塞翌 出的l e g o d b 是一个基于成本的x m l 存储策略,是一个权衡利弊找出最适合给定应用 的映射策路口】。而s t o r e d 通过数据挖掘的方法,对x m l 文档进行分析,“发现”其 中的模式,对每个“发现”的模式,将其映射到数据库中的一张表:而对于不属于任何 模式的信息,将其放在数据库以外的一个半结构化存储中f ”。当需要使用这些信息时, 毫无疑问的对x m l 文档的查询或是重构都会带来很大的影响。 目前也有学者给出了一些原型系统,r b o u r r e t 等提出了x m l d b m s 系统是一个 x m l 和关系数据库之间进行数据转换的中间件 ”,面s i h e m 等提出了m x m 和 i m x m 8 , 9 1 ,其中m x m 存储映射的信息,可以映射有模式和无模式的文档,m x m 自 定义了一个包含x m l 文档到关系模式映射信息的s c h e m a 文档,容易扩展,而i m x m 提供了访问m x m 的a p i 。在映射的过程中把转换的信息保存在x m l 文件中。另外, 一些商用数据库系统如o r a c l e ,d b 2 ,s q l s e r v e r 等 1 0 - 1 2 】产品也提供了不同程度的对 x m l 的支持。但是这方面的研究还是一个开放问题,目前给出的各种方案都存在着一 定的问题。国内对这方面的研究还处于探索阶段,未见显著成果。 通过对当前这一课题的国内外研究现状分析,设计并实现了一个在关系数掘库中存 储管理x m l 文档的原型系统x - r 。其中最核心的部分就是x m l 文档到关系数据库中 的映射机制。本文的主要工作包括:归纳x m l 相关的技术;分析了当| ;i 典型的x m l 文档到关系数据库映射策略;将基于标注的思想和当前典型的映射策略相结合,以更好 地适用不同的应用需求。设计劳实现了一个x m l 文档在关系数据库中存储管理的原型 系统x - r ,该原型系统可以方便地采用多种映射策略在关系数据库中存储x m l 文档, 原型系统还提供了通用的数据分割导入和查询转换功能。 论文的组织如下: 引言:介绍课题的研究意义,国内外研究状况,本文的研究工作,本文的组织结 构等。 第一章:介绍x m l 语言及x m l 相关的一系列技术,侧重于介绍本论文所使用到 的技术。 第二章:结合实例,分析了当前x m l 文档到关系型数据库的典型映射策略。给出 了各种策略的优缺点,适用性。 第三章:给出了基于标注的映射策略,详细说明了标注属性的含义,使用,如何表 现不同的映射策略。 第四章:给出了x - r 原型系统的总体架构设计,定义了各模块的功能。 2 - 大连理r 大学硕士学位论文 第五章:给出x - r 原型系统各模块涉及到的主要算法设计,x - r 原型系统实现所 用到的重要类的结构。给出了一个较完整的例子以演示原型系统的功能和效果。 最后是本文的总结与展望,提出了需要改进的几个方面。 3 - x m l 在关系数据库中存储技术的研究与实现 1 x m l 相关技术简介 1 1 x m l 的起源和概念 1 1 1x m l 的起源 世界上第一种标记语言是由g m l 于1 9 6 9 年发明的,用于支持文档处理应用。 1 9 7 4 年出现了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 pl a n g u a g e ,标准通用标已语言) , s g m l 是一种高度复杂的用于定义各种文档处理规则的元语吉。它提供了描述文档所必 需的公共框架,它是一种指示文档的标准或标记集的标准。它是基于文档应该有结构和 语义结构的思想而设计的。它不关心语义元素的显示,而只关心语义元素的组织。其应 用领域从飞机制造业的技术文档到音乐符号的标记,名目繁多。但是s g m l 过于庞 大,不容易学习和使用,实现也比较困难,因此没有真正的推广。 h t m l 是s g l v i i 。的一个实例,是s g m l 针对网络的一个应用。h t m l 曾经为网络 带来了勃勃生机,但是它的标签集合和文档格式作为标准固定下来,缺乏扩展性。因 此,随着w e b 应用的f :! | 益广泛,h t m l 在很多方面限制了网络的进一步发展。尽管 h t m l 推出了一个又一个新版本,但是始终不能满足不断增长的需求,不断出现的脚本 语占等解决方案就是一个例证。因此,h t m l 不能作为定义其它标汜语言的元语言。除 此之外,由于h t m l 更侧重于数据的描述,而不关注数掘的语义,这使得网络搜索、 智能代理等网络应用十分不便大大影响了实现的效率。x m l 就是在这种情况下应运 而生的。 x m l 是由w 3 c ( w o r l dw i d ew e bc o n s o r t i u m ,万维网协会) 于1 9 9 8 年2 月发布 的一种标准,x m l 也是s g m l 的一个简化子集。与h t m l 不同的是,x m l 能定义文 档类型,因此也可以像s g m l 那样作为元语言来定义其它标记语占。x m l 的精髓是基 于信息描述的、能够体现数据信息之间逻辑关系的、可以确保文件的易读性和易搜索性 的自定义标记。x m l 的主要用途有两个,一个是作为元标记语言,定义各种实例标记 语言标准;二是作为标准交换语莆担负起描述交换数据的作用。x m l 在互联网上扮 演了“国际语言”的角色。 1 1 2x m l 文档的基本结构及特点 x m l 文档是基于文本格式的,x m l 文档的最基本构成包括x m l 声明,处理指令 和x m l 元素三部分。另外还可以有注解,元素中还可咀包含属性或者子元素等。x m l 声明般出现在文档开头部分,确认书写文档的语言,并且提供版本号。元素是文档的 4 大连理i 大学硕士学 : ) = 论文 主要逻辑部件,它是由开始标签和结束标签界定。属性是元素的性质,属性表述了元素 的开始标签内的信息,在结构上构成了“名值”对。处理指令是根据信息给软件应用 程序使用的标记。由 字符组界定。x m l 中的注释以 ! 一开始,以结束,注释 可以出现在文档的任何位置。 另外,一个x m l 文档必须满足两点:良构和有效。遵循x m l 语法的文档叫做良 构的文档,可以表达一定的语义信息。而一份附带有外部或内部d t d 或者x m l s c h e m a 的良构的x m l 文档,并且x m l 文档本体符合d t d 或者x m ls c h e m a 所声明 的文件格式的x m l 文档才称为有效的x m l 文档。关于d t d 和x m ls c h e m a 的内 容,在后面的章节中叙述。一个良构的x m l 文档,需要满足以下几项基本原则: ( 1 ) 文档以x m l 声明 开始: ( 2 ) 有一个包含所有其它内容的根元素; ( 3 ) 所有元素必须合理的嵌套; ( 4 ) 起始标签和结束标签应当匹配:结束标签必不可少,不能像h t m l 里面那样随 便; ( 5 ) 大小写应该一致:x m l 对字母的大小写是敏感的,同时。x m l 不忽略空格; ( 6 ) 属性必须在单引号或双引号中,在结构上构成了“名一值”对; ( 7 ) 标签和属性的命名必须是合法的,元素中的属性是不允许重复的; 1 1 _ 3x m l 的语言恃点 x m l 语言的优秀特点主要体现在以下四令方面l 】4 】: ( 1 ) 简洁性 x m l 文档语法包含一个非常小的规则集,使开发者能立刻开始工作。x m l 严格的 定义和规则集使人类和机器都能更容易地阅读文档。x m l 文档建立在基本嵌套结构的 一个核心集的基础之上。当一层又一层增加的细节,使结构变得越来越复杂时,作者或 开发者只需要为内部结构的复杂化付出非常少的努力。这些基本结构可以被用来代表复 杂的信息集合,而不需要改变结构自身。x m l 的语法解析器也非常容易创建。 ( 2 ) 可扩展性和丌放性 x m l 可以进行扩展,有一些附加标准可用以向核心的x m l 功能集增加样式、链 接、和参照能力。作为一个核心标准,x m l 为可能产生的别的标准提供了一个峰实的 基础。 x m l 的标准完全开放的,可以免费获得。x m l 使用的是公开、非专有格式,允许 不同专业开发与自己特定领域有关的标记语占,不受版权、专利、商业秘密等知识产权 5 茎! 些奎茎墨塑塑堕主查堕垫查堕婴塞兰塞垫 的# 艮制。x m l 的开放性决定了它可成为异质系统之间进行交流的媒介,各系统只要装 有x m l 解析工具,便可理解以x m l 为中介由其它系统传送的信息并加以幂用,而不 用考虑对方的信息格式或使用特殊的软件而完成跨平台的交流,这有力地促进了电子商 务和w a p 的发展。 ( 3 ) 数据的结构性 x m l 是可扩展的标记语亩,这种格式不仅仅能够以统一的格式定义数据,甚至能 够封装与表示数据。这一特点,使x m l 能够在i n t e m e t 行走,成为数据交换的中介 者,作为一种中介数据库语言开发数据库,在异种数据之间,异种数据库之间,提供交 换信息的平台。 ( 4 ) 互操作性 x m l 可以在多种平台上使用,而且可以用多种工具进行解释,并且能够与多种丌 发语言一起打造不同需求的应用。例如:它能够进行数据的多样化显示,服务器用同样 的x m l 文件来保存数据,但能够针对每个客户端不同的样式表将x m l 中的数据,各 取所需,显示到不同的客户端。因此可以说,x m l 是一种很好的多层应用的粘台荆。 l 。2 与x - r 原型系统相关的咀。技术 x m l 已经逐步成为数据表示和交换的标准。很多商业性组织和研究机构都致力于 相关技术的研究:x m l ,x s l ,) ( 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 显示出了强大的生命力,x m l 与 其相关技术的发展必将促进网络质的飞跃。 1 2 1 命名空间 命名空间是在x m l l 0 推出一年之后才发明的,用来在迅速发展的x m l 应用程序 世界中区分在同一个文档中混用的x m l 应用程序【i “。例如一个x m l 文档也许会用 p a r t 元素描述书的章节,另一个x m l 文档也许确用p a r t 元素描述汽车的零件。x m l 应 用程序需要文档之外的附加信息才能够确定如何去处理这样的一个p a r t 元素。当然很多 x m l 应用程序也许根本就没有用到命名空间。命名空间的关键思想就是,每一个元素 与一个统一资源标识符u r i ( u n i f o r mr e s o u r c ei d e n t i f i e r ) 相关联。当然u r i 标识资 源,但是不一定定位资源,它只是纯粹的字符串标识符,仅仅是利用其唯一性来帮助应 用程序区分名字,而不是要向应用程序提供一个资源,解析器也不连接服务器和下载其 中的文档,事实上可能根本就没有这种文档。由于u r i 中的许多字符在元素名中是非 法的,而且输入时太长,比较麻烦,因此u r i 可以采用基于前缀的思想。一个前缀是 6 - 大连理丁人学硕十学位论文 对一个u r i 的7 1 用,它们的对应关系在x m l n s 属性罩声明。一般x m l n s :p r e f i x 属性将特 定前缀与属性所在的元素中的特定u r i 相关联。如果一个元素类型名或者属性名中含 有冒号,则这个映射机制就把冒号前面的部分作为自口缀,冒号后面的部分作为本地名。 例如 ,前缀c a r s 与u r i h t t p :w w w c a r s c o m j x m l 相关联,会被映射n 。x m l 命 名空间没有改变对d t d 的处理没有对包含命名空间以后的有效性作出定义所以, 命名空间使基于d t d 的有效性检查复杂化。如果把命名空间机制引入有效性检查,将 是很有用的。但是d t d 除了缺乏命名空间的问题以外,还有其它很多难以解决的困 难,所以w 3 c 不再对其修修补补,而是用全新的模式机制x m ls c h e m a 来替代d t d 。 在x m ls c h e m a 中,提供了对x m l 命名空间的支持。 x m l 命名空间的重要意义在于,它增强了x m l 应用的模块性,可扩展性和可发 展性。模块性是软件工程追求的目标,利用命名空问,可以在一个x m l 文档中使用多 个词汇表的元素,并利用已有的,同这些不同词汇表相联系的不同软件模块分别处理这 些元素,从而提高了代码的重用性。可扩展性是x m l 的主要目标,用户可以通过定义 一个新的命名空间,来定义新的词汇表,新的语言。用这些语言所写的文档都是合法的 x m l 文档,并且可以利用所有的x m l 工具。因为不同的语言在不同的命名空间罩, 所以相互之间不会发生冲突。 l 2 2x p a f l l 为了在x m l 文档中查找指定的信息,w 3 c 组织推出了x m l 路径语言( x p a t h ) 标准规范 1 。x p a t h 用于在x m l 文档中定位,即为查找x m l 文档中的单个信息而定 义的一套语法规则的集合,寻址语法基于文档的物理位置或层次结构的路径。x p a t h 是 可扩展样式表语言转换( x s l t ) 的一部分,但它不仅在x s l t 标准中运用,同时也应 用在x m l 指针语言( x p o i n t e r ) 标准中以及查询语言( x q u e r y ) 标准中。 x p a t h 遵循文档对象模型( d o m ) 的路径格式,每个x m l 文档都可以看成是一棵 拥有许多节点的树,每个节点可以是以下四个类型之一:根节点( r o o t ) 、元素节点 ( e l e m e n t ) 、属性节点( a t t r i b u t e ) 、正文节点( t e x t ) 。 x p a t h 查询是n i n 2 n r g o 表达武的形式,包含定位路径n 1 n 2 n n ,输出表达式 o 。定位路径的每个定位步n i 是a x i s :n o d e p r e d i c a t i o n 的形式。 a x i s 是轴,n o d e 是节点测试( n o d et e s t ) 。轴选择移动当前上下文节点的方向,而 节点测试确定沿这个轴选择哪种节点。斜杠符( ) 将定位步组合成定位路径。前一步 选择的节点集成为第二步的当前结点集,第二步选择的节点集成为第三步的当前结点 - 7 一 x m l 在关系数据席中存储技术的研究与实现 集,等等。以斜杠符开头的定位路径表示从文档的根节点开始的绝对路径。在简化的语 法中,“n a m e ”是定位路径c h i l d :n a m e 的缩写,选择当前结点的子节点中为n a m e 那 个节点。“ l , i a m e ”是定位路径a t t r i b u t e :n a m e 的缩写,选择当前结点的属性节点中为 n a m e 那个属性节点。“”是定位路径c h i l d :n o d e 0 的缩写,选择当前节点的子节点。 “”是定位路径d e s c e n d a n t - o r - s e l f :n o d e 0 的缩写,选择当前节点和子孙节点。“”是定 位路径s e l f :n o d e 0 的缩写,选择当前节点。“”是定位路径p a r e n t :n o d e ( ) 的缩写,选择 当前节点的父节点。方括号里的p r e d i c a t i o n 称为谓词。谓词就是方括号中的x p a t h 表达 式,每个定位步可以有零个或者多个谓词用于进一步过滤节点集。这种查找方式需要在 方括号中标明子元素或特定的值,x p a t h 将返回所有与方括号中的子元素或特定值相匹 配的元素。谓词也可使用属性作为匹配条件,但属性前必须加符号“ ”。还可使用逻 辑操作来连接查找表达式,这样就可以得到各种查找表达式返回元素的连接。逻辑操作 符包括:逻辑或( o r ) 、逻辑与( a n d ) 、逻辑等式操作符( = ,= , 和! = ) 等。 如果从文档根到个元素匹配定位路径中所有元素节点的标签序列,并且满足所有 的谓词,我们说元素匹配定位路径。对每个匹配的元素,依据元素计算输出表达式的结 果加入输出结果。输出表达式可能指定元素的属性,或文本值。如果查询没有指定输出 表达式,结果集会返回元素所有内容。 x p a t h 本身有一套完整的语法说明,类似巴克斯范式。这罩我们给出x p a t h 完全定 义的一个子集。 q u e r y := l o c a t i o n s t e p + o u t p u t l o c a t i o n s t e p := t a gf f i l t e r f i l t e r := f o o p e r a t o rc o n s t a n t f o := a t t r i b u t eit a g a t t r i b u t e 1t e x t o o p e r a t o r := 1 兰1 = i i s l 1 ( c o n t a i n s ) o u t p u t := a t t r i b u t e ft e x t of c o u n t o i m a x o i m i n ( ) l a v g o i s u m o + 表示多个定位步连接构成定位路径 指出元素的子元素节点 口 指出节点的判断条件,内容为属性元素或子元素表达式 元素的属性 ) 大括号中内容可以省略 - 8 人连理i 。人学硕十学位论文 总的来说,x p a t h 的功能是定义一种语法,实现在x m l 文档嵌套的层次结构中进 行导航式访问。通过使用x p a t h ,我们可以从x m l 文件中发现各种模式。表1 1 给出 x p a t h 表达式用于对x m l 文档中的一部分进行模式匹配的例子。 12 0 0 f i r s t a 1 0 0 0 1 4 0 0 s e c o n d a b 1 2 0 0 2 0 0 2 amba2002一pubyear 。i l y p u b b o o k y e a r t e x t 0 2 0 0 2 p u b b o o k p r i c e t e x t 0 1 2 0 0 1 0 0 0 1 4 0 0 1 2 0 0 一 p u b b o o k p r i c e s u m 0 4 8 0 p u b b o o k p r i c e t y p e s u m 0 2 2 p u b b o o k p r i c e a v g 0 1 2 0 0 一 p u b b o o k i d 1 2 一 ipubbookid=2authortexto1-百一 一 9 一 x m l 住关系数据j 军中存储技术的研究与实现 1 2 3d o m 与s a x d o m 的全称是d o c u m e n to b j e c tm o d e l ,即文档对象模型。对于x m l 应用开发来 说,d o m 就是一个对象化的x m l 数据接口,一个与语言无关、与平台无关的标准接 口规范。它定义了h t m l 文档和x m l 文档的逻辑结构,给出了一种访问和处理 h t m l 文档和x m l 文档的方法。利用d o m ,程序开发人员可以动态的创建文档,遍 历文档结构,添加、修改、删除文档内容,改变文档的显示方式等等。可以这样说。文 档代表的是数据,而d o m 则代表了如何去处理这些数据。通过d o m 接口,应用程序 可以在任何时候访问x m l 文档中的任何一部分数据,因此,这种利用d o m 接口的机 制也被称作随机访问机制。利用d o m 所生成的模型都是节点树的形式。也就是说, d o m 强制使用树模型来访问x m l 文档中的信息。由于x m l 本质上就是一种分层结 构,所以这种描述方法是相当有效的。 作为w 3 c 的标准接口规范,目前,d o m 由三部分组成,包括:核- t f ( t o r e ) 、 h t m l 和x m l i 博】。核心部分是结构化文档比较底层对象的集合,这一部分所定义的对 象已经完全可以表达出任何h t m l 和x m l 文档中的数据了。h t m l 接口和x m l 接口 两部分则是专为操作具体的h t m l 文档和x m l 文档所提供的高级接口,使对这两类文 件的操作更加方便。 d o m 解析器通过对x m l 文档的解析,把整个x m l 文档以一棵d o m 树的形式存 放在内存中,应用程序可以随时对d o m 树中的任何一个部分进行访问与操作,也就是 说,通过d o m 树,应用程序可以对x m l 文档进行随机访问。这种访问方式给应用程 序的开发带来了很大的灵活性,它可以任意地控制整个x m l 文档中的内容。然而,出 于d o m 解析器把整个x m l 文档转化成d o m 树放在内存中,医】此,当x m l 文档较 大或者文档结构比较复杂时,对内存的需求就比较高。而且,对于结构复杂的树的遍历 也是一项比较耗时的操作。所以,d o m 解析器对机器性能的要求比较高,实现效率不 十分理想。不过,由于d o m 解析器的树结构的思想与x m l 文档的结构相吻合而 且,通过d o m 方式容易实现随机访问,因此,d o m 解析器还是有很广泛的使用价值 的。 s a y 的全称是s i m p l e a p i sf o rx m l ,即x m l 简单应用程序接口。与d o m 不同r s a x 提供的访问模式是一种顺序模式,这是一种快速读写x m l 数据的方式a 当使用 s a y 解析器对x m l 文档进行解析时,会触发一系列事件,并激活相应的事件处理函 数,应用程序通过这些事件处理函数实现对x m l 文档的访问,因而s a y 接口也被称 作事件驱动接口。 1 0 大连理,j :大学硕士学位论文 s a x 解析器在对x m l 文档进行解析时,触发一系列的事件,应用程序通过事件处 理函数实现对x m l 文档的访问。由于事件触发本身是有时序性的,因此,s a x 解析器 提供的是一种对x m l 文档的顺序访问机制,对于已经解析过的部分,不能再倒回去重 新处理。s a x 解析器在实现时,它只是顺序地检查x m l 文档中的字节流,判断当前字 节是x m l 语法中的哪一部分,检查是否符合x m l 语法并触发相应的事件。对于事件 处理函数本身,要由应用程序自己来实现。同d o m 解析器相比,s a x 解析器对x m l 文档的处理缺乏一定的灵活性,然而,对于那些只需要访问x m l 文档中的数据而不对 文档进行更改的应用程序来说,s a x 解析器的效率则更高。由于s a x 解析器实现简 单,对内存要求比较低,因此实现效率比较高,同样具有广泛的使用价值。 1 3 x m l 与数据库 1 3 1x m l 与数据库的结合 x m l 作为i n t e m e t 数据表示和交换的工具,已经成为了众多应用领域中的标准数据 格式。x m l 文档的存储方式极大的影响了查询处理的效率,成为一个非常重要的研究 方向。目前一些组织和学者已经给出了一些不同的x m l 文档的存储策略。这些存储策 略大致上可以分成 1 9 , 2 0 】: ( 1 ) 文本方式。这种方法就是将x m l 文档作为一个普通的文本文件直接存储在文 件系统中,此方法最明显的优点就是实现简单并且不需要专门的数据库系统或者存储管 理器。但是它有一些致命的缺点,包括每次访问x m l 文档的时候都必须要解析该 x m l 文档,极大的影响了访问效率。而且整个被查询的x m l 文档必须常驻内存,这 样能够处理的文档的大小受限。显然,这种方法只有当需要存储的x m l 文档比较简 单,数量不多时,才有一定的价值。 ( 2 ) 关系数据库系统。在关系数据库中存储x m l 文档是目前广为接受的解决办 法。采用数据库对x m l 数据进行存取和操作,将半结构化数据转化为结构化数据,通 过查询数据库柬提取,分析x m l 文档的数据。这样可利用相对成熟的数据库技术提供 的强大的数据管理服务,而且目前大量的数据都是存储在关系数据库中,基于关系数据 库进行x m l 文档数据的存储技术为将来在同一个数据库系统内对x m l 文档数据和结 构化数据协同工作打下了坚实的基础。图1 1 所示的x m l d b m s 就是一种用于进行 x m l 文档与关系数据库之间转换的中间件【7 】。它将x m l 文档看作一个有详细数据的对 象树,应用“对象一关系”映射理论将对象映射到关系数据库中。它提出了一个映射工 厂( m a p f a c t o r i e s ) 的概念,使得要存入数据库中的x m l 文档与一个映射模型进行匹 x m l 在关系数据库中存储技术的研究与实现 配。当需要进行数据转换时,协调模块首先根据d t d 文档通过映射工厂的一个映射实 体来描述d t d 与关系视图的映射关系,并对于需要特殊映射处理的数据产生元数据 ( 如列的数据类型) 和一些i n s e r t ,s e l e c t 等命令的一个实体对象,最后应用组件 ( d b m st od o m 或d o mt od b m s ) 进行有详细数据的文档对象树与数据库的转换。 在将x m l 数据转换到数据库中时,协调者应根据x m l 文档建立一个对象模型树 ( d o m ) ,并与映射实体一起提交给数据对象模型到数据库管理系统( d o mt o d b m s ) 组件,该组件返回给协调者关于怎样重新获取数据的信息。在从数据库中获取 数据时,协调者将映射实体和文档获取信息提交给数据库管理系统到数据对象模型 ( d b m st od o m ) 组件,并获取文档对象模型树。 图1 1x m l d b m s 结构 f i g 1 1t h e s t r u c t u r eo f x m ld b m s 当然也有利用面向对象数据库的存储管理来存储x m l 文档,面向对象数据库用自 身的方法、关系和语义来管理分层x m l 树,同时提供了强大的导航和连接的能力。虽 然面向对象数据库的体系结构非常适合存储x m l 数据。但是它本身技术还不成熟,这 样就限制了它的应用。 ( 3 ) n a t i v e x m l 数据库。这种数据库的设计目的就是为了存储和处理y d v l l 文档, 其基本存储单元是x m l

温馨提示

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

最新文档

评论

0/150

提交评论