(计算机软件与理论专业论文)xml数据库面向路径可扩展模型的研究与实现.pdf_第1页
(计算机软件与理论专业论文)xml数据库面向路径可扩展模型的研究与实现.pdf_第2页
(计算机软件与理论专业论文)xml数据库面向路径可扩展模型的研究与实现.pdf_第3页
(计算机软件与理论专业论文)xml数据库面向路径可扩展模型的研究与实现.pdf_第4页
(计算机软件与理论专业论文)xml数据库面向路径可扩展模型的研究与实现.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

华中科技大学硕士学位论文 摘要 x m l 自出现以来就被作为半结构化数据的典型框架。迄今为止,已经出现了一 些与x m l 数据库相关的查询和存储模型。这些模型都从不同方面涉及到 x q u e r y x p a t h 中的核,t l , 问题路径表达式的处理。目前,针对x m l 中路径结构 信息的处理,一种主要实现思路是采用基于x m l 文档路径编码的索引,通过这种 索引将路径的结构连接转换为字符串的匹配,但该方法在遇到复杂路径表达式时就 失去了作用;另一种思路是把x m l 简单分解成边或者结点集合作为表记录存储到 关系表中,但在重新查询和构造x m l 时会造成大量关系的连接;此外,这些方法 都难以实现可扩展的优化机制。 为了适应路径表达式的各种复杂情况,提出了一种x m l 结构信息量化模型, 称之为面向路径的可扩展模型( p o e m ) 。与现有的解决方案不同,该模型同时考虑 了查询和存储两个方面对路径表达式处理的适应性。它根据路径表达式查询中影响 性能的关键因素结构连接,建立了坐标映射的分解存储机制和查询方案,并通 过查询路径图对路径查询做了精确的形式化描述,从而提出了基于p o e m 的查询优 化策略和算法。然后根据该模型实现了中间件架构的x m l 数据库x m ls e r v e r 。 最后,对x m ls e r v e r 系统做了性能评估和安全上的可扩展分析。理论分析和实践 表明:基于p o e m 实现的x m ls e r v e r 可以进行x m l 安全性等多种应用需求的扩展, 且具有稳定的性能。 关键词: 中间件,面向路径的可扩展模型,路径表达式,坐标映射,结构连接,查 询路径图 华中科技大学硕士学位论文 a b s t r a c t a sa p o p u l a rs t a n d a r df o rd a t a o nt h ei n t e r n e t ,x m lu s u a l l yh a sb e e na c c e p t e da st h e f r a m e w o r kf o rs e m i s t r u c t u r e dd a t a s e v e r a lx m l q u e r ya n ds t o r a g em o d e l sh a v eb e e n p r o p o s e dt o s t o r ea n dr e t r i e v ex m ld a t ai nr e l a t i o nd b m s a l m o s te v e r yo ft h e m i n v o l v e di np r o c e s s i n gt h ep a t he x p r e s s i o nf r o md i f f e r e n ta s p e c t s ,w h i c ha r et h ec o r e p a r t so fx p a t h x q u e r y a tp r e s e n t ,t h e r ea r et w o d i f f e r e n ta p p r o a c h st op r o c e s st h ep a t h s t r u c t u r e o n eb u i l d st h ep a t hi n f o r m a t i o ni n t ot h ei n d e xa n dc o n v e r t st h es t r u c t u r a lj o i n i n t os t r i n gm a t c hp r o b l e m b u ti tw i l lb ec o n f r o n t e dw i t ht h ed i f f i c u l t yo fc o m p l e x p a t h e x p r e s s i o n a n o t h e ra p p r o a c hd e c o m p o s e s t h ew h o l ex m li n t os e t so fe d g eo rn o d e , w h i c hc a nb es t o r e di n t ot h er e l a t i o nt a b l e h o w e v e r ,i tw i l ll e a dt oam a s so fr e l a t i o n j g i n i ns h o r t ,a l lt h em e t h o d s c a n tp r o v i d et h ee x t e n s i b l eo p t i m i z a t i o nm e c h a n i s m i nt h i sp a p e rw e p r e s e n ta n e wf l e x i b l em o d e l ,c a l l e dp a t ho r i e n t e de x t e n s i b l em o d e l ( p o e m ) ,w h i c h c a nq u a n t i f yt h es t u c t u a li n f o r m a t i o nt of i ta l lt h ec o m p l e xp r o b l e m si n p a t he x p r e s s i o n u n t i k et h ee x i s t i n gs o l u t i o n s ,i tf o c u s e so nt h ep a t hp r o b l e mb o t ht h e q u e r ya n ds t o r a g ea s p e c t ss i m u l t a n e o u s l y i t b u i l d st h es t o r eo fc o o r d i n a t e m a p p i n g m e c h a n i s ma n d q u e r ys o l u t i o na c c o r d i n g t ot h ek e yf a c t o ro ft h ep e r f o r m a n c ei s s u e si n t h ep a t he x p r e s s i o ne v a l u a t i o n s t r u c t u r a lj o i n t h e n ,i tg i v et h ef o r m a ld e s c r i p t i o no f p a t hq u e r yw i t hq u e r y p a t hg r a p ha n dt h e o p t i m i z a t i o ns t r a t e g ya n da r g o r i t h m t h e n ,w e i m p l e m e n t t h ex m ls e r v e rw i t ht h em i d d l e w a r ea r c h i t e c t u r ea c c o r d i n gt ot h em o d l e a t l a s t ,t h ep e r f o r m a n c ee v a l u a t i o na n de x t e n s i b l ea b i l i t ya n a l y s i s o fx m ls e r v e ra r e p r e s e n t e d i ti sp r o v e dt h a tt h ee x t e n s i b l em e c h a n i s mo fx m l s e r v e rb a s e do np o e m c a ns u p p o r ta l lk i n d so fr e q u i r e m e n to fx m l a p p l i c a t i o n ,a n di t e x h i b i t st h eo b v i o u s a d v a n t a g ei np e r f o r m a n c e k e y w o r d s :m i d d l e w a r e ,p o e m ,p a t he x p r e s s i o n ,c o o r d i n a t em a p p i n g ,s t r u c t u r a lj o i n , q u e r y p a t hg r a p h i i 独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他 个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体, 均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 学位论文作者签名势摒 日期:乒。执矿年印月矿日l 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密口,在年解密后适用本授权书。 本论文属于 不保密囱。 ( 请在以上方框内打“”) 学位论文作者签名毋磷 日期:弘吁年争月矽日 舯教师躲舅下坞 日期:加护睁垆月埸日 华中科技大学硕士学位论文 1 1 课题的目的与意义 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 数据的存储”。63 ,查询和索引”等。但是,x m l 数据库作为一个完善的产品出现,相关技术还远未及成熟。它从概念模型到存 储与查询应用还有很多问题需要从不同方面来研究。例如,x m l 和x m l 查询需 要支持层次结构和路径表达式并包含元素值、属性以及路径的条件约束,就使 得传统数据库的关系理论难以胜任。1 。 本课题来源于国家高技术研究发展计划资助项目一通用数据库管理系统 d m 4 。课题的目的是通过建立一个灵活的分解存储和查询模型来构造一个支持 x p a t h x q u e r y 查询的x m l 中间件,该中间件可以提供可扩展的针对路径表达式 的查询优化机制,并实现对多种异质数据源进行数据集成,为企业应用提供统 一的分布式数据访问接口。 华中科技大学硕士学位论文 1 2 国内外研究概况 目前,国内外对x m l 索引和存储技术的研究所关注的角度不同产生了不同 架构的x m l 数据库产品。另外,x p a t h x o u e r y 作为w 3 c 的推荐标准也成为x m l 查询研究的重要方面,下面就对这两个方面进行详细阐述。 1 2 1x m l 数据库的分类及其各自特点 到目前为止,主要的x m l 数据库研究原型和产品基本分为以下五种类型: 与x m l 相结合能驱动x m l 的数据库,称为x m l e n a b l e d 数据库( x m l e n a b l e d d a t a b a s e ,x e d ) ;本身直接支持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 ,n x d ) ;x m l 服务器( x m ls e r v e r s ) ;内容管理系统 ( c o n t e n tm a n a g e m e n ts y s t e m s ,c m s ) ;可持久化的d o m 实现( p e r s i s t e n td o m i m p l e m e n t a t i o n s ) 。 之所以出现这么多种原型和产品,是因为x m l 最初作为数据描述和交换的 标准,更着重于统一数据格式,而不是提供数据库的特性。因此在x m l 应用中, x m l 数据的应用方式仍然不同于传统数据库,同时传统数据库作为数据管理的 作用依然也没有改变。 1 x e d x e d 是在原有数据库基础上扩展了x m l 支持模块,完成x m l 数据和数据库 之间的格式转换和传输。从存储粒度上,可以把整个x m l 文档作为r d b m s 表中 一行,或把x m l 文档进行解析后,存储到相应的表格中。为了支持w 3 c 的一些 x m l 操作标准,如x p a t h ,x e d 提供一些新的原语( 如0 r a c l e 9 i r 2 增加了一些 数据包来操作x m l 数据等) ,并优化了x m l 处理模块。而n x d 则出现在x m l 数据 处理领域内,一般采用层次数据存储模型,保持x m l 文档的树形结构,省掉了 x m l 文档和传统数据库的数据转换过程。 x e d 最引人关注的个重要的理论和实践是利用现有的关系数据库技术来 存储检索x m l 文档“3 。利用关系理论能受益于关系数据库系统中成熟的解决方 华中科技大学硕士学位论文 案。目前已经出现很多关于此方法的解决方案”1 。比如,面向“边”( x m l 树状 图元素之间的关系) 存储以及面向x m l 元素属性的索引都是利用关系数据库中 b + 树来实现的。 x e d 中主要模块的工作是由x m l 网关模块完成,它处于用户逻辑模块和数 据库逻辑模块之间,将传统数据库包装起来,给用户提供了一个透明的x m l 数 据源。 目前已经有很多x e d 产品提供了这种语言,主要分三类。 ( 1 ) 基于模板的查询 这是目前关系数据库系统支持x m l 最流行的方法,将s q l 语句嵌入到已写 好的x m l 文档模板中,在实际查询时用结果替换。 ( 2 ) 基于s o l 的查询 通过在s q l 语句的实现中增加对x m l 的支持,完成对x m l 数据的查询。例 如o r a c l e 9 i r 2 中,增加了x m l t y p e 类型和一些新的函数包以支持x m l d b 。 ( 3 ) x m l 查询 包括x p a t h 和x q u e r y 。与上面两种不同,这种查询是建立在x m l 文档模型 上。也就是说,如果x e d 要支持这种查询方式,必须提供虚x m l 文档视图“1 。 基本上目前的x e d 只支持x p a t h 。 然而,这种简单方式带来的代价是在x m l 分解存储后,使得查询过程中产生 大量的自连接从而导致查询性能的下降。此外,缺乏文档类型定义( d t d ) 和模式 也是造成检索x m l 效率低下的一个重要因素。s t o r e d ”在此方面作了尝试。它 采用数据挖掘的手段来抽取部分模式,这样的确改善了没有模式的x m l 的查询 检索效率。然而对那些极不规则的数据仍然必须采用原始的方式来检索,所以 它仍然不是一个完整的解决方案。此外,在x m l 文档和x e d 的转换过程中,还 会遇到数据类型的匹配、空值和字符集处理等问题。x m l 文档中除了不被解析 的一些实体外,所有数据的类型都以文本来表示。在转换过程中,可能会遇到 类型不匹配的问题,诸如受到j d b c 驱动模块的限制、日期的不同国际化表示。 3 华中科技大学硕士学位论文 2 n x d 以及与x e d 比较 本原x m l 数据库是以半结构化数据管理“5 3 发展起来的。与x e d 相比,它从 底层的存储、索引到上层的查询都是重新根据x m l 层次树状结构来设计的,因 而有着自身的特点:x m 文档存取无需模式转换,存取速度快;能够支持格式 复杂的x m l 文档;更容易支持最新的x m l 技术标准。但是,目前来说还存在许 多不足:与传统数据库技术相比,并发控制、事务、安全性等方面比较薄弱, 没有经过时间的考验;相关的标准较新,还存在不少未解决的问题;应用范围 仅局限在x m l 应用领域中。 而相比之下x e d 的优势在于用户不需要将传统数据库中原有数据重新移 植到新系统中,只是稍加改变,就可以支持x m l 应用。而且传统数据库技术, 例如并发控制、事务等,已经很成熟。传统数据库知识和经验依然有效,用户 不需要为了应用x m l 而再去学习一套新的数据库技术。但从另一方面来说,n x d 的优势就是x e d 的劣势。由于n x d 针对x m l 本身建立的存储索引机制保证了x m l 存储和查询的高效,而x e d 把x m l 文档存入到数据库时却需要将其”分解”,取 出时需要”组合”,不仅耗时,而且文档格式不同使得x m l 文档和数据库之间的 模式转换复杂,在前期开发阶段需要投入很大。此外,x e d 在以文档为中心的 应用中处理格式复杂的x m l 文档性能较差。 事实上,两者的优劣并没有统一的答案,而是和具体的应用相关。在开发 格式较简单、数据内容比格式更重要的应用时,特别是在已有的传统数据库上 要提供x m l 的访问接口的情况下,x e d 是不错的选择。相反,如果x m l 文档格 式复杂,数据本身就有层次性关系,或是只有x m l 数据的时候,就可以考虑n x d , 因为它提供更好的性能,对x m l 标准有更完备的支持。另外,由于n x d 在事务、 数据恢复等传统数据库技术方面还未得到时间的检验,因此对数据安全要求较 高的一些应用,如银行、金融系统的数据库,建立在传统数据库上的x e d 相对 来说更有优势。 3 可持久化的d o m 实现 华中科技大学硕士学位论文 这是从接口的角度来划分的一种类型。通过数据库来提供d o m 接口,以保 证不改变现有应用接口情况下提高查询性能和减小系统内存资源的占用。这种 方式在x m l 文档非常大的时候非常重要。 4 ,内容管理系统 内容管理系统是用来存储、提取和装配文档的通用系统。可以说,它是x m l 数据库的一种应用模式。内容管理系统不仅仅管理普通文档,还通常包括以下 一些特征:编辑器、版本控制和多用户并发处理,其本身的实现对用户是透明 的。主要目的是用来管理以x m l 格式为主的各种半结构化数据文件,比如r t f 、 p d f 或者s g m l 。对于非常简单的文档集合,文件系统就能够满足要求,但是, 对于复杂的文档集合,就需要一个内容管理系统。 5 x m ls e r v e r x m ls e r v e r 是一个提供x m l 数据视图的中间件“”,它能够以x m l 文档的逻 辑视图与分布式的应用进行数据交互,比如电子商务这一类的应用。x m ls e r v e r 其内核既可以n x d 方式实现,也能集成各种不同的数据源而统一为x m l 视图。 另外,在该视图上可以提供x p a t h x o u e r y 语言的查询接口,也可以为x m l 文档 提供持久化的d o m 实现。此外,x m ls e r v e r 可以提供基于x m l 的x m i ( x m lm e t a i n t e r c h a n g e ) 标准,这可以极大简化数据转换的过程而获得高效。 1 2 2x m l 查询 x m l 查询作为x m l 数据库所必须支持的一个重要需求,目前已经统一到w 3 c 的建议标准x p a t h 2 0 和x q u e r y l 0 查询语言。x m l 数据库通过它们为用户提供 查询接口。 1 x p a t h 查询语言 x p a t h 是w 3 c 为了提供一种通用的并与x s l 、x p o i n t e r 之间共享语法、语 义而创造的成果。其主要目的是实现x m l 文档的内部寻址。为了支持此主要目 的,x p a t h 同时也提供了处理字符串、数字和布尔型等基本功能。它使用一种 精简的n o n x m l 的语法来促使它在u r i 和x m l 属性值的应用。另外,x p a t h 的 华中科技大学硕士学位论文 操作不是按照x m l 的语法标识来进行,而是在x m l 文档的抽象逻辑结构上进行。 值得注意的是,x p a t h 的访问方式和u r i 的使用非常一致,它通过路径来访问 x m l 文档的层次结构,所以路径的表达是x p a t h 的重要观点。 x p a t h 的主要特点为: ( 1 ) 基于路径寻址,并能进行节点的模式匹配,可在x m l 文档的层次化逻 辑结构中实现快速定位和信息提取; ( 2 ) 基本语法由表达式构成,形式简洁,结构紧凑; ( 3 ) 实现了基本的数字运算、布尔运算和字符串处理; ( 4 ) 可嵌入x s l t 、x q u e r y 等宿主语言,应用广泛。 2 x q u e r y 查询语言 x q u e r y 是为了满足w 3 cx m l 查询工作组所提出的x m l 查询用例的需求而设 计的x m l 查询语言。它也被设计成短小而简单的执行语言,它检索精确而且很 容易被理解。x q u e r y 能够以非常灵活的方式检索范围广泛的各种不同x m l 信息 资源,包括数据库和文件。x q u e r y 起源于一种叫q u i i t 的x m l 查询语言,这种 语言借用了另外几种语言的特征。这些语言包括x p a t h1 0 ,x q l ,x m l q l ,s q l , 和o q l 。x q u e r y l 0 版本包含x p a t h 2 0 ,在任何一种等价的表达式上,x p a t h 2 0 和x q u e r y l 0 具有相同的效果。但是,x p a t h 和x q u e r y 都不具有更新x m l 文件 内容的能力。 3 路径表达式 x q u e r y 与x p a t h 的起源相同,它们共同使用一个类似于文件系统和u r l 中 所使用的路径符号来指定和匹配文档各部分,即路径表达式。例如,x p a t h : x y z 在文档中搜索下面依次有y 和z 子节点的x 根节点。该语句返回所有与 指定路径结构匹配的节点。在文档结构方面以及节点值及其属性方面还可以有 更复杂的匹配。x y * 语句返回父节点为x 的任何节点y 下的所有节点。 x y n a m e = a 匹配所有具有父节点x 而且具有名为n a m e 值为a 的属性的节 点y 。 华中科技大学硕士学位论文 1 2 3 国内外主流数据库系统对x m l 的支持 1 d b 2 数据库对x m l 的支持 ( 1 ) d b 2 数据库概况 d b 2 数据库相关产品对x m l 的支持主要分三个特定领域。 d b 2x m le x t e n d e r 。它是一个i b m 的对象一关系转换器,通过用户定 义的函数和存储过程提供了对x m l 数据的访问、存储、转换支持。 对s q l 标准进行扩展,通过使用s q l x m l 函数的一个子集实现从关系 数据到x m l 文档片段的转换。 在其它产品中( 如w e b s p h e r em q ) q a 解析、使用x m l 数据的支持以及对 w e bs e r v i c e 技术的支持。 ( 2 ) d b 2 的x m l 扩展体系结构 i b m 关系数据库x m l 功能的核心是x m l e x t e n d e r ,它提供了存储和访问 x m l 文档的能力以及关系数据库和x m l 的相互转化工具。x m le x t e n d e r 提供 了数据类型、函数和存储过程来管理d b 2 中的x m l 数据。它包括2 个方亟: d b 2 和信息集成领域中的x m e 对象存储和处理支持; x m l 应用程序请求支持。x m le x t e n d e r 用户定义函数( u d f ) * 1 1 用户定义 类型( u d t ) 提供了文档访问、索引、分割、查询和处理的功能。 其中,用x m l e x t e n d e r 存储的x m l 文档能够以紧密的方式存储在关系数 据表的列中( x m lc o l u m n s ) ,或者分割后存储在关系表的集合中( x m l c o l l e c t i o n s ) ,或者作为数据库系统管理的文件进行存储( 数据库仅作为一个 x m l 索引,指向x m l 文档) ,另外还可以把x m l 文档作为大字符对象来存储 ( 即c l o b ) 。把x m l 文档存储在x m lc o l u m n s 里,一般只适合对x m l 文档的 更新操作很少的情况。而把x m l 文档用表的集合来存储,一般适合于对x m l 文档局部片断有更新操作的情况。 x m l e x t e n d e r 技术满足存储、访问和检索x m l 数据等典型应用需求是通 过提供了两种主要的存储模型:x m lc o l u m n s 和x m lc o l l e e t i o n s 。 华中科技大学硕士学位论文 x m lc o l u m n s 通过加入特定的类型和函数来将x m l 数据存入关系表的列 中。特定的类型包括:x m l v a r c h a r ,允许小的x m l 文档作为列的数据存储; x m l c l o b ,与x m l v a r c h a r 类似,但是它允许大的x m l 文档作为列的数据存 储;x m l f i l e ,则是一个将关系数据库列中的数据和存储在数据库外部的x m l 文档联系起来的特定类型。从应用程序的角度来看,在x m l 文档已经存在或 需要存储整个x m l 文档时最好使用x m lc o l u m n s 。存储在x m lc o l u m n s 中的 数据能被很容易的检索和查询。在x m l 文档节点上提供u d f 操作。x m l e x t e n d e r 用w 3 c 的推荐标准x p a t h 来定位元素和属性节点。x m lc o l u m n s 在 只频繁读取x m l 文档而不频繁更新的情况下有用。 x m lc o l l e c t i o n s 方法在将x m l 文档分拆成具有无关系数据的小的关系表 集时或从一个特定的关系列中产生一个x m l 文档时以及对x m l 文档的局部进 行更新时有用。x m l 文档可以用一个定义发布视图的d a d 文件从关系表的列 中构造。还可以用一个s q l 节点d a d 或者一个r d b 节点d a d 来构造x m l 文档。 2 o r a c l e 9 i 对x m l 的支持 为了实现x m l 和关系数据库的完美结合,必须考虑两个方面的功能。首 先从数据存储的角度来看,在同一个数据库中必需同时支持存储x m l 数据和 关系数据。其次从查询语言的角度来看,不管数据如何存储,基于s q l 和基于 x m l 的查询都可以实现对数据的访问。o r a c l e 的解决方案是要确保x m l 查询 在真实的x m l 文档和关系数据的x m l 视图上都能进行。目前的解决方案有以 下两种: ( 1 ) 以文档为中心的方式是把x m l 文档以粗粒度的方式存储为无结构的 l o b 的形式; ( 2 ) 以数据为中心的方式是把x m l 文档中的各个节点存储在一个或多个 表中。 o r a c l e 的解决方案是两种方案的融合,其中o r a c l e 中的c l o b 就带有第一 种方案的特点。o r a c l e 引入了x m l 数据类型来封装整个x m l 文档,采取的是 华中科技大学硕士学位论文 一种基于模型的解决方案x m ls q lu t i l i t y ( x s u ) ,x s u 实现了第二种方案 以细粒度存储整个x m l 文档。x s u 就是j a v a 语言和p l s q l 的一个编程接口, 它要么将数据从对象一关系表视图中转换成x m l 数据,要么将x m l 文档分 解成文档片断形式存入到关系表中。 3 s q ls e r v e r 对x m l 的支持 s q ls e r v e r 用f o rx m l 子句扩充s q l 标准语旬实现在关系表中检索 x m l 数据。f o rx m l 子旬有三种模式:r a w 、a u t o 和e x p l i c i t 。r a w 方 式把检索到的表行数据作为x m l 元素返回,表列作为元素的属性。a u t o 方 式返回的查询结果是嵌套的x m l 树,元素命名为被检索表的名称,表列作为元 素的属性,s e l e c t 语句中列名所指定的关系表次序决定元素的层次。 e x p l i c i t 方式返回的x m l 层次关系完全由查询来控制。 1 3 主要研究工作 1 3 1 x m l 数据库的研究思路 当前,x m l 数据库的研究思路主要围绕索引存储机制和查询优化。文献 1 3 1 5 分别展示了当前比较典型的针对x m l 的索引机制。文献 1 6 ,1 7 给出了 x m l 查询中结构连接问题的分析。文献 1 8 2 7 代表了当前主流的x m l 查询优化 思路和策略。 本文将综合考虑这些现有的研究成果,并从当前x m l 数据存储和查询的现 实需求出发,结合现有关系数据库的传统优势,重新设计一个清晰的结构模型, 使该模型具有良好的可扩展性和跨平台性以及开放性、互操作性和分布性。 1 3 2 主要工作和预期目标 本文的主要工作包括: 1 分析x m l 数据库相关技术,设计一个x m l 到关系数据库的存储映射模型; 2 在映射模型上研究复杂的路径查询与优化策略,并实现x p a t h l 0 : 9 华中科技大学硕士学位论文 3 提供良好的应用接口,比如j s p 的标签库; 4 对模型进行可扩展性分析,并给出安全性扩展实例。 本课题的预期目标是通过一个灵活的分解存储和查询模型来构造一个支持 x p a t h x q u e r y 查询的x m l 中间件,实现对多种数据源的应用集成。达到的要求 和技术指标如下: 1 不依赖于特定数据库,提供x m l 树模型到关系模型映射机制; 2 能够充分利用原有的索引机制( b 树) ; 3 能够支持x m l 的索引; 4 实现复杂路径表达式的查询; 5 提供可扩展的针对路径表达式的查询优化机制; 6 多种异构数据源的集成。 1 0 华中科技大学硕士学位论文 2 x m l 信息模型与数据抽象 x m l 的信息模型和数据抽象,是设计x m l 数据库系统的重要方面。本章首 先探讨x m l 所表达的信息集,对结构信息和内容信息进行了区分。然后分析现 在主流信息模型对x k l l 信息集的抽象方式。最后引入了面向路径的可扩展模型, 并给出了基于坐标体系的分解存储机制和实现x m l 查询优化的方法。 2 1 x m l 所表达的信息 x m l 作为一个全新的数据描述方式在表达半结构数据方面具有非常灵活 的形式。层次性和自描述特征使得x m l 所表达的信息有着丰富的内涵。因此, 一个对x m l 进行形式化精确描述的数据模型具有非常重要的作用,它首先就 必须实现对x m l 所表达信息的完整描述。 2 1 1 信息集 w 3 c 标准委员会给出了一个x m l 所表达信息的推荐标准。该规范定义了 一个称为x m l 信息集2 8 1 ( 或简称x m li n f o s e t ) 的抽象数据集合。其用途是为 那些需要引用x m l 中的信息的规范提供一组一致的定义。一个x m l 文档的信 息集由若干信息项组成,在这些信息项中必然包含一个文档信息项和几个其他 的信息项。信息项是x m l 文档中某个部分的抽象描述,每个信息项都有一组 相应的属性。x m l 信息集没有规定或倾向于使用某个或某一类接1 :3 。该规范使 用被修饰的树 2 9 】来描述x m l 信息集是出于简单和明了的考虑,并不表示一定 要用树结构来构造x m l 信息集。其他类型的接口,比如( 但不局限于) 基于 事件的或基于查询的接口都可以遵照本规范来提供x m l 文档中的信息。 对于“信息集”和“信息项”这两个术语,它们的含义类似于通常所说的 “树”和“结点”。尽管如此,该规范中仍将使用前面两个术语,以区别与其他 1 t 华中科技大学硕士学位论文 一些数据模型中类似的概念。比如:信息项与d o m 中的结点或x p a t h 数据模 型中的树和结点没有一一对应的关系。 一个信息集可以包含最多1 1 种不同类型的信息项。 i 文档信息项( t h e d o c u m e n t i n f o r m a t i o n i t e m ) ; 2 元素信息项( e l e m e n ti n f o r m a t i o ni t e m s ) ; 3 属性信息项( a t t r u b u t ei n f o r m a t i o ni t e m s ) : 4 处理指令信息项( p r o c e s s i n g i n s t r u c t i o ni n f o r m a t i o ni t e m s ) ; 5 未展开实体引用信息项( u n e x p a n d e de n t i t y r e f e r e n c ei n f o r m a t i o n i t e m s ) : 6 字符信息项( c h a r a c t e ri n f o r m a t i o ni t e m s ) ; 7 注释信息项( c o m m e n t i n f o r m a t i o n i t e m s ) ; 8 文档类型声明信息项( t h e d o c u m e n tr y p ed e c l a r a t i o ni n f o r m a t i o ni t e m s l : 9 非解析实体信息项( u n p a r s e de n t i t yi n f o r m a t i o ni t e m s ) ; 1 0 格式信息项( n o t a t i o ni n f o r m a t i o ni t e m s ) ; 1 1 命名空间信息项( n a m e s p a c e i n f o r m a t i o n i t e m s ) 。 如x m l 文档例子2 1 所示。 示例2 1 简单x m l 文档示例 p h o n eh o m e ! 这个x m l 文档的信息集包含以下信息项: 一个文档信息项;一个元素信息项:它的 n a m e s p a c en a m e 属性为 ”h t t p :m e s s a g e e x a m p l e o r g ”, 1 0 c a lp a r t 属性为”m e s s a g e ”, p r e f i x 属性为 ”m s g ”;一个属性信息项:它的 n a m e s p a c e n a m e 属性为”h t t p : d o c e x a m p l e o r g n a m e s p a c e s d o c ”, 1 0 c a lp a r t l 属性为”d a t e ”, p r e f i x 属性为”d o c ”; 华中科技大学硕士学位论文 三个命名空间信息项:它们分别对应于命名空间h t t p : w w w w 3 o r g x m l 1 9 9 8 n a m e s p a c e 、h t t p :d o c e x a m p l e o f g n a m e s p a c e s d o c 和 h t t p :m e s s a g e e x a m p l e o r g n a m e s p a c e s l 两个属性信息项:它们分别对应于两个 命名空间属性;十一个字符信息项:它们分别对应于字符数据( “p h o n eh o m e ! ”) 中的十一个字符。 从上可以看出x m l 信息集已经对x m l 的信息作了一个通用化的分类。它 的主要作用是通过信息项对内容信息进行了描述。 2 1 2 结构信息和内容信息 基于x m l 信息集,整个x m l 文档可以分为结构信息和内容信息。内容信 息分为如上所述1 1 类信息项。结构信息则表现为整个文档的结构和各个元素结 点之间的关系,比如,父子关系,祖先子孙关系,兄弟关系等,此类信息没有 被x m l 信息集所显式表达。一个x m l 文档全部关系便决定了该文档的结构信 息。x m l 所表达信息集合带来的查询和存储困难在于它不具有显式的结构信 息,而隐含的层次关系又不能像关系那样简单的表达为二维表。此外,在对x m l 的查询过程中,对内容信息进行查询时还包含了结构信息描述。因此,构建x m l 数据库时候需要实现一个能够对结构信息进行进一步量化和描述的模型。 2 2 信息模型的建立 当前在x m l 数据库的研究中主要围绕x m l 本身的路径结构信息来构造 x m l 数据模型。比如,直接把路径信息建在索引中 1 4 , 1 5 1 或者是将结构信息转化 成为内容信息的属性进行处理。每种方式都有其优势和不足。 2 2 1 通过索引来表达路径结构信息 通过索引来保持和构建路径信息能够对路径查询起到重要的优化作用。现 在一个典型研究思路就是i n d e xf a b r i c h 】。 1 i n d e xf a b r i c 的解决方案 1 3 华中科技大学硕士学位论文 i n d e xf a b r i c 是从另一个角度提供了一种更为高效和灵活的基于路径的检 索机制。它是一种不依赖于模式的x m l 数据存储的方法,也同样能够利用关 系数据库技术中已经存在的技术。该方法以串的形式在对x m l 元素中的路径 进行编码,并将这些代表路径的串插入到一个索引中,从而,按照路径方式对 x m l 的索引完全优化为对串的检索。检索过程就是把编码后的路径作为检索关 键字。此外索引本身还携有x m l 的层次结构信息,统一处理了有模式和无模 式的x m l 的检索,使它们具有相同的检索效率。因而,这种方法有以下几个 优势:首先,不需要预先给出关于模式的信息就可以实现信息的快速查找。由 于被编码的路径都是从数据本身提取的,这就解决了没有d t d 和模式的情况 下检索仍不失效率。再者,此方法即使当数据结构在改变或不规则的情况下, 对检索的效率也没有影响。最后,可以增加额外的索引路径来加快一些复杂的 访问路径。由于i n d e xf a b r i c 是基于p a r i c i at r i e s ”】,增加额外的串不会引起索 引树的快速增长。 然而,i n d e xf a b r i c 的检索性能依赖于路径表达式的具体形式,当路径表 达式复杂度( 此处复杂度通过表达式中约束强度确定) 变化很大的时候,其查 询性能也随之波动。 它存在以下几个问题: ( 1 ) 缺乏针对复杂路径表达式建立索引的完善机制; ( 2 ) 同名子节点实例造成的路径编码空间膨胀问题,如图2 4 中f a b r i c i n d e x 所示的路径膨胀情况。 2 p e e ri n d e x 的尝试 p e e ri n d e x 是我们用来进一步改善i n d e xf a b r i c 机制的索引方案,它的主要 目标是解决i n d e xf a b r i c 随着x q u e r y 中路径表达式出现通配符等复杂情况下, 节点匹配失效导致效率下降的问题。比如,对于某x m l 文档访问路径 “f f g i ”、“a c d f g i ”、“a c e j g i ”、“b c f h7 所代表的结点集合 建立如图2 1 所示p e e ri n d e x 的索引,可以看出这种同时具备前后缀路径的索 引可以解决路径表达式中出现单个阻隔符号引起的结点匹配实效问题。比如, 1 4 华中科技大学硕士学位论文 对于路径“l a l c l * l f i g l l ”,当“l a l c ”匹配完毕后可以得到路径和所代表的 结点集合n ,此时,该路径查询被通配符“+ ”所阻隔,这样p e e r l n d e x 采用后 缀索引“f g i ”获得路径和所代表的集合0 ,最终可以由。和b 的结点交 集得到最终路径所代表的结点集合。 f f g iao dfgiac e j g ibcf h 倒2 1p e e r i n d e x 由此可见,p e e r i n d e x 是通过给路径建立倒索引来解决路径查询被通配符阻 隔失效的一种弥补手段,它可以解决路径中出现单个阻隔符号引起的结点匹配 问题。比如通配符或祖先一子孙关系查询,与之类似的还有建立多索引机制等

温馨提示

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

评论

0/150

提交评论