(计算机软件与理论专业论文)xml模式到关系模式的映射方法研究与改进.pdf_第1页
(计算机软件与理论专业论文)xml模式到关系模式的映射方法研究与改进.pdf_第2页
(计算机软件与理论专业论文)xml模式到关系模式的映射方法研究与改进.pdf_第3页
(计算机软件与理论专业论文)xml模式到关系模式的映射方法研究与改进.pdf_第4页
(计算机软件与理论专业论文)xml模式到关系模式的映射方法研究与改进.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

(计算机软件与理论专业论文)xml模式到关系模式的映射方法研究与改进.pdf.pdf 免费下载

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

文档简介

山东大学硕士学位论文 摘要 x m l 正迅速取代耵m l 成为w 曲上数据表示、集成和交换的标准。与 删相比,皿具有简单、自我描述的特点,并且实现了内容、结构和表 现三者的分离,更适合于数据表示和交换。近来,儿在各种领域得到了广 泛的使用,w 曲上涌现了海量的x m l 数据。为了有效地加工、分析和处理v 几 数据,研究者们已经提出了各种儿的查询语言和存储管理技术。在存储管 理咀,的各种可能的方式中,基于关系的x m l 数据处理是种可行而有前景 的方式,受到了广泛的关注。 x m l 数据库系统大多运用于基于网络的查询系统,并且更新速度非常快, 数据量非常大,因此,查询性能显得非常重要。用户对于其所提交的查询, 总是希望检索时间越短越好。但是现有模型映射技术所生成的关系模式规范 化程度比较高,一般为3 n f 或b c n f ,对于需要进行频繁查询操作的系统来说, 规范化程度高未必是一件好事,关系模式规范化的程度越高,产生的关系越多, 而血文档可能会被分解到数据库中的不同关系表中,在进行查询时会进行 频繁的连结操作,导致系统性能降低。并且现有模型映射技术在映射过程中只 考虑了模式文件中的结构和内容信息,忽视了其中所蕴含的语义约束,如键、 函数依赖等。这些约束对于数据完整性、查询优化和数据集成等都具有非常 重要的作用。 本文主要研究基于关系数据库的儿数据的存储技术,对帆数据的存 储模式进行优化调整,以提高查询效率。在对国内外研究现状进行综合分析 的基础上,从一个全新的角度对帆数据的存储问题进行了研究,提出了从 x m l 模式到关系模式的映射方法,肿方法,该映射方法所生成关系模式既 保持了叽模式的结构信息,也保持了) ( 1 忸。模式上蕴含的函数依赖,同时弱 化了规范化的程度,生成的关系模式符合2 n f 的定义,在进行查询时减少了 连接的数量,提高了查询的效率。 关键词:x m l ;d t d ;关系存储;函数依赖;查询 山东大学硕士学位论文 a b s t r a c t x m li sb e c o i i i i n g1 l l ed e t os t 锄d 盯df o ri n f b 叽a t i o np u b l i c 撕0 n 锄d e x c h a n g e t l l ew 曲,s u b s t i 锄n gf o rh r m lc o m p a r i n gt oh m 儿,x m l i s s i m p l e ,s e l f d e s c 抽i n g 锄dt h ec o n t e n t ,g t n l c t i l r e 觚dr e l r e s t a t i o no fx m l d o c u m e n t s缸ei n d e p e i l d e n t ,w h i c hm a i 【e sx m lm o r es u i t a b i ef o rd a t a r 印r e s e n t a t i o n 缸de x c h 锄g eo n1 l l eh t e m e t r e c e n t l y ,血h 嬲b e 髓诵d e l y m e di nv a r i o 哪a p p “c a t i o n s ,觚dv e f yl a 唱ev o l u m e so fx m ld a t ah a v eb e e n 印p e 盯e di n1 h ew e b t 0o r g 粕i z ea n dm 删唱ex 。d a t a 锄c i e n t l y ,d i f f e r e n t q u e r yi a i i g u a g e s 柚ds t o r a g e 印p m a c h e sh a v eb e e i lp r o p o s e d a sa 、r i a b l e 锄d p r o i i l i s i n ga p p r o a c h ,u s i n gr d b m s t om a i l a g e 沮一d a 诅i se ,【t e n s i v e l ys t l l d i e d i nr e c t y e 盯s g i v c n 也a t 咀。d a t a b 勰e st o d 锣嘶l s t l yu s e di l l 、e b - b 勰e dq u 唧 s y s t e m sw h e r ed a t 舔e t s a r el l p d a t e d 坞l a t i v e l yi n f r e q 啪n y 姐dt h eq u e 哆 p e 廊m a n c ei sc m c i a l r e s p o n s et i m ei si m p o n a n tf o rw e b - b a s e dq u e r ) rs y s t e 略 w h e r eu 豇st e n dt o u s e r sw 锄tt oq l l i c l y 聆们e v et l l ef i r s t 佗s i i i t s t h l l s ,i no l l r 趴a l y s i so ft h es c h e md e c o m p o s i t i o n sw ef o c mp r i m 撕l yo nt l l e i rr e p e r c l 腮s i o n s o nq u e 猡p e 面瑚趾c e 趾ds e c o n 蜥l yo ns t o r a g es p a c e 锄du p d a t es p e e d b u ta l l p r i o rw o r k sh a v eb e a d l l e r e dt od e c o m p o s i n g ) 舰i n t oh 曲n o r i i l a l i z e d r e i a t i o n a ls c h e m 硒1 i k e3 n fo rb c n fw h i c hc o n v e f t 觚x m ld o c u m e n 协i i l t oa t y p i c a l l yl a 唱en 啪b e ro f t u p l e so f d i 往b r 朗tr e l a t i o n s p e r f o 加锄c ei sh l l nw h a x m ld o c u m 锄tr 部u l t si nas q lq u e r y ( o fs q lq u e r i e s ) 1 量i a th 嬲t 0p e r f o 瑚al a 唱e n u m b e ro fj o i n st or 州e v ea n dr e c o n s t r u c ta l lt l l en e c e s s a r yi n f o 珊a l i 鲫u pt o n o wm o s to ft l l es t i l d i e sj u s tf o c u so nt l l es t m c t l l r eo f 舳s c h e m ad o c 恤即惦, b u tp a yl i m ea n 朗t i o nt ot l l ec o n s t r a i n t so ft h e m t h e s ec o n s 打a i m s 盯ev e 叮 i m p o r t 锄ti nd a t ai n t e g r i 锣、q u e 哆p e r f o m 锄c e 髓dd a 协c o m p l e t i h lm i st h e s i s 、v ef o c u s x m ld a t as t o r a g et e c l i l l i q u e sb 弱e do nr e l a t i a 1 d a t i b 嬲e s 趾dt i l ei m p r o v e m e n to fx m ld a 诅s t o r a g es c h e m a ,w h i c hc 锄i m p r o v e i i 山东大学硕士学位论文 q u e 哆p e d o r n 啪c e a r e rs t u d yt l i e 僧l a t e dw o r k ,锄a p p r o a c ht op r e s e i n g f h n c t i o n a ld e p 吼d e n c y ( 肿) i sp r e s e n t e d c o m p 撇dw i t l lt h ep r i o rw o r k s ,p f d t a l 【e s 蹦la d v 锄t a g eo ft l l ed 砒ad 印钮d 觚c i e st l l a ta r ei m p l i e di n ) ( 1 诅。d t d ,跚d g u 姗t e e st l i ei n t e g r i t yo fx m ld o c 眦t s t h em s l l l d n gr e l a t i o n a ls c h e m 鹪 k e e pf i l l lf h n c t i o n a ld 印e n d e n c i e s 锄ds a t i s t y2 n f ,w h i c hi m p r o v e st l l eq u e r y e 历c i 何 k y w o r d s :x m l ;1 ) t d ;r e l a t i o n a ls t o r a g e ;f h n c t i o n a id e p e n d e n c y ;q u e i y 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本论 文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本 文的研究做出重要贡献的个人和集体,均已在文中以明确方式标 明。本声明的法律责任由本人承担。 论文作者签名:堑歪盘日期:垄竖生 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意 学校保留或向国家有关部门或机构送交论文的复印件和电子版,允 许论文被查阅和借阅;本人授权山东大学可以将本学位论文的全部 或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他 复制手段保皴论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:盈歪篮导师签名: 辫雌型 山东大学硕士学位论文 1 1 课题的研究背景 第1 章绪论 目前,迅速普及的i i l t 咖e t 技术已经影响了人们的生活方式,成为人们生 活中重要的部分之一,这在很大程度上是因为删技术的诞生以及和w w w 技术的结合。二者的结合也使w 曲技术迅速发展,在很多领域中有所应用, 但同时也暴露出h t m 【技术的不足。其中最重要的应用方向之一,就是大量 信息的传递与共享。h r h 技术的成功在于能够将内容与显示相结合,这对 于终端的用户来说非常方便。而随着互联网上信息量的急剧增长,各种类型 的数据需要在互联网上进行交换与表示,要求w 曲文件必须具有极高的复杂 性和灵活性。 另一方面,使用w 曲表示的信息越来越多,利用应用程序来处理这些数 据十分必要。直接处理h r m l 数据的应用程序都有很大的局限性,而且非常 脆弱,所处理的h r m l 数据稍有改变,都有可能使应用程序不能正常工作, 这是因为h r m l 数据本身并不是为应用程序而设计的。在这种情况下,w 3 c 组织于1 9 9 8 年2 月发布一套新的规范) m 几但x t 铋s i b l em a r k u p l 锄g i l a g e ) 。x m l 是从s g m l 继承而来的一种简单、灵活的半结构化标记语言。) m 也为应用程 序的处理开辟了很大的空间,某个具体领域的x m l 所涉及的标记是一定的, 而且表示的方法也是一定的,这使应用程序明确知道哪些是需要处理的内容, 在很大程度上方便了w 曲应用程序的开发。 ) m 几诞生受到了各界的广泛关注,各计算机厂商竟相推出支持) m 几的 产品,工业界和商业界则忙于制定自己行业的x m l 词汇标准。相信在不久的 将来,儿将成为互联网上信息交换的标准,并且将来会代替h r m l 而成为 、) l 礓b 上保存数据的主要格式。沮。及其一系列相关的标准已广为接受和使 用,包括x m l 文档的存储、查询、集成、索引等,为札成为数据库奠定了 基础。i n t e m e t 发展的今天,数据库技术首先要考虑的是,在数据库与h l t e m e t 之上所架构的信息系统之间有没有可结合的共同点。事实上,x m l 与数据库 的关系越来越密切,从存储在不同介质中的数据自动的生成x m l 文档以及从 山东大学硕士学位论文 不同的数据存储交换信息,必将成为未来面向信息的i i l t e m e t 的主要特点。 将数据库与) 口儿相结合,研究x m l 数据库的理论和技术,是当前数据库 研究的热点。考虑到现在的数据库绝大多数是关系数据库,并且在可以预见 的将来,关系型数据库仍将占据数据库市场的主导地位,在关系型数据库的 基础上研究对咀。的存储支持尤为重要。将x m l 数据转化为关系数据,存储 在关系数据库中,利用已经成熟的关系数据库理论和技术,来实现对) 【1 儿数 据的存取和访问。在继承传统数据库知识和经验的基础上,可以降低) ( 1 帆数 据库与其它关系数据库之间交互操作的复杂性,同时支持精确的事务管理和 数据库恢复机制,用户不需要为了应用帆而再去学习一套新的数据库技术。 本论文正是基于上述背景提出的,本章余下的几个小节中,我们将简要 介绍目前儿数据库的研究现状,主要涉及x m l 存储方面研究,并简要介绍 了本论文所做的主要工作及今后的研究方向。 1 2 国内外研究现状 随着沮,应用的不断扩展,沮。数据的大量出现,它的存储管理就成 为人们日益关心的问题。当大量的关于半结构化数据【l 】以及沮。数据的模 式语言和查询语言研究出现的同时,不少早在8 0 年代就关注数据存储模型与 数据查询之间关系的研究者将他们的注意力集中到了咀,资料的存储和查 询研究上,这些研究分别取得了一些有意义的成果【2 】。 i 碰璐公司的d o l i l i n 数据库可以处理儿。而设在麻省的r e a d i n g 的 x y “s i o n 企业解决方案公司的c o n t 吼t 儿是一套内容管理系统,它可以在 任何一种流行的关系数据库中存储皿文件。其好处是可以开展基于内容的 协同工作,进行多通道内容输出。在关系数据库中处理儿数据中,可以用 中间件( m i d d l ew 盯e ) 进行转换。如m i c r o s o r 的a d 0 ,m m 的d a t a b 船e d o m , s o c k e t s e r v e 的o d b c 等,当数据不是很复杂时,可以轻松的实现x m l 文档与 传统数据库之间的转换。 著名的s o f t w a r ea g 公司的d b x d 巴,t h ec o 肋e c t i o nf a c t o 巧公司的x h i n e , d b 。x y z f i n d 公司的x y z f i n d 等,是以x m l 文档自身的形式来存储x m l 文档, 2 山东大学硕士学位论文 支持事务、安全、多用户访问、编程的a p i 和查询语言等,其内部模型是基于 x m l 文档格式的。 a l i i ld e u t c h 等提出的s t o r e d 【3 】存储系统,综合关系和半结构化技术来 处理半结构化文件,对每一个稳定的模式,s t o r e d 就分配一个表,将不属于任 何稳定模型的数据项存储在一个半结构中。并且还可以利用数据挖掘的方法 来处理不符合d t d 的叽文档。j 锄a v e ls h 锄n u g 船u n d 舡锄等提出了原型系统 【4 ,8 】,引入d t d 图,并以此为基础提出递归及集合值的处理方法和关系表的 简化。d 锄i e i a f l o f e s c u 等在文献中把) ( 】儿文档看作为一个有序、有向的图, 元素作为图中的结点,元素之间的关系用带标签的边来表示。g e n e k a p p e k 等在文献中较为详尽地讨论了皿。在不同性质的元素和属性与关系表和字段 的映射关系。 斯坦福大学的l o r e 【5 】系统本身是专门用来管理半结构化数据的d b m s , 随着儿的兴起,加上儿与半结构化数据先天的相似性,很快l o r e 系统就 完全支持对儿数据的存储、查询、更新、索引和重构等一系列d b m s 功能 【6 】。l o r e 系统的数据对象模型采用0 e m 模型( o b j e c te x c h 锄g em o d e l ) 。l o r e 系统自身带有查询语言l o r e l ,支持路径表达式( p a m e x p r e s s i o n ) 和索引机制 ( d a t a g m d e ) 等等。但是目前l o r e 系统查询处理效率低下,没有有效的事物处 理机制。 m a r kg r a v e s 提出的独立于文档的关系存储模式把儿存储到关系表中 【7 】。独立于文档的关系存储的最基本思想是文档中每种结构类型都有自己的 关系表:元素,属性和字符数据区域,还有一个文档表和元素与它们的组成部 分( 子元素或字符数据) 之间的父亲孩子关系表。m a r k g r a v e s 系统的缺点是所 有内容,属性混合存储,存储结构不直观。 复旦大学的v x m l r 系统【9 1 把x m l 文档存储到关系数据库中。v x m i ,r 系 统先把帆模式映射为关系模式。然后把数据咀。文档存入关系数据库中。 查询时,先把沮。查询语言重写为s q l 语句,最后把查询结果重构为忸。文 档。v ) 口帆r 采用朴素的映射算法,用表的外键表示元素的父子关系。v x m l r 系统的局限是存储表太多,查询重写复杂,查询效率低下,查询结果不是原 山东大学硕士学位论文 文档的片段。 1 3 本文的主要工作与创新点 本文研究的课题是将儿与数据库进行结合,以便充分利用数据库的高 效、安全等性能实现对帆数据的存储和管理。考虑到现在的数据库绝大多 数是关系数据库,并且在可以预见的将来,关系型数据库仍将占据数据库市 场的主导地位,本文将在关系型数据库的基础上研究其对x m l 的支持。 本文主要讨论帆数据的存储模式问题,就是要将关系数据库的特征引 入到x m l 中,使x m l 数据可以存储在关系数据库中。本文采用的是基于v 几 d t d 的模式映射,考虑到现有的模式映射方法只考虑了蛆。模式的结构信息, 而没有考虑函数依赖,而函数依赖是x m l 模式中非常重要的语义信息,同时 由于现有的映射方法都是映射为规范化程度高的的关系模式,数据分散在不 同的表中,在进行查询操作时需要涉及多个字段的大范围查询,导致了大量 联结操作,降低了系统的查询性能。因此,针对这种情况,本文提出了一种 保持d t d 中函数依赖的映射方法,p f d 方法,该方法在映射过程中保持了d t d 中蕴含的函数依赖,同时通过提高数据库的冗余度来减少查询过程中联结操 作的数量,提高了查询速度。 1 4 本文的组织结构 本文是按照下面的结构组织的: 在第2 章首先介绍了忸。文档结构、语法等,然后介绍了咀。的应用 技术,如) ( 1 姬。模式定义语言、x m l 文档解析器、m 。查询语言及沮。文 档的各种存储和查询处理方式进行了说明。通过这一章对沮。及相关技术 有了一个大致的了解,对后面的设计提供思路。 第3 章讨论了现有的x m l 模式到关系模式的几种映射方法,并指出现 有模式映射方法的不足,为下一章提出保持d t d 中函数依赖的映射方法作 铺垫。 第4 章针对现有模式映射方法的不足,提出了一种保持d t d 中函数依 4 山东大学硕士学位论文 赖的映射方法,肿方法,该方法对于提高查询效率具有非常重要的意义 第5 章对全文进行了总结,分析了本文研究成果的理论意义、不足和应 用前景,并指出了今后需要迸一步做的工作。 山东大学硕士学位论文 第2 章x m l 相关理论与研究 在引言中已经概略提到该课题的研究背景,主要涉及到) m 儿技术的产 生、发展、m 。数据管理技术等。下面分别对这些问题进行较为详细的介绍。 2 1 x m l 介绍 随着计算机技术和网络技术的迅猛发展,企业和个人通过网络进行数据 交换变褥越来越频繁,但是由于不同用户的数据采用了不同的数据表示方式, 这就给数据的交换带来了很大的不便。 为了支持采用不同数据表示方式的用户之间方便的进行数据交换,迫切 需要一辨为各方用户所接受的数据表示标准,使数据交换的方法使用统一的 数据表示方式。这时,) a 沮。( e x t e n s i b l em a r k u pl 锄g u a g e ,可扩展标记语言) 应运而生,并在行业中迅速普及,成为事实上的数据表示标准。 x 皿( e x t e n s i b l em a r k u pl 飙g u a g e ,可扩展标记语言) 是由w b r l dw i d ew 曲 c o n s o m u m ( w 3 c ) 的】( 】忸。工作组定义的。这个工作组是这样描述该语言的: “咀是s g m l ( s t a l l d a r dg 锄e r a i i z e dm 盯k u pl a n g u a g e ,标准通用标记语言) 的子集,其目标是允许普通的s g m l 在w 如上以目前h r m l p e rt e 财 m a r k u pl 锄g u a g e ) 的方式被服务、接受和处理。x m l 被设计成易于实现,且 可在s g m l 和h n 几之间相互操作。” ) m 儿是一套定义语义标记的规则,这些标记可将文档分成许多部件并对 这些部件加以标记。它不像h r m l 或格式化程序。这些语言定义了一套固定 的标记,用来描述一定数目的元素。) m 也是一种元标记语言,用户可以定义 自己需要的标记。这些标记必须根据某些通用的原理来创建,x 池标记描述 的是稳定内容的结构和含义,而不是描述页面元素的格式化。文档本身只说 明文档包含什么标记,而不是说明文档看起来是什么样子的。 2 1 1x m l 文档的构成 皿文档的准确含义见万维网联盟唧3 c ) 发表的) m 几1 o 规范 【h t t p :叭v w w 3 o r g ,r r l l e c - ) ( 1 恤j 。这个规范详细定义了咀。文档是什么和 6 山东大学硕士学位论文 不是什么。) a 忸。文档应有一个根元素,所有开始标志要有相应的结束标志, 所有属性只要放在引号中,文档中只能使用咀。中合法的u h i c o d e 字符。 下面给出一个简单的皿文档的例子。 例1 1 ;一个简单的) m 几文档x b i b x i n l 。 “t l e x m ld a t am a n a g e m e n t a u t l l o r ) z h 锄g s a n a u t h o p s t o r i n g ) 0 血吣i n g r d b m s s i s c h a p t 驴 ) ( p a t l li s x q u e r yi s ,c h a p t e p 通过上面的例子,我们对沮。文档有了一个直观的认识:一个) ( 1 儿文 档由一个单一的最外面的元素及其子元素组成。 7 山东大学硕士学位论文 简单的说,一个x m l 文档主要有以下几个部分构成: x m l 声明 如在例1 1 中的第一行 就是一个皿。声明。这是 x 皿规范中必有的,并且要放在第一行,并且其中的字母是区分大小写的, 表示程序以此句为开头。沮。声明主要包括两个部分:一是v 儿的版本号, 如例l l 中的v e 船i = “1 o ”;二是文字编码声明,如例1 l 中的c o d i n g = “i s o 8 8 5 9 1 ”,要放在版本声明之后。 元素 通常,元素组成了x m l 文档中的大部分内容。元素由一对标记( 开始标 记和结束标记) 和字符数据组成,开始标记的形式为 ,结束标记的形 式为 ,字符数据位于开始标记和结束标记之间。如果元素没有字符 数据,则成为空元素,空元素可以用一种速记法来表示,即 。 属性 属性冗长用来给元素提供所表示内容的额外信息。元素的属性在元素的 开始标记中给出,形式为“属性名= 属性值”,属性值必须出现在单引号或者 上引号中。一个元素可以有任意数目的属性,但是它们的名称不能相同。 处理指令 处理指令通常用来为处理) 【】蛆。文档的程序提供信息,这些信息包括如 何处理文档、如何显示等。在例1 1 中没有用到处理指令。 注释 皿。支持注释。注释分别使用字符序列” ”和” ”作为开始和结束, 主食的文本内容在这两个字符序列之间。 除了上面的五个部分,一个) 订诅。文档还包括命名空间等。 2 1 2x m l 与数据表示 沮。虽然并不是专门为了表示数据而设计的,其最初被设计通过分立 内容和格式来面对大规模的电子出版业的挑战。但是由于其自身所具有的特 点而被广泛应用于网络上数据的表示,并成为事实上的网络数据表示标准。 沮。具有其他表示方法所不具备的特点,主要包括: 山东大学硕士学位论文 1 ) 几是自描述的 咀。的最大能量来源于他不仅允许定义自己的一套标记,而且这些标 记不必局限于对于显示格式的描述。 2 l 具有集成数据和文档的能力 大多数语言或者在表示严格的、绝对的内容和数据结构上设计得好一 点,或者在表示灵活的、自由形式的文档文本上设计得好一些,而) m 几 在两个方面都做得很好。它能表示数据和自由格式的文本,也能在同一 个文档上做到这两个方面。 3 】口诅具有相当的表现力和可扩展性 实际上,我们可以在所选择的主题上表述任何想表述的内容。它具有一 致的语法,这使得它很容易被解析。 4 皿。用一种灵活的可扩展的表式来实现内容通信。 x m l 允许开发各种不容专业的特定领域的标记语言。有了这些语言, 这个领域的实践者们可以相互自由的交换短文、数据和信息,而不必担 心对方是否利用特殊的、专用的软件来创建数据。事实上,目前已经开 发出了一些特定领域的标记语言,如m a l l l 】。( 用于数学领域的一种标记 语言) 。这样,非常复杂的领域可以使用沮。很好的合理的表示出来。 5 舢是非专有并易于阅读和编写的 这使得儿成为在同同应用间交换数据的理想格式。 正是由于具有上述的这些优点,l 作为网络上的数据表示方式为人 们所接受和使用,并迅速普及,成为事实上的网络上的数据表示标准。 2 1 3x m l 的优势 沮。最大的优势在于对各种数据的管理。任何系统都可以通过帆的 解析来读取沮。数据,因此它的数据可以通行各处,而不用担心系统不支 持的问题。 l 、数据的检索 i n t e m e t 上主要的数据检索方式:分类检索和全文检索。检索效率低, 或找不到。沮。易于以标记作为搜索索引,在文件中截取关键部分。所 9 山东大学硕士学位论文 有标记内的数据都可视为一个元素,而每一个元素都可以作为数据的索 引。 2 、数据的显示 ) 口皿。将数据保存的格式与数据显示的方式分开,使得叽文件可 以轻易的更换数据显示的方式,仅需改变x s l 的设置,用户就可以将同 一数据制作成h n 、p i ) f 、w m l ( w i r e l e s sm a 出叩l 锄g u a g e ) 、 眦( h 锄d - h e l d d e “c em a r k u pl 肌g u a g e ) 等不同格式,供不同的硬件显 示。 3 、数据的交换 x m l 语法简单,可以被所有的机器解读,又可以在各种平台上使用, 使得) ( 1 诅。有潜力成为一个通行四海皆准的标记语言。 2 1x m l 应用技术 2 1 1x m l 模式定义语言 x m l 模式语言就是用来定义) 口帆的词汇表和文档结构的语言。咀。的一 系列特性如:可扩展性、结构化和自描述性等等都要用皿模式定义语言来体 现。本文的系统模型中,可以把x m l 文档本身看作数据库中的数据区,把) m 几 文档的模式看成是数据库模式。也就是要把儿文档的模式映射为关系数据 库中关系模式,然后把儿文档存储到关系数据库的表中。所以我们必须熟 悉江模式定义语言。) ( 1 帆模式定义语言有:帆d a t a 、文档内容描述 ( d c d ) 、面向对象的咀。模式( s o x ) 、文档类型定义( d t i ) 【2 】) 。x m ls c h e m a 【4 5 ,6 】 等等。后两种模式定义语言是w 3 c 所推荐的标准。下面我们就来介绍这两种 模式定义语言。 l 、文档类型定义( d t d ) 首先,文档类型定义( d o c 啪e n t t y p ed e f i n i t i o nd t d ) 是从s g m l 继承过来 的,是w 3 c 委员会推荐的血模式定义语言之一。直到现在d 1 d 还是用得最 多的x m l 模式定义语言。由于这个原因,本文就采用d t d 作为x m l 文档的模 式定义。 山东大学硕士学位论文 x m l l o 提供了一种机制一文档类型定义( d o c 啪e n t t y p e d e f i n i 矗 d t d ) ,通过它我们可以定义自己的词汇表,并将d t d 作为规范的一部分。d t d 使用正规的语法定义) m 儿文档的结构和允许值。d t d 描述) m 亿文档的结构, 我们可以将啪看作是儿数据的模式。d t d 以上下文无关文法的方式描述 文档中元素和属性间的嵌套关系。d t d 使用几个操作符:( 表示o 个或多个) , + ( 表示i 或多个) ,? ( 表示o 个或1 个) 和j ( 表示选择) 来描述元素和子元素间的关 系。d t d 摇述中的所有值均被假定为字符串,除非由关键字a n y 定义( 此时, 值类型可以是任意的文档片段1 。一个元素可以由多个子元素或属性来定义。 其中,m 和i d r e f 是两种特殊的属性类型。一个元素至多只能有一个d 属性, 而一个m 属性唯一标识了一个元素,一个元素的m 属性可以被同一文档中的 另一个元素的i d r e f 属性引用。咖f 属性没有类型。下面是一个简单的d t d 文档例子。 例2 1 一个简单的d t d 例子b o o k d t d : 山东大学硕士学位论文 2 、x m ls c h e m a w 3 cx m l 模式工作组在1 9 9 9 年1 2 月1 7 日约定了两部分关于x m l 模式的 工作草案。它们用沮。语法写成,允许使用多个命名空间,它提供强大的内 容分类。而且它们是皿,1 od ,r d 功能的超集。简而言之,是一个有前途的 元数据成就。) ( 1 帆s c h e m a 的声明由元素声明、属性、属性组声明和简单类型 声明等等组成。 2 1 2 解析器及其a p l 1 、s a x l o 血简易a p i s a x1 o ( n es i m p l ea p if o r 咀。) 即) 【1 帆简单编程接口。s a x 是一个通 用的,基于事件儿解析的标准编程接口。事件驱动的解析器有:懿p a t ,冲, a e l f b d ,m s x m l ,l a r k 等。在数据血文档存入关系表中用到了s a x 接口。 事件驱动的解析器原理是为每类皿数据执行到应用程序的回调:元素 ( 及属性) ,字符数据,处理指令,符号或注释。这等于是应用程序通过回调来 处理) ( 1 诅。数据一x m 【解析器在解析之后并不维护元素的树结构或者任何数 据。事件驱动的办法对系统资源的需求非常小而且是与文档的大小关系不大。 即使对于非常大的文档也是如此:正是由于这种简单地对x m l 数据结构的低 层次的访问,使得x m l 应用程序在处理数据时具有相当大的灵活性。 2 、w 3 c d o m d o m ( d o c u m 锄to b j e c tm o d e l ,文档对象模型) 是一种与平台和语言无关 的编程接口,它允许程序和脚本动态访问和修改文档的内容结构和类型。对 于叽应用开发来说,d o m 就是一个对象化的帆数据接口,一个与语言 无关、与平台无关的标准接口规范。它定义了h n 缸皮档和x m l 文档的逻辑 结构,给出了一种访问和处理h r m l 文档和x m l 文档的方法。 d o m 为我们提供的访问血文档信息的媒介是一种分层对象模型,而这 个层次的结构,则是一棵根据皿。文档生成的节点树。一个) 口儿分析器,在 对儿文档进行分析之后,不管这个文档有多简单或者多复杂,其中的信息 都会被转化成一棵对象节点树。在这棵节点树中,有一个根节点,所有其他 的节点都是根节点的后代节点。节点树生成之后,就可以通过d o m 接口访 山东大学硕士学位论文 问、修改、添加、删除、创建树中的节点和内容。在这棵文档对象树中,文 档中所有的内容都是用节点来表示的。一个节点又可以包含其他节点,节点 本身还可能包含一些信息,例如节点的名字、节点值、节点类型等。文档中 的根实际上也是一个元素,之所以要把它单独列出来,是因为在x m l 文档中, 所有其他元素都是根元素的后代元素,而且根元素是唯一的,具有其他元素 所不具有的某些特征。在d o m 树中,节点用来表示元素,属性和文本。每 一棵d o m 树都有唯一的根节点( r o o t ) 。e l e m e n t 代表元素,是最常用的节点, 它可以组成以它为根的d o m 的子树。元素节点还可以有元素子节点,及属 性子节点或文本子节点。a t m b m e 是皿。元素的属性,它的父节点必然是 e l e m 锄t ,它的子节点可以为t e 哪。 2 1 3x m l 查询语言x p a t h l 、a t h 概述 x p a m 是x q u e f y 语言的一个重要并且独立的组成部分,在x q u e r y 中模式 匹配的工作是由x p a t i l 的路径表达式实现的。 w 3 c 的x p a m 语言是用于访问x m l 文档的某一部分的语言。a m 使用非 ) 口诅。的语法访问x m l 文档的细粒度单位,比如一个子元素、一个属性。) a ? a t l l 的操作是建立在) m 几文档的一个逻辑数据模型上的,该数据模型也是x q u e r y 的数据模型。在w 3 c 的规范中,x p a t h 是x q u e r y 语言的组成部分,x q u e r y 的 数据模型和x q u e r y 语言中访问x m l 文档的元素级操作,都是通过x p a m 的路 径表达式实现的。总的来说,x p 砒的功能是定义一种语法实现在x m l 文档嵌 套的层次结构中进行导航式访问。通过使用x p a t h ,我们可以从) m 几文件中发 现各种模式。 在x p a m 语言中,把) m 也文档看成是带有各种节点的文档树结构来访问。 使用x p a t h 可以定位帆文档树的任意节点。,劬的使用方式是:通过路径表 达式,匹配札文档的不同部分。路径表达式提供了许多选项用于在) m 几文 件内部定位。 2 、基本路径表达式 一个x p a t h 路径表达式是基本路径表达式的关键在于其中只包含“这一 山东大学硕士学位论文 符号。使用基本路径表达式就可以遍历。的逻辑数据模型( 节点树) 。基本 路径表达式分为绝对路径表达式和相对路径表达式。绝对路径表达式是由或 ,开始的表达式,表示从文档的根元素开始遍历文档。相对路径表达式是不由 或开始的,而由若干被,分开的“路径步表达式”组成的路径表达式。基本 路径表达式的形式定义是: p 甜i e x p r := a bs o l l l t e p a 伽z 印r r e l a t i v e p a t l l e x p r a b l u 钯p a 血e x p r := ( ”,r e l 撕v e p a t h e x p r ? ) nr e l a t i v e p a t h e 印r ) r e l 撕v ep a 廿l e x p r := s t 印e 坤r ( ( ”,l ,) s t 印e 印r ) + s t 印e 冲r := a 】( i s s t 印 这里a ) 【i s s t 印是路径步可能沿着的几种不同的轴,我们将在第四章中讨论,使 用基本路径表达式,可以访问沮。中的元素、属性和文本节点。基本路径表 达式还可以表示沮。文档中的顺序。在基本路径表达式中还可以进行节点测 试。节点测试是在路径表达式的每一步,根据条件决定是否选择该路径上的 节点,即通过对某个条件进行测试,判定某条路径是否满足。节点测试可以 测试节点的类型。测试是否为一个文本节点,节点测试还可以对节点的其它 内容进行测试。节点测试实际上是对路径上的节点的值的匹配,而路径表达 式本身是对旺数据模式的匹配。 3 、正规路径表达式r p e 正规路径表达式是包含? ,+ ,i ,群的路径表达式。正规路径表达式的定义 如下: r :,r i ( 1 j r 2 ) i i r + i r ? i “i r 2 ) 拥 i l 锄e m 其中,r 表示任意的到达r 的路径,i j 1 2 表示从r ,到r 2 的路径,r ,r + 和r ? 分别表 示r 的。或多、1 或多以及。或1 次重复,( 巧r 2 ) 表示选择关系,# 表示任意的路径, n 锄e 表示节点标记,e 表示空路径。从正规路径表达式的定义可以看到,基 本路径表达式就是只包含节点标记的正规路径表达式。 2 1 4x m l 查询处理技术 x m l 查询处理技术是目前的研究热点之一,主要研究如何有效支持x m l 数据上的路径表达式查询。对于不同的血数据存储,其查询处理技术也不 1 4 山东大学硕士学位论文 尽相同。对四种儿存储方式,基于关系数据库和n a t i v e 方式的研究较多, 因此这里主要介绍这两种技术。 1 基于关系的) a 诅。查询处理技术 为了有效支持路径表达式查询,基于关系的查询处理主要研究如何减少 关系的连接次数及缩短路径,以提高路径表达式查询处理的效率。针对关系 存储的e l e m e n t - a p p r o a c h 【1 1 1 及e 如e a p p r o a c h 1 1 。1 卸等方法。 2 基于t i v e 。存储的查询处理技术【1 6 1 为了有效支持路径表达式的查询,这方面的研究主要按路径对数据进行 聚类存储。优点是:( 1 ) 按路径存储数据可以在一定限度内提高查询的效率: ( 2 ) 不需要额外考虑结构索引的问题。缺点是:( 1 ) 不能有效支持部分路径的 查询,所有的数据导航操作都从根开始;( 2 ) 数据更新代价太大,一个简单的 插入操作可能需要改变以前很多数据的存储。这方面研究中,l o r e 系统是很 经典的系统。系统大致分为两层:查询编译层和数据引擎层。 l o r e 的存储管理策略很简单,首先将x m l 数据分解为一些基本的要素 ( e l e m e n t ) ,属性和文本字符串,采用直接深度优先聚集方法进行物理存储。l o 舱 将对象组织在物理磁盘页上,每个页上有很多的槽( s l o t ) ,每个槽中有一个单 独的对象。l o r e 支持跨越多个页的大对象,对多媒体类型是有用的。采用深 度优先的方法将对向聚集在页上,这主要是由于系统采用深度优先的数据库 扫描策略。当一个对象有多个父对象时,它与任一父对象聚集在一起。查询 计划生成器将这个查询生成一个查询计划,并将这个查询计划提交给查询优 化器。优化器需要对执行计划进行一些变化并确定一些索引的使用,最后将 优化后的执行计划提交给数据引擎层处理。数据引擎层由0 e m 对象管理器、 查询操作执行部分、外部数据管理器和其他的工具组成。查询操作执行部分 主要完成上一层提交的查询执行计划。对象管理器用来完成0 e m 与底层文件 结构的映射。它支持基本的原语,如取一个对象,比较两个对象等。 2 3x m l 数据库存储及查询 x m l 技术的发展与数据管理技术是密不可分的。对于w e b 应用来说,人 山东大学硕士学位论文 们更多关心从存储在不同介质上的数据中自动生成) m 几文档的能力,从不同 的数据存储交换信息的能力,因此如何有效组织x m l 文档成为数据库研究者 研究的一个重要问题。而存储结构是索引、查询处理与优化以及事务和并发 控制的基础。简略的说,) a 帆存储管理的任务是:一方面能够有效地存储沮。 数据,另一方面要能够有效地支持查询。确切地说,理想的x m l 存储结构应 该满足如下目标1 7 】 ( 1 ) 支持无模式的儿数据的存储; ( 2 ) 能提供针对模式的存储和优化; ( 3 ) 能有效地存储以文档为中心和以数据为中心的x m l 文档; ( 4 ) 支持有类型的数据; ( 5 ) 能够高效而精确地还原血文档; ( 6 ) 支持高效的查询和更新; ( 7 ) 支持并发和恢复; ( 8 ) 支持多版本) m 见文档的存储。 2 3 1 存储方案 数据库系统中存储系统是最基本的部件,不仅源数据要存储在存储系统 中,索引系统中用到的各种实体索引文件也依赖于存储系统,查询系统的一 些中间结果也会保存在存储系统中。血存储管理被定义为:是一个帆文 档及

温馨提示

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

评论

0/150

提交评论