




已阅读5页,还剩59页未读, 继续免费阅读
(计算机软件与理论专业论文)native+xml数据库存储模型研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 n a t i v ex m l 数据库是随着x m l 的广泛应用而产生的,它专门用来存储和管 理x m l 数据。n a t i v ex m l 数据库具有一般数据库的特性,但它的内部存储是基 于x m l 数据的树形结构。它所存储的x m l 数据都通过x m l 相关的技术进行访 问。但它并不是一个独立的数据库,它可以建立在已有的数据库或专用的存储格 式之上。n a t i v ex m l 数据库强调逻辑视图,它提供给应用的是树形的x m l 数据, 而底层的存储格式对于应用是透明的。因而,在x m l 数据和不同底层存储之问的 存储模型起到了非常关键的作用。 本文主要研究了n a t i v ex m l 数据库的存储模型。不同的底层存储采用不同的 存储模型。文中对基于关系数据库、面向对象数据库、索引文件、压缩文件的存 储模型进行了详细地论述。x m l 数据通过这些存储模型存入n a t i v ex m l 数据库, 并且保持了x m l 数据的树形结构,反之,不同格式的存储数据经存储模型重构为 原始的x m l 数据。d b x m l 是一种n a t i v e x m l 数据库产品,它采用文档表存储模 型,该模型将x m l 数据转换为符号表和压缩表进行存储,实现了一定的压缩比率 并且保持了x m l 数据的结构。在分析文档表存储模型的基础上,提出了基于文档 类型定义生成符号表和对压缩表中的数据进行自适应算术压缩的两种改进方案, 在执行时间和存储空间上优化了文档表存储模型。 关键字:n a t i v ex m l 数据库存储模型符号表压缩表文档类型定义 a b s t r a c t 2 a b s t f a c t n a t i v ex m ld a t a b a s e sa r eg e n e r a t e dw i t ht h ee x t e n s i v ea p p l i c a t i o no fx m l , t h e y a r e s p e c i a l i z e d f o rs t o r i n ga n dm a n a g i n gx m ld a t a n a t i v ex m l d a t a b a s e sh a v e f e a t u r e so fc o m m o n d a t a b a s e s ,b u tt h ei n t e r n a ls t o r a g ei sb a s e do nt h et r e e - l i k es t r u c t u r e o fx m ld a t a t h ex m ld a t aw h i c ha r es t o r a g e di nn a t i v ex m ld a t a b a s e sa r ea c c e s s e d w i t ht h et e c h n i q u ec o r r e l a t e dw i t hx m l h o w e v e r , an a t i v ex m l d a t a b a s ei sn o ta n s t a n d a l o n ed a t a b a s e ,a n di tc a nb eb u l i to ne x i s t i n gd a t a b a s eo rp r o p r i e t a r ys t o r a g e f o r m a t n a t i v ex m ld a t a b a s e se m p h a s i so nt h el o 西cv i e w sa n dw h a ta r ep r o v i d e dt o a p p l i c a t i o n s a r et r e e - l i k ex m l d a t a ,w h i l et h ef o r m a t so fr o c k - b o t t o ms t o r a g ea r e t r a n s p a r e n tt ot h ea p p l i c a i t o n s t h u s ,t h es t o r a g em o d e l sw h i c ha r eb e t w e e nx m l d a t a a n dd i f f e r e n ts t o r a g e p l a y a l li m p o r t a n tr o l e t h e p a p e rm a i n l y r e s e a r c h e st h es t o r a g em o d e l so fn a t i v ex m ld a t a b a s e s d i f f e r e n t r o c k b o t t o ms t o r a g ef o r m a t sa d o p td i f f e r e n ts t o r a g em o d e l s i nt h e p a p e rs t o r a g em o d e l s b a s e do nr e l a t i o nd 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 ,i n d e xf i l e s ,c o m p r e s s e df i l e sa r c d i s c u s s e di nd e t a i l x m ld a t aa r ed e p o s i t e di n t on a t i v ex m ld a t a b a s e sv i at h e s e s t o r a g e m o d e l sa n dt h e i rt r e e - l i k es t r u c t u r e sa r er e t a i n e d o nt h ec o n t r a r y , d i f f e r e n tf o r m a td a t a a r er e c o n s t r u c t e di n t oo r i g i n a lx m ld a t av i at h es t o r a g em o d e l s d b x m li sa p r o c d u c t o fn a t i v ex m l d a t a b a s e s ,i ti n t r o d u c e sd o c u m e n tt a b l es t o r a g em o d e l ( d t s m ) t h i s m o d e lc o n v e r t sx m ld a t ai n t ot h es y m b o lt a b l ea n dc o m p r e s s e dt a b l et o s t o r e ,i t r e a l i z e sac e r t a i nd e g r e ec o m p r e s s i o nr a t i oa n dr e t a i n st h es t r u c t u r eo fx m l d a t a o n t h eb a s i so fa n a l y s i n gt h e d t s m ,t w oi m p r o v e m e n tp l a n sa r ep r o p o s e d ,o n ei st o p r o d u c e t h es y m b o lt a b l eb a s e do nd o c u m e n t t y p ed e f i n i t i o na n da n o t h e ri st oc o m p r e s s t h ed a t ao fc o m p r e s s e d t a b l ew i t ht h ea d a p t e da r i t h m e t i cc o m p r e s s i o na l g o r i t h m t h e i m p r o v e m e n tp l a n so p t i m i z ed t s m i ne x e c u t i n gt i m ea n d s t o r a g es p a c e k e y w o r d s : n a t i v ex m ld a t a b a s e s t o r a g em o d e ls y m b o l t a b l e c o m p r e s s e d t a b l ed o c u m e n t t y p e d e f i n i t i o n 独创性声明 x6 9 5 7 3 9 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果:也不包含为获得西安电子科技大学或 其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担切相关责任。 本人签名麴局日期立叽廿。,8 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密,在年解密后适用本授权书。 本人签名:盛意寸向 导师签名:毳,辱扣t 。导师签名:彳j 。7 f f ” 日期2 时t 。汐 日期枷4 r ,1 ( 第一章绪论 第一章绪论 1 1 引言 i n t e r n e t 将我们带入了一个信息爆炸的时代。在i n t e m e t 发展初期,h t m l 扮 演了相当重要的角色,但随着i n t e m e t 的成熟,h t m l 已无法满足更复杂、更大规 模的需求。1 9 9 6 年,全球信息网协会( w o r l dw i d ew e bc o n s o r t i u m ,w 3 c ) 开始制订 新的标准标记语言,希望它能够比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 ) 更容易使用,同时比h t m l 具有更严谨的架构。新的标记语言x m l 应运而生。 x m l ( e x t e n s i b l em a r k u ph n g i l a g c ) 是可扩展标记语言,它是s g m l 的一个简化子 集,它将s o m l 的丰富功能与 r 蹦l 的易用性结合到w e b 应用中,以一种开放的、 自我描述的方式定义了数据结构。它有如下的一些优点:它是一种元标记语言 它具有开放性、自描述性、无限嵌套、树形结构等特性。强调形式描述与内容描 述的分离,便于网络上的信息检索,便于网络上传输文档的标准化等。x m l 的数 据描述机制意味着它将成为i n t e r a c 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 p a t h 、 x 0 u e r y ,更新语言x u p d a t e 等,而对x m l 数据的所有操作都是通过这些技术来 完成的。应用需求推动了新技术的诞生和发展,为了管理大量的x m l 数据。“n a t i v e x m l 数据库”的概念被提出,并且得到了业界的肯定和大力支持,相关的产品和 研究原型也不断的产生和发布。 n a t i v ex m l 数据库专门用来存储和管理x m l 数据,也兼有一般数据库系统 的特性,如事务管理、并发控制、查询语言、安全机制、编程a p i 等。n a t i v ex m l 数据库内部模型是基于x m l 的,保持了x m l 的树形结构和相关的元数据。它并 不关心数据的底层存储格式,可以建立在数据库或文件系统之上,只能通过x m l 相关的技术对数据进行操作。n a t i v ex m l 数据库最适于存储“以文档为中心”的 x m l 数据。 n a t i v ex m l 数据库实际上并不是全新的数据库,它可以建立在已有的关系 数据库或面向对象数据库上,也可以采用针对x m l 数据的索引文件和压缩文件, 所以它的结构是多种多样的。它的出现并不意味着取代传统的数据库,而仅仅是 n a t i v ex m l 数据库存储模型研究 为x m l 数据提供更健壮的存储和操作。 1 2n a t i v ex m l 数据库研究现状 n a t i v e x m l 数据库是近几年才提出的概念,是一个比较崭新的发展领域。它 的提出主要是为了解决大量x m l 数据的存储和管理问题。许多公司和研究机构都 纷纷致力于n a t i v ex m l 数据库的研究和开发,发布了一些商用产品和研究原型。 由于它刚剐起步,还没有一个规范的定义和体系结构,所以这些产品和原型的结 构不尽相同,有各自的特点和适用性。 国外对n a t i v ex m l 数据库的研究要比国内早一些,目前市场上有3 0 多种 n a t i v ex m l 数据库产品,其中大部分是商业性质的,只有很少一部分是开放源码 的,如b e r k e l e y d b x m l 、d b x m l 、e x i s t 、o z o n e 等i 。这些产品的有的是基于关 系数掘库的,如d b d o m 、e x i s t 、e x t c 、x d b ,x p s q l 等,有的是基于面向对象 数据库的,如b i r d s t e p r d m x m l 、o z o n e 、s o n i c x m l s e r v e r 、x h i v e d b 等,还 有基于其他专用的存储格式,如d b x m l 、x i n d i c e 、l p e d o 、l o r e 、t e r a t e x td b s 等。 一些主流关系数据库厂商已经实现了对x m l 的支持,如o r a c l e 公司的o r a c l e 9 i 第二版( 9 2 x ) ,i b m 公司的d b 2x m l e x t e n d e r ,s y b a s e 公司的a s e l 2 5 ,微软 的y u k o ns q l s e r v e r 等。目前,它们也开始将目光转向n a t i v e x m l 数据库。 国内对n a t i v ex m l 数据库的研究刚刚开始,目前已有的产品是2 0 0 4 年6 月 发布蛉o r i e n t x ,它是中国人民大学i d k e 实验室开发的一个n a t i v ex m l 数据库管 理系统,支持对x m l 数据的存储、查询、更新等操作。 n a t i v ex m l 数据库相关的理论研究非常少,以至于它还没有个规范的定义 和体系结构,一个关键的原因是它借鉴传统数据库的理论基础。但它也有自身的 独特性,随着它的进一步发展,相信理论研究也会更充分。 1 3 项目背景及研究内容 本论文来源于政务信息化工程“深圳市罗湖区城市综合管理信息公共服务平 台系统政府各部门之间的信息共享子系统”。政府办公网络化、信息化后,会产生 大量的半结构化数据,如文件、报表、信函、传真、多媒体信息等,x m l 是表示 半结构化数据的最佳选择。另外,政务信息化是基于c c g x m l ( c h i n e s e e - g o v e r n m e n tx m l ) 在w e b 系统之间进行安全交互和信息交换的,在这期间也会 产生大量的x m l 数据。我们需要对这些x m l 数据进行高效地存储和管理。支持 x m l 存储的传统关系数据库一般适合于“以数据为中心”的x m l 数据,而不适 于注重格式的“以文档为中心”的政府办公数据,因而引入了擅长于管理这些格 式复杂数据的n a t i v ex m l 数据库。 第一章绪论 从上一小节可以看出,n a t i v ex m l 数据库有许多不同结构的产品,它强调的 是提供给用户的逻辑视图,只要它能通过x m l 相关的技术来访问x m l 数据,而 并不注重底层的物理存储格式,底层的存储格式可以采用完全不同的结构。本文 重点研究x m l 文档在n a t i v ex m l 数据库中存储时的存储模型,也就是如何在存 储时保持x m l 的树形结构,使得这些存储后的结构能够更好地支持x m l 相关的 技术。这些存储模型不仅与x m l 文档的结构紧密相关,也要取决于底层的物理存 储模式。不同的物理存储,如关系数据库、面向对象数据库、压缩文件、索引文 件等,对应的存储模型会有所不同。基于关系数据库、面向对象数据库的存储模 型为在这些数据库中存储x m l 文档提供了一种规范和约束,使得通过这些存储模 型存储后的数据能够提供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 l 数据库产品的存储模型研究后,我们选择了一个开放源 码的n a t i v ex m l 数据库产品- d b x m l ,对它的存储模型相关的源码进行分析。 在分析源码的基础上总结出d b x m l 所采用的文档表存储模型d t s m ,这种存储模 型实际上也是一种基于压缩文件的存储模型,它对x m l 文档中的各个组成部分采 用不同的处理方法,整个文档被建模为符号表和压缩表( 文档表) 两张表。根据 这两张表的结构来组织相应的数据并进行存储。d t s m 中也存在一定的不足,我 们尝试着对这个存储模型进行一定的改进,用文档类型定义d t d 来产生符号表, 对压缩表中的数据采用自适应的算术编码技术进行压缩,这些改进能在执行时问 和存储空间上改善数据库的性能。 1 4 论文各章节的安排 本文各章节的安排如下: 第二章首先介绍了相关的x m l 技术,接着给出了n a t i v e x m l 数据库的定义, 并对它的主要特性进行了总结和论述。然后详细论述n a t i v ex m l 数据库管理系统 的组成,并对组成的每个模块进行了阐述。最后说明了n a t i v ex m l 数据库的应用 领域和应用前景。 第三章首先区分了不同概念的存储粒度,然后给出了模式独立和基于模式的 两种x m l 文档存储策略。最后着重论述在关系数据库、面向对象数据库、索引文 件、压缩文件等不同底层物理存储上的存储模型。 第四章首先介绍了开放源码的n a t i v e x m l 数据库产品d b x m l ,然后对其存储 模型相关的源码进行分析,在分析的基础上总结d b x m l 所采用的存储模型。 第五章提出并实现了对d b x m l 存储模型的改进,给出了两种改进方案并对其 n a t i v ex m l 数据库存储模型研究 进行了比较详细的论述。 第六章对全文进行总结并展望下一步的工作。 第二章n a t i v ex m l 数据库概述 第二章n a t i v ex m l 数据库概述 2 1 相关的x m l 技术 n a t i v ex m l 数据库是专为存储和管理x m l 文档而提出的,所以掌握和了解 相关的x m l 技术是研究存储模型的前提,这- - d , 节中我们就来简单论述一下相关 的x m l 技术。 ( 1 ) x m l 文档及其结构 x m l 文档由文本组成,这些文本划分为标记和字符数据。标记用来描述文档 的逻辑结构,而字符数据提供文档的基本信息。这些标记按照不同的作用被划分 为以下的组成部分:x m l 声明、处理指令、d o c t y p e 声明、元素、属性、实体 引用、注释、c d a t a 段j 。 x m l 声明必须出现在文档的第一行,包括版本号、编码声明、独立声明,以 “ ”结束。处理指令用于将处理提示随文档传递给应用程序。开始 和结束标记和x m l 声明一样,最常用的是样式表处理指令。d o c r y p e 声明表明 该文档遵循的文档类型定义以及该文档的根元素,以“ ”开始,“ ” 结束。x m l 文档是一个只有一个根元素,可以包含若干予元素的层次结构,每个 元素有一个开始标记“ ”和结束标记“可元索名 ”或是空元素“ ”。元素可以具有属性,元素的每个属性按照由等号分开的名称,值对的形式写 在元素的开始标记中,还可以有一些额外的空格,属性值用单引号或者双弓l 号括 起来。实体引用提供了通过引用包含x m l 文档信息的方法,而不是把字符输入到 文档中,它以“”开始,“;”结束。注释可以包括不是为x m l 解析器设计的内 容,例如有关文档结构或编辑记录等,注释以“ ”结束。c d a r a 段通知解析器该段中包含的字符中没有标记,这简化了包含标记字符内容的创建, 以“ ”结束。图2 1 是一个具体的x m l 文档,注释中 给出了它的结构说明。 ( 2 ) 文档类型定义( d t d :d o c u m e n t t y p e d e f i n i t i o n ) d t d i 2 】列出了可用在文档中的元素、属性、实体和符号表示法,以及这些内 容之间可能的相互联系。d t d 指定了文档结构的一系列规则,文档可以根据d t d 进行验证,如果和d t d 的约束规则相匹配,文档是有效的,否则就是无效的。 元素构成了x m l 文档的主要结构,在有效的文档中,这些元素结构是由元素 声明进行约束的。一个元素声明指定了子元素的顺序及元素数量。元素声明的形 式是“ ”,其中的内容模型可以是e m p t y 、 # p c d a t a 、a n y 、子元素。 一些x m l 元素具有属性,它的声明形式为“ ”,其中元素名表示拥有该属性的元素名称,属性类型包括 c d a t a 、枚举、1 d 、e n t i t y 、n o t a t i o n 等,属性默认值可以直接指定其默认 值,也可使用# r e q u i r e d 、# i m p l i e d 、# f i x e d 参数来规定是否需要默认值。 x m l 文档可以从许多不同的源中提取数据和声明,这些源中存储x m l 文档 片段的条目就是实体,实体可以是文件、数据库记录或任何其他包含数据的项目, 实体又可分为内部实体、外部实体。实体引用将这些实体载入x m l 文档。内部实 体的实体声明为“ ”,其中“”表示是内部 参数实体声明,该声明只在d t d 中使用,而不带“”的内部实体声明在文档中 使用。外部实体的声明形式为“ ”,其中 “”的含义和内部实体相同。 还有两个比较重要的声明:注记非x m l 数据的n o t a t i o n 和未解析实体的 声明。它们的声明形式为: 和 。d t d 中还有其他类型 的声明,在这里就不作论述,具体的内容可参考【2 l 。 c a t a l o g x m l x m l 声明,包括版本号、编码声明 样式表处理指令 ! d o c r y p e c a t a l o gs y s t e m ”c a t a l o g d t d ”)d o c t y p e 声明 注释 x m l n s 为名称空间声明 i d 为元素的属性、b k 0 1 为元素的值 a u t h o r , & # 7 1 ;a b e r e r o m b i e , k i m , 为元素开始和结束标记 x m l d e v e l o p e s & # x 4 7 ;u i d e 标记内为元素的值。# x 7 l 为实体引用 c o m p u i c k g e n r e :, 元素g e n r e 及其值c o m p u t e r 4 4 9 5 元素p r i c e 及其值4 4 9 5 2 0 0 0 - 1 0 - 0 l 元素p u b l i s h _ d a t e r 其值2 0 0 0 - 1 0 - 0 1 a n d & a m p ; d e s c r i p t i o m , b o o k 元素结束 c a t a l o g 元素结束 图2 1 x m l 文档c a t a l o g x m l 示例 ( 3 ) 文档对象模型( d o m ) 和x m l 简易a p i ( s a x ) d o m l 3 l 是w 3 c 指定的规范,它提供了一种访问和操作存储在x m l 文档中信 息的标准化方式。d o m 应用程序接口( d o m a p l ) 是应用程序和x m l 文档之问 联系的桥梁。d o m 的工作原理是:首先通过解析器解析x m l 文档,将文档分成 第二章n a t i v ex m l 数据库概述 独立的元素、属性、注释等,然后在内存中创建节点树来表示这个x m l 文档,它 将文档中的每一项都视为节点,允许通过d o m a p i 对d o m 节点树进行访问和处 理。 s a x t 3 l 是一个用于高性能x m l 文档处理的工业标准a p i ,它不是w 3 c 的推 荐标准。它的工作原理是通过符合s a x 规范的s a x 解析器顺序地解析x m l 文档, 根据遇到的标记激活相应的事件,如遇到元素开始标记就激活相应的元素开始事 件。它并不构造节点树,因而处理速度要比d o m 快。占用内存也比d o m 小。但 s a x 是只读的,不能直接修改文档,并且不支持随机存取。 ( 4 ) x p a t h 和x q u e r y l 3 】 x p a t h 是x m l 路径语言,它用于x m l 文档部分内容的定位及导航。x m l 中 最常用的是x p a t h 表达式,它是一个定位路径,至少采用一步来识别文档中的节 点集合,这个集合是元素节点、属性节点、文本节点、注释节点等的任意组合。 通过相应的语法对这些节点进行定位,可以采用绝对路径也可以采用相对路径。 定位路径产生的节点集合可以通过谓词来筛选。 x o u e r y 是一种功能更强大的x m l 查询语言,它构建在x p a t h 规范之上。 x q u e r y 中最强大的特性是f l w r 表达式,它是一种能够完成具有某种实际意义 的查询表达式。f l w r 表达式包含模式匹配、过滤选择和结果构造这三种操作。 f l w r 语句是x q u e r y 所具有的最接近于s q l 的语句。使用f l w r 语句,可 以用比x p a t h 语句更自然的方法来创建特定的查询。 ( 5 ) 其他相关技术 还有其他相关的x m l 技术,如x m li n f o s e t 、x m ls c h e m a 、x s l 、x s l t 等,在这里不做过多的论述,具体的内容可以参考i 2 i 【粥。 2 2n a t i v ex 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 数据库正式的技术定义,下面是一个较为普遍接受的论述1 4 】: n a t i v ex m l 数据库为x m l 文档( 而不是文档中的数据) 定义了一个逻辑 模型,并且根据该模型存取文档。模型至少应该包括元素、属性、p c d a t a 和文 档顺序。这样模型的例子有:x p a t h 、x m l l 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 l 数据库存储模型研究 文件。 定义的第一部分说明与传统的数据库一样,n a t i v ex m l 数据库非常注重数据 库所采用的模型。一般来讲,n a t i v ex m l 数据库所存储的数据类型比模型中定义 的要多,例如,某数据库支持基于x p a t h 数据模型的查询,但所用的存储格式是 纯文本,则c d 衄a 段和实体存储在数据库中,但未包括在模型中。 定义的第二部分指出,在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 l 数据库对底层的数据存储方式没有特别要 求。 从这个定义中我们可以得知很多,但可以简洁地总结出主要三点: ( 1 ) n a t i v ex m l 数据库专门用来存储x m l 数据,它完整地存储x m l 模型所 有组成部分。 ( 2 ) x m l 文档可以被存入,可以被取出。 ( 3 ) n a t i v ex m l 数据库实际上并不是一个独立的数据库。 n a t i v ex m i , 数据库( 简称为n ) ( d ) 并不能真正表示一个新的低级别的数据 库模型,也并不意味着取代已有的数据库。它们仅仅是个工具,通过对x m l 文档 提供健壮的存储和操作来支持应用。 2 3n a t i v ex m l 数据库的特性 n a t i v ex m l 数据库是专用于存储x m l 文档的数据库,也兼有一般数据库的 特性,例如事务管理、并发控制、查询语言、安全机制、二次开发接口等。唯一 的不同之处在于其内部存储是基于x m l 文档的树形结构。 般认为,n a t i v ex m l 数据库应该具有以下几个特性f 5 1 : ( 1 ) 文档集合 很多n x d 产品都支持“文档集合”的概念,就像文件系统中的一个目录或 r d b m s 中的一张表,一个“文档集合”把一类文档聚集在一起,方便用户操作。 集合级别上的查询、修改操作都会反映到集合内的每个文档。 一般来说,一个“文档集合”关联种模式( x m ls c h e m a 或d t d ) 。将文档 加入到有模式的“文档集合”时,会对要加入的文档进行模式检查。只有符合“文 档集合”模式的文档才可以加入。 第二章n a t i v ex m l 数据庠概述 不同于r d b m s 中表必须具有模式,n x d 还提供“无模式”的文档集台,即 将一个文档放入该集合中时,不必检查该文档的模式。“无模式”的文档集合大大 方便了用户存储格式很难统一、半结构化的x m l 文档,但同时也降低了x m l 文 档的完整性并加大了管理这些文档的难度。 ( 2 1 查询语言 x p a t h 和x q u e r y 是w 3 c 推荐的针对x m l 文档的查询语言。目前大部分n x d 产品都支持x p a l h 。另外还有一些n x d 提供专用的查询语言。 x p a t h 基于x m l 文档的树形结构,给出从某个节点起的查询路径,对文档进 行搜索。目前,x p a t h 作为数据库查询语言还有不少缺陷:不能分组、排序、连接、 缺少数据类型的支持等。而x q u e r y 更像一种编程语言,支持循环等逻辑,支持分 组、排序、连接等。相对于传统数据库的标准s q l 语句。x q u e r y 在对x m l 数 据的查询方面,是一种功能更强大、更易于编程的方法。 为了提高查询的性能,n x d 支持在集合中存储的x m l 数据上创建索引。这 些索引可以显著地提高查询执行的速度。什么内容被索引和怎样创建索引在不同 的产品中是有很大差异的,但是大部分产品都以某种形式支持这种特性。 ( 3 ) 事务、锁和并发控制 几乎所有的n x d 都支持事务处理。但是,锁的粒度通常比较大,是针对整个 文档的而不是对文档片断的,所以对多用户并发性的支持相对较低。具体的并发 程度取决于应用程序以及文档的构成。 ( 4 ) 二次开发接口 几乎所有的n x d 都提供应用编程接口a p i ,提供数据库连接、浏览元数据、 执行查询和返回结果的方法。返回结果通常是x m l 字符串、d o m 树、s a x 事件 或x m l r c a d c r 。如果查询返回结果是多个文档或文档片断的话,通常都会提供枚 举这些结果的方法。对“以数据为中心”的应用可以将应用程序变量与返回文档 的特定元素或属性相关联。这避免了应用程序为构建内部数据对象而不得不对文 档进行解析的工作。虽然大多数n x d 提供自己的a p i ,但是x m l :d b o r g 已经开 发出一种与供应商无关的x m l 数据库a p i ,许多n x d 已经支持它。对于以 c l i e n t s e r v e r 模式运行的数据库产品,还可以将结果通过网络协议如h r r p 回传给 客户端。 ( 5 ) 往返存取( r o u n d t r i p p i n g ) n x d 个重要特性是它为x m l 文档提供了“往返存取”:可以将x m l 文档 存放在n x d 中,而且再取回“同样的”文档。对于以“文档为中心”的应用程序 来说非常重要,因为易被忽略的c d a t a 段、实体引用、注释和处理指令是这些文 档不可缺少的组成部分,特别是对于法律、医学等领域中格式不允许随意窜改的 数据文档。 1 0n a t i v ex m l 数据库存储模型研究 所有n x d 都能够在元素、属性、文件顺序的级别上为文档提供“往返存取”, 能达到的具体程度取决于不同的数据库产品。 ( 6 ) 更新和可持久化的文档对象模型 大多数n x d 对x m l 文档的更新是通过调用其提供的a p l 完成的,或者简单 的替换整个文档来实现的。一些n x d 提供专用的更新语言以允许执行更新,同时 还有不少开放源码的n x d 支持x m l :d bx u p d a t e 。某些n x d 还提供了可持久化 的文档对象模型p d o m ( p e r s i s t e n td o c u m e n t o b i o c tm o d e l ) :在某种持久性存储介 质上实现了d o m 模型,对此d o m 模型所作的改变直接反映在数据库中。由于 p d o m 树是“现场( 1 i v e ) ”的,数据库通常和应用程序在同一个进程空间。 2 4n a t i v ex m l 数据库管理系统组成 尽管n x d 的结构不是完全相同,但仍有许多相似之处值得讨论。n x d 的模 型一直在演化着,在未来的若干年中还会继续,不同的产品之间存在着很大的差 异,因此,下面的论述只是针对目前大多数产品的一个粗略的总结和概括【副。 图2 2 给出了一个典型的n a t i v ex m l 数据库系统的结构,其中实线表示控制 和数据流,虚线只表示数据流。下面对图中的细节分别进行介绍。 用户,应用程序和数据库管理员 图2 2 中最上面一层是给数据库系统发出命令的两类命令源:用户,应用程序 和数据库管理员。一般用户和应用程序发出的命令多为查询和更新命令。而数据 库管理员则负责整个数据库的管理和维护,可以包括数据库模式管理、数据库安 全管理、数据库元数据管理等。 数据解析器 它的功能是解析x m l 数据,把x m l 数据转换为内部可识别的x m l 解析树。 x m l 查询管理器 x m l 查询管理器提供对单文档、多文档或整个集合的查询。用户和应用程序 向数据库发出x p a t h 或x o u e r y 查询命令,x m l 查询管理器负责对这两种查询语 言进行查询的分析和优化。x m l 查询可通过交互式或文件批处理方式提交,无论 是哪一种的提交方式,在执行引擎看来,所接收到的查询语句都是字符流。执行 引擎不能直接对字符流进行处理,必须把字符流形式的查询语句转换成x p a t h 或 x q u e r y 处理器可处理的内部结构,同时检查其是否符合语法,满足一定的语义要 求。这个过程就是查询的分析过程。然后,采用逻辑优化的方法,制定一系列优 化规则,把分析得到的内部路径根据规则转化成优化的查询计划。同时吸收物理 优化的思想,在优化规则中利用模式、索引等信息进行查询优化。经过查询分析 和优化后得到查询计划,由执行引擎按照一定次序去完成查询计划上的相关操作。 墨生些塑必墼 ! ! 执 x 。 蹦2 2 n a t i v e x m l 数据库管理系统组成 执行引擎 索引文件记录管理器 理冲并数舰瓣撕融前过须所 步通必釉 或 , 垂铲城匠蝴 制直缓楚计件副糖 诲组取酬醐麴般髑 定多数泰靛尥黻腻 行库必缎氏黼裤姚隗 的数,暧弦库与据孵出 黝黼蝴一 数引作叹莉个行操帮酗 凇炯| 薹撇一 责。为醛毛媸撖确姻慨颧黼瓦驯磁 引的交炙一懒蚍抛蝴淅始触糯 n a t i v ex m l 数据库存储模型研究 缓冲区管理器 缓冲区管理器的任务是从永久保存数据的磁盘中获取数据送入主存缓冲区 中。一般情况下,页或磁盘块是缓冲区和磁盘间的传送单位。为了从磁盘中得到 数据,缓冲区管理器需和底层的存储器管理器通信。所有对数据库的操作都通过 缓冲管理器,由它发出读物理页的请求,存储器管理器读出相应的物理页,通过 缓冲区管理器放入缓冲区。或是缓冲区管理器发出写物理页的请求,将缓冲区中 的数据通过存储管理器写入磁盘。 存储器管理器 数据库数据平常存储在磁盘中,而对数据的操作只能在主存中执行。存储器 管理器的任务就是控制数据在磁盘上的存放位置和在磁盘与主存间的移动。通过 此管理器,逻辑页的请求转化为对磁盘物理页的直接操作。 存储器 这里的存储器通常指的是磁盘,数据库系统中由磁盘来存储大量的数据。 缓冲区 缓冲区是主存中包含若干个页面的区域,它可以传输页面或磁盘块,对数据 起缓冲作用。所有需要从磁盘中获取信息的数据库系统组件,直接她或是通过执 行引擎与缓冲区和缓冲管理器间接地交互。各个组件可能需要的信息种类有:数 据( 数据库本身的内容) 、元数据( 描述数据库上的语义限制和模式信息 s c h e m a d t d ) 、统计数据( 关于数据特征的数据) 、索引( 支持数据库中数据有效 存取的数据结构) 。缓冲区管理器对缓冲区进行管理,负责申请和释放缓冲区页面, 按照一定的策略对缓冲区页面进行调度。 x m l 模式管理器 它主要负责数据库模式信息的管理和维护,它的目的是管理x m l 文档加入文 档集合,将文档集合加入到存储器中。模式管理器中可能包含每个文档集合的模 式信息( s c h e m a d t d ) 和集合中文档的索引、引用和被引用关系。它管理加入集 合的文档的结构特征,也就是什么类型的文档允许被加入到集合中( 当然,集合 也可以是模式独立的) ;文档集合怎样被存储在存储器中以及对于文档集合维持哪 种索引。大部分的模式信息被存储在x m l 文档中以便提供数据和模式的统一视 图。要被更新的x m l 数据通过解析后由x m l 模式管理器来确定集合和文档的加 载方式,然后由执行引擎来执行。x m l 查询管理器也要用到模式管理器的信息, 它利用模式信息来对查询路径进行预处理( 如检查该查询是否合法、路径是否存 在、数据类型是否匹配等) 。 事务管理器 从上面的论述可以看出,n a t i v ex m l 数据库管理系统可以重用关系数据库的 许多组件,事务管理器也是如此。它也必须确保用户在一个事务中数据操作的原 筇二章n a t i v ex m l 数据库概述 子性、一致性、隔离性和持久性( 即a c i d 特性) 。它提供类似传统数据库的提交 和回滚的操作,提供恢复、并发控制和锁机制。 日志与恢复:它负责事务的持久性。数据库的每一个变化都记录在日志中。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版室内设计师离职保密及客户信息保护合同
- 2025年二手房交易定金及房屋维修基金缴纳协议
- 2025版桩基工程劳务分包与施工进度控制合同
- 2025年防水施工质量检测与分包合同
- 2025第二行政小区居民楼道清洁与安全巡查合同
- 海南省临高县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版高端住宅售房协议范本及细则
- 2025版商业物业服务与绿色建筑认证合同
- 贵州省织金县2025年上半年公开招聘城市协管员试题含答案分析
- 2025电商运营入职合同范本:试用期规定及转正流程
- 招生代理授权合同范本
- 2025年广西玉林产业投资集团有限公司社会招聘5人笔试备考题库及答案解析
- 《质量管理与可靠性》课件-第4章 质量检验
- 2025至2030年中国分时度假行业市场运营现状及投资规划研究建议报告
- 孕期甲状腺功能课件
- 2025年财政部高层次财会人才选拔考试历年参考题库含答案详解(5套)
- 电子技术基础说课
- 2024年四川泸州医疗卫生辅助岗位招募笔试真题
- 旅行团队管理办法
- 2025年秋期部编版四年级上册小学语文教学计划+教学进度表
- 2025安宁疗护实践指南(试行)知识测试试题及答案
评论
0/150
提交评论