




已阅读5页,还剩53页未读, 继续免费阅读
(计算机软件与理论专业论文)基于关系数据库的xml数据存储方法的研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨工程大学硕士学位论文 摘要 x m l 数据的可扩展性和自我描述性使得它成为当前网络上数据传输的 主要形式,但是它对数据的处理能力却相当的有限,实现x m l 存储为关系 数据库以后,就可以利用关系数据库所带有的存储管理等技术来处理x m l 数据,所以把x m l 转换为关系数据库存储方式是很有研究价值的。 本文从x m l 和关系数据库等基础知识入手,深入研究了x m l 数据在关 系数据库中的存储方法,但发现其中存在的问题:基于d t d 的存储方法不能 够适应x m l 文档以x m ls c h e m a 为标准的趋势,伯哈农存储方法的搜索算 法不够高效同时转换规则存在一些漏洞等。本文针对x m l 文档的d t d 资源 的承前性和s c h e m a 资源的继后性提出了全面的存储方法,此种存储方法也 是基于查询代价的,首先在求得初始模式之前增加了深度处理操作,然后通 过d o m 树解析工具得到初始模式,接着在获取模式空间的时候考虑了复杂 节点和简单节点的区别并分别做出不同的处理,之后引入了以哈希连接算法 为基础的代价模型,通过改进的爬山算法从模式空间中找出一个最优的模式, 提高了存储方法的性能。 最后,通过实验对改进的映射方法进行了验证,实验结果表明,改进后 的映射方法和经典的伯哈农存储方法相比较具有更好的性能。 关键词:x m l ;关系数据库:数据存储;查询代价 哈尔滨工程大学硕士学位论文 a b s t r a c t x m lb e c o m e st h em a i nf o r mo fd a t at r a n s i m i s s i o ni nt h ec u r r e n tn e t w o r k b e c a u s ei tc a nb ee x t e n d e da n ds e l f - d e s c r i p t i v e h o w e v e r , i t sc a p a b i l i t yo fd a t a p r o c e s s i n gi sv e r yl i m i t e d a f t e rt h er e a l i z a t i o no fx m ld a t as t o r i n gt o t h e r e l a t i o nd a t a b a s e ,w ec a nu s et h ed a t a b a s es t o r a g em a n a g e m e n tt e c h n o l o g yi nt h e r e l a t i o nd a t a b a s et oh a n d l ex m l d a t a t h e r e f o r e ,i n t e g r a t i n gx m l i n t or e l a t i o n d a t a b a s es t o r a g em e t h o di sv e r yv a l u a b l e t h i st h e s i si sb a s e do na c k n o w l e d g eo fx m la n dr e l a t i o nd a t a b a s e ,a n d r e s e a r c h e sd e p p l yt h es t o r i n gm e t h o do fx m ld a t ai nr e l a t i o nd a t a b a s e b u tt h e r e a r es t i l ls o m ep r o b l e m s ,t h es t o r a g em e t h o dw h i c hi sb a s e do nd t dc a nn o ta d a p t t ot h et r e n dt h a tx m ld o c u m e n t sa le d e f i n e db yx m ls c h e m a , a n do nt h es a m e t i m e ,t h es e a r c hm e t h o da n dt h em o d ec o n v e r s i o nr u l eo fb o h a n n o ns t o r a g e m e t h o da len o tt h eb e s t t h i st h e s i sp r o p o s e saf u l l - s c a l em a p p i n gm e t h o dw h i c h i sb a s e do nt h ec o s to fs e a r c ht o w a r d st h ef o r m e rn a t u r eo fx m ld t da n dt h e s u b s e q u e n tn a t u r eo fx m ls c h e m a f i r s t l y , i ta d d st h ed e e ph a n d l i n gb e f o r et h e s e e k i n go fi n i t i a lm o d e ,a n dt h e ni tg e t st h ei n i t i a lm o d et h r o u g hd o m t r e e a n a l y s i st 0 0 1 i td o e st h ed i f f e r e n tt r e a t m e n tc o n s i d e r i n gt h ed i f f e r e n c eb e t w e e n c o m p l e xn o d e sa n ds i m p l en o d e sw h e nh a v i n gt h em o d es p a c e a f t e rt h a t ,t h i s t h e s i si m p o r t st h ec o s tm o d e lw h i c hi sb a s e do nh a s hl i n k i n ga l g o r i t h ma n df i n d s t h eb e s tm o d ef r o mt h em o d es p a c eb yi m p r o v e dm o u n t a i n c l i m ba l g o r i t h m t h u si ti m p r o v e st h ep e r f o r m a n c eo ft h em a p p i n gm e t h o d a tl a s t ,t h i st h e s i sv e r i f i e st h ei m p r o v e m e n to ft h em a p p i n gm e t h o dt h r o u g h e x p e r i m e n t s t h er e s u l t ss h o wt h a t t h ei m p r o v e dm a p p i n gm e t h o dh a sb e t t e r p e r f o r m a n c ec o m p a r e dw i t ht h ec l a s s i c a lm e t h o do fb o h a n n o nm a p p i n g k e y w o r d s :x m l ;r e l a t i o nd a t a b a s e ;d a t as t o r i n g ;s e a r c hc o s t o 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导 下,由作者本人独立完成的。有关观点、方法、数据和文 献的引用已在文中指出,并与参考文献相对应。除文中已 注明引用的内容外,本论文不包含任何其他个人或集体已 经公开发表的作品成果。对本文的研究做出重要贡献的个 人和集体,均已在文中以明确方式标明。本人完全意识到 本声明的法律结果由本人承担。 作者( 签字) :堇圃兰里 日期:沙o g 年1 月j 0 日 哈尔滨工程大学硕士学位论文 1 1 引言 第1 章绪论 在过去的二十年内,计算机和通讯工具每年以迅猛速度增长。与此同时, 计算机通讯网络也以惊人的速度发展,将世界的各个角落连接成为一个巨大 的信息网。w w w 信息网是最为流行的全球信息资源网,它为信息的生产、 传输和利用开辟了一个新的空间。同时,随着因特网的迅速发展,网站和静 态h t m l ( h y p e r t e x tm a r k u pl a n g u a g e ,超文本标记语言) 页面也急剧膨胀, 面对庞大的信息海洋,人们却遇到了w e b 上的两大问题:一是因特网速度极 慢,有时犹如爬行的蜗牛;二是虽然可以在线获得各种信息,但是要找到所 需要的信息常常极为困难。其中虽然有硬件方面的原因,但主要还是由目前 w e b 标记语言h t m l 的性质引起的。 为了解决上述问题,w o r l dw i d ew e bc o n s o r t i u n l ( w 3 c ) 的x 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 ,可扩展的标记语言) 。x m l 是 s g m l ( s t a n a 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 在w e b 上以目前h t m l 的方式被服务、接收和处 理。x m l 被设计成易于实现且可在s g m l 和h t m l 之间互相操作。x m l 具有 可扩展性和自我描述性,使得它成为当前网络上数据传输的主要形式,虽然 它的数据存储能力和数据表示能力非常强大,但是相对于各种数据库而言它 的数据处理能力非常的有限。 数据库和x m l 提供存储数据的互补方式n 4 ,:数据库存储数据有利于数据 的有效检索,x m l 表示数据有利于应用程序之间互相操作的信息交换为了 实现应用之间的信息交换,可以将数据库信息转换为x m l 文档,然后使用 x m l 工具对这些文档进行处理,当然,也要把x m l 文档转化为数据库中的数 据进行存储,实现儿存储为数据库数据以后,就能利用数据库所带有的存 储管理等技术来处理x m l 数据。由于传统数据元素和x m l 自由文本混合, 哈尔滨工程大学硕士学位论文 就需要有解决全结构、半结构、无结构数据的能力,文档和数据库之间存在 的分歧,对混合数据库系统和信息查询方面的研究提出了新的挑战,有许多 存储管理关系数据库问题有待解决,另外,数据库是以后很长一段时间内都 要使用的数据存储手段,所以把儿转换为数据库存储方式是很有研究价值 的。 1 2 国内外研究现状 关系数据库是现在和以后很长一段时间内需要用的数据库类型,实现把 x m l 数据存储到关系数据库以后,就能利用关系数据库所带有的存储管理等 技术来处理x m l 数据1 , 在国外,x m l 数据与关系数据库的相关技术已经引起了高校和科研院以 及商业数据库公司的关注,其中比较有代表性的就是美国斯坦福大学的l o r e 系统项目一。在国内,相关研究则起始于新世纪之初,一些大学及有实力的软 件公司、科研院所都进行了相关的研究,并且每年召开的国际顶级的数据库 业界会议都把半结构化数据和x m l 的相关研究方向作为热点来讨论。 在2 0 世纪9 0 年代,伴随着网络和x m l 的发展,美国学者r c n n c r 就提 出了x m l 和关系数据之间的转换的定义及其必要性。 在2 0 世纪末期,x m l 文档以d t d 描述,国内外很多学者提出了不同的 存储方法,但是其大致过程都是以d t d 为基础,先对d t d 进行简化,然后 据此再生成d t d 图和元素图,最后根据制定的规则生成关系模式。但是这种 存储方法存在着很大的缺点,那就是没有考虑到具体的应用,以致生成的关 系模式不能保证适合所有的应用情况,对有些应用可能会付出巨大的查询代 价,而用户自定义映射方法的存储技术要求用户不仅要精通x i v i l 技术,还 要精通数据库技术,对用户的技术要求太高,这样就要求学术界提出一种更 灵活的存储方法。 2 0 0 1 年美国学者b o h a n n o n 和r c n n e r 等人提出了x m l 数据到关系数据 的大致存储方案,2 0 0 2 年b o h a n n o n 提出了经典的存储方法,并且被大多数 商业关系数据库系统采纳,此种方法用x m ls c h e m a 描述,并且它是基于代 价查询优化的存储方法,它考虑了具体的应用,能生成某具体应用下较好的 2 哈尔滨工程大学硕士学位论文 关系模式,但是它也存在着一些缺陷,酋先是重写物理模式的规则中有几组 不够完全,对特殊种类元素没有进行处理,也容易产生大量空值,它采用的 模式搜索算法不是也不足够高效。 至今,囡内外的许多学者提出的众多新理论都是基于以上几种方法或者 对上述方法的改进,并且未有一人能够提出像b o h a n n o n 存储方法样的被 大多数人所承认的权威方法。 在国内,复旦大学对此有一定的研究,并且取得了一定的成果,v x m l r 系统就是由复旦大学自主提出新理论并付诸实践的典型代表。 但是,x m l 数据在关系数据库存储还存在系列问题,有待进一步的研 究。 1 。3 研究热点及难点 x m l 是半结构化数据,丽关系数据库是为存储和管理结构化数据设计 的,其存取数据的模型是扁平的二维关系表拇t 。鉴于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 技术,还要精通数据库技术,对用户的技术要求 太离。第二种映射方法即基于代价查询优他的映射方法考虑了具体的应用, 能生成某具体应用下较好的关系模式,但这类方法发展得还不是很成熟,有 待进一步的改进与完善,也正是需要所继续研究的,也是难点所在。 3 哈尔滨工程大学硕士学位论文 总之,基于关系数据库的x m l 数据的存储的研究还存在一些困难和问 题,需要进一步的研究。 1 4 论文主要研究内容 基于查询代价的模式映射方法能够产生一个最优的模式,使得查询代价 最小,本文主要阐述以x m ld t d 为基础的基于查询代价的x m l 数据存储 到关系数据库中的大致过程,针对典型的b o h a n n o n 映射方法- - 副并且以它为基 础进行改进,最后得出一种全面高效的方法。本文的研究内容主要包括以下 几个方面: ( 1 ) 分析x m l 及其相关的基本概念和基本技术,同时包括关系数据库 的相关知识和技术,了解x m l 数据存储的研究和发展现状,为课题的研究 打下坚实的基础。了解x m l 数据在当前的存储形式,针对不同的存储策略 做比较,分析它们的优缺点,最后得出x m l 存储技术的发展趋势,为课题 的研究的必要性奠定理论基石。 ( 2 ) 深入研究x m l 数据在关系数据库中的存储方法,x m l 在关系数 据库中存储方法的关键问题是x m l 模式到关系模式的映射问题,各种模式 映射方法是研究的重点,所以要学习和掌握国内外较为先进的模式映射方法, 针对目前各种方法中存在的和遇到的一些问题提出一种全面的高效的方法。 ( 3 ) 设计实验,验证映射方法的可行性,最后通过对实验结果数据的分 析,评价映射方法的性能。测试的x m l 文档及其相应的查询工作负载可以 已知,利用v i s u a lc 拌n e t 和s q ls e r v e r 可以对查询代价进行验证。 1 5 论文的组织结构 本论文组织结构如下: 第1 章分析课题的来源和背景以及国内外研究现状,明确课题研究的热 点和难点,最后确定论文的研究内容。 第2 章阐述x m l 基础,包括词法和语法等,同时研究和存储过程有关 的x m l 的相关技术,阐述x m l 存储方法的策略研究。 4 哈尔滨工程大学硕士学位论文 第3 章阐述x m l 数据存储到关系数据库中的两类典型方法,由于下一 章改进存储方法的提出是基于以上两类典型方法的,因此它们为全文奠定了 基石。 第4 章首先提出改进的存储方法的主要思想,然后对这种方法作出了具 体的阐述。 第5 章阐述实验数据的来源和实验环境的大致情况,最后通过介绍实验 的具体步骤对实验的结果进行分析。 哈尔滨工程大学硕士学位论文 第2 章x m l 技术基础 要想把x m l 数据存储到数据库中,首先就要对x m l 的基本概念和相关 知识有一定的了解和掌握,这是进行下一步存储工作的前提。w 3 c 的x m l 工作组制定出了x m l 及其相关标准,包括x m l 的标记、x m l 语法以及相 关模式等,本章将对这些内容进行简要的介绍。 2 1 x m l 简介 x m l 扩展了h t m l 的标记和功能,使人们可以根据需要定义标记。x m l 还具有信息描述、交换等多项功能。掌握x m l 的语法知识是进一步学习和 运用x m l 技术的前提,下面对其简略介绍一下。 2 1 1x m l 标记 下面简述一下x m l 的标记规则n 3 ,: ( 1 ) 标记的命名规则 作为元标记语言,x m l 可以在文档中创建、使用新的标记和文法结构。 正是这种优点使得用户根据自己的特殊需要制定出适用于自身的一套标记和 文法结构,以便于结构化地描述自己领域的信息,从而提供一种处理数据的 最佳方式。 x m l 的可扩展性为开发者进行程序开发提供了自由广阔的空间,但并非 多有名字都可以作为标记名。作为标记名字的字符串必须满足以下要求。 1 ) 名称的开头必须是字母或“一: 2 ) 标记名称中不能有空格: 3 ) 名称的字符串只能包含英文字母、数字、“ 、“ 、“”等字符。 ( 2 ) 标记的使用规则 1 ) 必须具有根标记且根标记必须唯一,结构良好的x m l 应用程序的根 6 哈尔滨工程大学硕士学位论文 标记必须要唯一。 2 ) 开始标记和结束标记需配对使用,在h t m l 中,只有开始标记而没 有结束标记的程序往往还能得到正确的显示结果,但在x m l 文档中这种情 况是不允许存在的。 3 ) 标记不能交错使用,所谓标记不能交错使用就是指如下情形的标记使 用。 7 0 4 0 1 4 7 6 8 8 ,这种使用方法是违 法的。应改为: 7 - 0 4 - 0 14 7 6 8 8 。 4 ) 所谓空标记指的是标记只有开始没有结束,又叫孤立标记。这种标记 有的表示一种格式信息,例如 在h t m l 中代表了一条水平线,有的则保 存一些数据信息。空标记可写成“珠记名 ”的形式。 5 ) 标记对大小写敏感,h t m l 中并不存在大小写敏感问题,但在x m l 中相配对的标记大小写必须相同。 2 1 2x m l 语法 结构良好的x _ , m l n 耐文档,通常是指没有语法错误的x m l 程序。x m l 是 一种语法要求十分严格的标记语言,因此语法有严格的限制。这里所说的结 构良好的煳l 文档就是指满足所有语法限制的x m l 文档。有关x m l 的基 本语法一共有4 条:文件的第一条语句必须是有关版本的声明;标记的使用 必须遵循上述标记语法的各规则;属性的值一定要被双引号囊括起来;特殊 字符必须使用y j 、4 l 中特定的编码来表示。 ( 1 ) 处理指令 处理指令是包含在x v l l 文档中的一些命令性语句,目的事告诉x 池处 理一些信息或执行一定的动作。例如想要通知儿解析器某篇儿文档所 使用的编码字符集,或是要通知儿解析器有关瑚l 的版本信息等,都必 须通过处理指令来实现。处理指令的格式为 其中,“ 是开始和结束的界定符号,x i i d 是处理指令的命令名字; v e r s i o n 是命令中的属性,通常描述处理指令一个特定的细节;1 0 是属性的 7 哈尔滨工程大学硕士学位论文 值,代表了对属性进行某一方面的设定。总而言之以上指令就是告诉x m l 解析器,该文档遵守x m l l 0 规范,而且有关版本声明的信息必须放在整个 x m l 文档的第一行。 ( 2 ) x m l 的属性 x j d l 允许为元素设置属性,用来为元素附加一些额外信息,这些信息与 元素本身的信息内容有所不同。一个x m l 可以包含多个属性,从而存储一 个或多个关于该元素的数据。对于非空元素,属性的基本使用格式如下: 对于空元素,属性的基本使用格式如下: 在x m l 设置属性时应注意: 1 ) 要符合x m l 的语法格式,属性值要用引号( 单引号或双引号) 括起 来。 2 ) 当属性值本身含有单引号时,则用双引号作为属性的定界符,当属性 值本身含有双引号,则用单引号作为属性的定界符,当属性中既包含单引号, 又包含双引号的时候,属性值中的引号必须用实体引用方式来表示。 3 ) 一个元素不可以拥有相同名称的两个属性,不同元素可以拥有两个相 同名称的属性。 4 ) 不但自定义标记中可以有属性,3 f l v i l 文档的处理指令中也可以有属 性,例如x m l 声明版本信息的v e r s i o n 属性。 。 ( 3 ) 特殊字符的使用 在x m l 文档中有些字符时特殊字符,这些字符的特殊之处就在于这些 字符在3 2 m l 标记语言中已经赋予了特殊的意义。例如“ ”在3 3 v i l 标记语 言中就表示所有的开始标记,因而是x m l 语言的保留字符。如果现在要求 将字符“ 显示在页面上该如何处理呢? 处理方法是给这些特殊字符定义一 个特殊的编码。 8 哈尔滨工程大学硬士学位论文 2 2x m l 相关技术 目前,以舳为基础的各种标准与规范得到了迅猛的发展,很多和微 软一样的大公司都已经舞发了以x m l 失基础的电子商务解决方案。舭规 范e l j 一系列标准和协议组成,儿1 0 规范是帆核心的规范,是x m l 语 言的语法。其中,x m l 文档格式标准包括黼d t d 和x j v i ls c h e m a “+ , x m l 文档解析标准包括d o m 和s a x r r 引町等,x m l 文档查询标准包括 x q u e r y m 川,等,x m l 文档结构标准包括c s s 等,下面对这些相关技术简要 介缨一下。 2 。2 1x m ld t d x m l 文档是一种元标记语言,即一种定义标记语言的语言。在) 洲l 中 可以创建新的标记语富,这些薪麓标记语言要通过文档类螯定义( d t d ) 来 定义。d t d 文档是这些新的标记语言的法律性文档,如果x m l 文档的语法 符合d t d 的定义和规定,那么就称隽一个合法的x m l 文档,否则就是非法 的x m l 文档。d t d 定义了文档的逻辑结构,规定了文档中所使用的元素、 实体、元素的属性、元素与实体之间的关系,这样可以提供一个统一的格式 并且可以验证数据的有效性,还可以保证数据交流和共享的顺利进行。下面 对d t d 做一下简要介绍。 ( ) d t d 元素 d t d 元素表示一个信息对蒙,而属性表示这个对象的性质。所有元素有 且只有一个根元素,其他的元素都是它的子元素,除根元素岁 ,每个元素都 被其他元素包含,一个元素可以有几个不同类型的子元素。元素的基本类型 可以分为两神:一种称为简单型,另一种称为复合型。简单型具有文本数据, 即可析字符数据,该类型也称为上下文中的“撑p c d a 弘;复合型可以包含 其他元素和文本数据。对于元索的声明,简要介绍如下。 1 ) 元素声暖的基本语法格式如下; ,其中,e l e m e n t n a m e 9 哈尔滨工程大学硕士学位论文 1 l l l l l l li 鼍鼍宣i i i i i 剖 是宋声明的元素名称,e l e m e n td e f m a t i o n 为元素内容格式的定义。 2 ) 空元素的声明,其声明格式为: 。 3 ) 不限定元素内容酶声嬲。a n y 是d t d 中使用缀频繁的一个关键字, 特别是对于文档根元素的声明。在定义一个d t d 文档是通常很难准确地确定 一个元素是否具有子元素的情况,此时一般的做法是指定该元素的予元素为 a n y 型( 表示可以是任意的元素) ,这样在它之中可以包含任何数据、任何 声明的子元素及其数据和子元素的组合。a n y 元素的声明格式为: 在文档开始定义时,并不明确将来的应用领域中会有多少个元素,所以 唯一的做法就是标记为a n y 类型,表示可以包含任何元素和可解析数据, 然后在文档的实际开发过程中再逐步完善该元素的子元素的具体定义,将 a n y 关键字替换掉。 4 ) 子元素列表的设定,在x m l 中有一种针对复合元素的最为严格的设 定方法,称为子元素列表的设定。在这种方式下,元素都拥有哪些子元素、 每个子元素出现的次数和位置都有明确的规定,在具体文档实现时,必须严 格执行。子元素列表的设定语法如下: ! e l e m e n t e l e m e n t _ n a m e ( c h i l d _ e l e m e n t l ,c h i l d _ e l e m e n t 2 ,a 5 ) 可选择的子元素,有些时候需要在两个或多个互斥的元素中进行选择, 即多选一的情况,如个人的性别可戮是男或女,嚣者中炎能有一种情况。 d t d 中有专门的语法来处理这种情况,其语法格式如下; 。 6 ) 元素出现次数的控制,在d t d 中定义一个元素的予元素无非是解决 该元素可以包含什么元素,各个子元素的出现次序以及能够出现的次数的问 题。d t d 可以在一定程度上控制出现的次数:一个元素可能出现一次,也可 能不出现,这是可以通过在元素名后面加上一个搿? 来实现;一个元素可 能不出现,也可毙出现多次,这时可通过在元素褒后边加上一个搿搴来实现; 一个元素可能出现一次,也可能出现多次,但是至少也要出现一次,这时可 以逶过在元素名后面加上一个“+ 静来实现。 7 ) 在声明复合型元素的时候,可以使用括号将其部分子元素组合在一起, 成为一个元素组,该元素在特性上与普通元素没什么区别,可以对其使用 l o 哈尔滨工程大学硕士学位论文 “? ”、蟾、“+ 挣等控制字符。 ( 2 ) d t d 属性 在d t d 中,属性的声明格式力: 其中 为属性声明的关键字,e l e m e n ti l a m e 为元素名, a t t r i b u t en a m e 为属性名,t y p e 是属性类型,d e f a u l tv a l u e 为没有设定属性 值时的默认值。在属性的声明中t y p e 部分为属性的类型设定,d t d 中属性 的数据类型有l o 种,下面对这些数据类型进行一下介绍: 1 ) c d a t a 型,它表明属性值为不包含“一和“的任意字符串,如 果属性值中需要包含以上两者,剡需要使用特殊字符来代替。 2 ) e n u m e r a t e d 型,如果属性值并不是任意的字符串,而是在几个可能 的值中进行选择。 3 ) i d 型,当元素的某个属性值是不能重复的时候,则需要属性的i d 类 型。在一个x m l 文档中,所有元素的i d 类型属性的属性值必须是唯一的, 不可重复,另外,一个元素不能有超过一个i d 类型的属性。 4 ) i d r e f 与i d r e f s 型,i d r e f 为i d e n t i f i e rr e f e r e n c e 的缩写,i d r e f 与l d 类型属性的关系为子元素与父元素的关系,即i d r e f 类型属性的值盛 须是其他_ 元素的i d 类型属性的值,且该d 类型属性的值必须在文档的其他 地方被设定过。i d r 萎f s 类型属性的属性僮可有多个,每一个都必须是在文 档其他地方被设定了的i d 类型属性的值,而这多个属性值之间用空格隔开。 5 ) e n t i t y 与e n t i t y s 型,曼n 下玎y 类型的属性提供了把外部二进制 形式的文件和外部不可解析实体链接到x m l 文档的功能。因此其属性值也 必须为不可解析的链接外部实际数据的通用实体名。e n t i t y s 类型属性的属 性值可由多个不可解析的外部实体名称组成,各实体名称之间使用空格隔开。 6 ) n m t o k e n 与n m t o k e n s 型,n m t o k e n 类型的属性限定属性值 是有效的x m l 名称,这个属性值可以由英文、数字、搿+ 、鬈、材捧、群: 等组成。 7 ) n o t a t i o n 型,x m l 文档孛孳| 入了外部不可解拼的实体痿,鳃析器 无法解析这些二进制文件,这时,就可以使用n o t a t i o n 类型的属性为这些 二进制文件指定与其相对应麴应用软件以对其进程处理。 , 1 1 哈尔滨工程大学硕士学位论文 ( 3 ) d t d 实体 实体是包含了文档片断的虚拟存储单元,可用来存储x m l 声明、d t d 、 其他形式的文本及二进制数据等。简单来讲就是一段代码或数据的代称,这 个代称即为实体的名字。当需要在文档中引用某段代码或数据时,可以引用 与这段代码或数据相对应的实体名称来代替实体的具体内容。具有正确性检 查功能的x m l 处理器在提交文档给最终应用程序之前或在显示文档以前, 将先把所有不同的实体引用替换为与其对应的具体内容,从而构成一个完整 的文档。 按照实体的具体内容来分类,实体可分为可解析与不可解析两类。可解 析实体的具体内容为简单的字符、数字、文本块,而不可解析实体的具体内 容则为图片、声音等二进制文件。 按照逻辑存储来分类,实体可分为内部实体与外部实体两类。内部实体 的内容是在文档内部设定的,而外部实体则是一个外部独立的物理存储对象, 如某个外部文件。 按照使用的范围来分类,实体可分为一般实体与参数实体两类。一般实 体都用来构成文档的具体内容,可出现在x m l 文档中,也可出现在d t d 中, 而参数实体只能出现在d t d 中,不能出现在x m l 文档中。 2 2 2x m ls c h e m a x m ls c h e m a 是d t d 之后第二代用来描述x m l 文件的标准,是用来对 x m l 文档的类型定义的语言,用来规定x m l 文档的数据类型及组织方式, 同时还是丰富的元数据资源。x i v l ls c h e m a 拥有许多类似d t d 的准则,但又 要比d t d 更为强大一些,w 3 c 协会宣称,与d t d 相比x m ls c h e m a 拥有 许多优势。使用d t d 虽然带来了较大的方便,但是d t d 存在一些缺陷:一 是它用于不同于x m l 的语言编写,需要不同的分析器技术,这增加了工具 开发商的负担,降低了软件瘦身的可能性,此外开发人员需要多学- i 1 语言 及其语法,而x l v i ls c h e m a 是按标准x m l 规则编写的,更容易掌握。二是 d t d 不支持名称空间。随着大部分的数据处理日益以x m l 为中心,信息的 相互联系变得日益普及与深入,名称空间作用也将凸现。这些就要依靠x m l 1 2 哈尔滨工程大学硕士学位论文 s c h e m a 了,它不仅可戬定义x m l 文档的结构丽豆还允许约束文档的内容, 另外,x m ls c h e m a 自身就是一个x m l 文档,其基于标签的语法比d t d 中 的特殊字符要清楚多了,它完全使用矿匝炸为籀述手段,具有缀强的描述 能力、扩展能力和处理维护能力。x m ls c h e m a 是用一套预先规定的x m l 元素和属性创建的,这些元素藕属性定义了文档的结构和内容模式。下面对一 x m ls c h e m a 做一下介绍。 ( 1 ) s c h e m a 的格式和使用 一个x s d l ( x m ls c h e m ad e f i n i t i o nl a n g u a g e ) 文档由元素、属性、名 称空间和x m l 文档中的其他节点构成,并且至少要包含:s c h e m a 根元素、 x m l 模式名称空闻的定义和元素定义。 符合某个模式的文档称为实例。实例可以根据特定的模式进行验证。需 要声穰x m l 文档的s c h e m a 实铡名称空润,并且把名称空闻映射到髓缀x s i 。 实例与模式之间有多对多的关系。一个模式可以描述多个有效的实例( 通过 使用不同的根元素类型来实现) ,同样,一个实例也可以被多个模式攒述。 s c h e m a 文档用来验证x m l 文档的正确性,用来判断实例是否符合模式中所 描述的所有约束,涉及到检察实例中所有的元素和属性。 一个模式可能由多个模式文档构成。多个模式文档通过包含或导入机制 来形成模式,当其他模式文档与主模式文档具有相同的目标名称空间时,需 要使用包含;当模式文档之阕各自拥有不同的基标名称空阈时,需要使用导 入。 ( 2 ) s c h e m a 的元素声明和属性声明 元素是创建) q 呱文档的主要构建材料。在w 3 cx m ls c h e m a 中,元素 通过使用e l e m e n t 元素实现。元素声明用于给元索指定元素类型名称、内容 和数据类型等属性。在x s d l 中,元素声明可以是全局的,也可以是局部的。 1 ) 在s c h e m a 文档中必须定义一个且只能定义一个s c h e m a 根元素,根元 素不但表明了文档类型,而且还包含模式的约束、x m l 模式名称空闻的定义、 其他名称空间的定义、版本信息、语言信息和其他一些属性。 2 ) x s d 中的元素是利用e l e m e n t 来声明的。其中n a m e 属性是元素的名 字,妙p e 属性是元素值的类型,在这里可以是x m ls c h e m a 中内置的数据类 型或其他类型。具体定义格式如下: 1 3 哈尔滨工程大学硕士学位论文 ! e l e m e n t 磁髓e = “a u t h o r t y p e 一 x s d :s t r i n g 今 其中,n a m e 是元素类型的名称,必须是以字母或下划线开头,而且只能够包 含字母、数字、下划线、连接符及句号。t y p e 属性是必要的,说骥元素的数 据类型。 3 ) 默认值和固定筐通过为空元素增加值的方式来扩展实例。如果文档中 存在空的元素,模式处理器根据模式文档的定义,会插入默认值或固定值。 在x s d l 中,默认值和固定值分别通过d e f a u l t 和f e d 属性设置。两个属性 只能出现其中之一,因为他们是互斥的。 固定值和默认值在相同的情况下添加,它们的差别仅在于如果元素拥有 一个值,则该值必须和固定值攘等。当模式解析器确定露素值和圈定值实际 上是否相等的时候,会考虑到元素的数据类型。 4 ) 弓l 用是利用e l e m e n t 元素的r e f 属性实现的,主要适用于避免在文档 中多次定义同一个元素,应当将经常使用的元素定义为根元素的予元素,即 为全局元素,这样方便在文档的任何地方引用它。 属性声明用于命名属性并使之与某个特定的简单类型相关联。在x s d l 中,实现的方法是使用a t t r i b u t e 元素。在x m ls c h e m a 中可以按照定义元素 的方法定义属性,僵受限制的程度较高。它们只能是简单类型,只能包含文 本,且没有子属性。属性是没有顺序的,而元素是有顺序的。 定义属性翡方法如下: 该语句定义个名为i s b n 的属性,它的值必须是一个字符类型。所有的属性 声明都把属性指定为某种简单类型。所有的属性都具有简单类型而不是复杂 类型,因为它们本身不能有子元素和属性。 属性声明有三种方式: 1 ) 在属性声明中通过t y p e 属性指定命名简单类型。它可以是内置类型, 也可以是用户鲁定义类型。 2 ) 通过指定s i m p l e t y p e 子属性来指定匿名类型。 3 ) 既没有t y p e 属性,又没有s i m p l e t y p c 予属性,扶嚣不指定特定类型。 在这种情况下,属性的类型为a n y s i m p l e t y p e ,它可以拥有任何值,只有它是 结构合理的x m l 文档。 1 4 哈尔滨正程大学硕士学位论文 对于属性来说,也可以通过默认值和固定值的方式增加未出现的属性来 扩充实例。定义和扩充的方式与元素一致。在x s d l 中,默认值和固定值分 别通过d e f a u l t 和嚣x 甜属性设置,两个属性只能出现其中之一,因为它镌是 互斥的。 上面会绍了s c h e m a 的基本构成,其实,它的真正强大之处在予它的内 置数据类型,w 3 cx m ls c h e m a 可以把x m l 文档中的元素声明为特定的类 型,准许解析器检查文档的内容及其结构。x m ls c h e m a 定义了两种主要的 数据类型:预定义简单类型和复杂类型。这两种数据类型之间的主要区别是 复杂类型可以像数据样包含其他元素,而简单类型则只能包含数据,但简 单类型给予了x m ls c h e m a 低级类型检查的能力。 此外,还有的就是它支持名称空间,名称空间就是为在x m l 中使用的 名称提供一个容器,这样就可以避免元素命名冲突的阀题。 2 ,2 3d o m d o m n 喃哺1 ( 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 i v l l 文档的方法。 作为w 3 c 的标准接口规范,雷熹蓍d o m 由3 部分组成,包括:核心、 h t m l 和x m l 。核心部分是结构化文档比较低层对象的集合,所定义的对象 已经完全可以表达出任何h t m l 和x m l 文档串的数据了。h t m l 和x m l 接翻两部分则是专为操作具体的h t m l 和x m l 文档所提供的高级接口,使 对这两类文件的操作更加方便。 x m ld o m 包含4 个主要对象:儿d o md o c u m e n t ,x m ld o mn o d e , x m ld o mn o d e l i s t 和x m ld o m n a m e d n o d e m a p 。与任何其他对象模型一 样,每个x m ld o m 对象都有其自己的特性和方法。 d o m 对象映射了x m l 文档的树状结构,为用户提供的访问x m l 文档 信息的媒贪是一种分瑟对象模型,丽这个树状结构,则是一棵根据x m l 文 档生成的结点树。 1 5 哈尔滨工程大学硕士学位论文 一个x m l 分析器,在对x m l 文档进行分析之后,不管这个文档简单或 复杂,其中的信息都会被转化为一棵对象结点树。在这棵结点树中,有一个 根结点一o c 啪e n t 结点,所有其他的结点都是根据根结点的后代结点。结 点树生成之后,则可以通过d o m 接口访问、修改、删除、创建树中的结点 和内容。 2 3 本章小结 本章介绍了x m l 技术的基础知识,包括它的标记和语法,这是研究x m l 存储方法的先前条件,接着介绍了和x m l 相关的技术,在x m l 文档格式标 准这一方面选取了x m ld t d 和x m ls c h e m a 进行了详细的阐述,在x m l 文档解析标准这一方面本文选取了d o m 进行了简要的阐述,这些内容都与 把x m l 存储到关系数据库中这一个课题有直接和密切的关系,是本文进行 下一步研究分析和改进的基础。 1 6 哈尔滨工程大学硕士学位论文 第3 章x m l 在关系数据库中的存储 x v l l 在关系数据库中存储是一个复杂的过程,在第2 章介绍了x m l 及 其相关基础知识后,本章将开始讨论具体的存储方法。在这方面,国外的某 些专家如b o h a n n o n 等人已经有了一定的研究,国内的专家对于该领域的研 究也此起彼伏。本章将简要阐述一下x m l 在关系数据库中的存储的几种方 法,然后选出两个比较热门且比较有代表性的方法介绍一下。 3 1x m l 数据在关系数据库中的存储策略 从数据管理的角度来看x m l 数据,x m l 可看作具有层次结构的半结构 化数据。关系数据库是为存储和管理结构化数据设计的,其存取数据的模型 是扁平的二维的关系表。关系数据库的二维表由行和列组成:列称为字段, 用于表示组成数据有效信息的属性:行则称为元组,用于表示一条由各个字 段组成的完整的数据记录。在关系数据库中,表之间的联系通过“主键- # b 键”关系来关联。具有层次结构的半结构化数据x i v l l 与扁平的、无序的关 系模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 近代散文的特点及赏析:初三语文课文教案
- 运输路线优化效果评估表
- 农业资源综合利用项目协议书
- 教室里的感人时刻话题作文8篇范文
- 小学阶段的跨文化教育设计
- 数字化背景下平台经济与实体经济的产业结构升级
- 利润与费用表概述
- 环境污染隐患排查治理的可持续发展路径
- 乡村教育资源配置的不平衡与名师工作室的适应性
- 餐饮业食品安全管理规定
- 电工技术-北京科技大学中国大学mooc课后章节答案期末考试题库2023年
- 机械原理课程设计-旋转型灌装机
- 防震减灾科普知识讲座PPT幻灯片
- 2019年4月27日山东省纪委监委遴选公务员考试真题及答案
- 新疆全部及全国部分加气站分布情况6
- 2023年中国各地磁偏角
- 美国大选-特朗普介绍(个人演讲PPT)
- 底座工艺规程编制及工装设计
- 国企治理三会一层详解
- 高温高压设备警示牌
- GB/T 42064-2022普通照明用设备闪烁特性光闪烁计测试法
评论
0/150
提交评论