(计算机系统结构专业论文)基于关系数据库的xquery查询处理研究.pdf_第1页
(计算机系统结构专业论文)基于关系数据库的xquery查询处理研究.pdf_第2页
(计算机系统结构专业论文)基于关系数据库的xquery查询处理研究.pdf_第3页
(计算机系统结构专业论文)基于关系数据库的xquery查询处理研究.pdf_第4页
(计算机系统结构专业论文)基于关系数据库的xquery查询处理研究.pdf_第5页
已阅读5页,还剩58页未读 继续免费阅读

(计算机系统结构专业论文)基于关系数据库的xquery查询处理研究.pdf.pdf 免费下载

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

文档简介

重庆大学硕士学位论文 中文摘要 摘要 随着基于i n t e m e 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 n t e r n e t 上数据表示和数据交换的标准格式,提出了对 x m l 数据管理的要求。关系数据库系统技术已经十分成熟,在商业数据管理中占 据着主导地位,如何利用关系数据库来实现x m l 数据管理已经受到了广泛的关注 与重视。x m l 数据资源的查询与检索是x m l 获得广泛应用的关键,在w e b 数据 管理中占有重要地位。在众多x m l 查询语言中,x q u e r y 语言是w 3 c ( w o r l d w i d e w e b c o n s o r t i u m ,互联网联盟) 标准草案的一部分,已经得到了广泛的应用,是x m l 中的s q l 。因此,基于关系数据库的x q u e r y 查询处理就成为x m l 数据管理中的 主要内容之一,对x m l 的应用有着t 分熏要的影响。 x m l 数据管理的内容包括使用某种映射方法完成x m l 文档到关系数掘库的 存储以及实现用户的x q u e r y 语句对原x m l 文档的查询处理。- b - - s q l 不同,x q u e r y 查询针对x m l 文档,而其数据却按照各种映射方法存储在数据库的关系表中,这 给查询处理造成了严重的障碍。 文章从问题的两个主要方面进行了讨论:x q u e r y 到s q l 的查询语言转换处理 和广泛适应多种映射方法的处理。分析了它们的处理过程和实现方法,对比了若 干具有代表性的现有解决方案,寻找到解决问题并达到应用中各项要求的可行途 径。 在此基础上,设计了一个x q u e r y 查询处理的方法,采用基于虚拟x m l 视图 的x q u e r y 查询处理方案。文中对实现查询语言转换功能的底层处理机制分析归纳 出了各部分的查询处理规则。提出了一个虚拟x m l 视图自动创建机制,以解狭多 种映射方法适应性的问题,并建立在底层处理机制之上。在把映射方法分为两大 类的前提下,对类结构映射法的适应性,通过x m l 结构树作为中间步骤来实现 虚拟x m l 视图的创建,对另外一类模型映射法,统一使用十二个参数达到这一目 标。文中设计了两个算法完成这两项工作。该方法以获得较好的适应性及扩展性 为目标,使用户使用x q u e r y 语言查询存于关系数据库中的x m l 数据更为方便。 最后辅以对虚拟x m l 视图创建机制的实验。 关键词:x m l ,x q u e w ,关系数据库,查询转换,映射方法 里鏖查堂堡主堂堡堡苎茎壅! ! ! 蔓 a b s t r a c t a l o n gw i t ht h ei n c r e a s i n gd e v e l o p m e n to fi n t e r a c t - b a s e d b u s i n e s sa p p l i c a t i o n , 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 a se m e r g e d a st h es t a n d a r df o r m a tf o rd a t a e x p r e s s i o n a n d e x c h a n g e , w h i c hl e a d st o r e q u i r e m e n t si n v o l v i n g x m ld a t a m a n a g e m e n t r e l a t i o n a ld a t a b a s es y s t e mh a sb e e na l m o s tp e r f e c ti n t h ed o m a i no f t e c h n i q u e s ,a n di t s d o m i n a n ti nb u s i n e s sd a t am a n a g e m e n ta r e a i t sb e e np a yw i d e a t t e n t i o na n dr e g a r d st oh o wt or e a l i z ex m ld a t am a n a g e m e n tt a k i n ga d v a n t a g eo f r e l a t i o n a ld a t a b a s e t h ek e y sf o rw i d e a p p l i c a t i o n so f x m ll i ei nq u e r ya n ds e a r c h i n g i nx m ld a t as o u r c e s i t sv e r yi m p o r t a n tt ow e bd a t am a n a g e m e n t w i t h i nal a r g e n u m b e ro fx m lq u e r yl a n g u a g e s ,x q u e r yi so n ep a r to ft h es t a n d a r dd r a f t so f w 3 c ( w o r l d w i d ew e bc o n s o r t i u m ) a n di th a sb e e nu s e di na p p l i c a t i o n sw i d e l yi ti s b e c o m i n gt h es q lf o rx m l a c c o r d i n g l y , x q u e r yp r o c e s s i n gb a s e do nr e l a t i o n a l d a t a b a s ei se n l e r 西n go n eo ft h em a i nc o n t e n t so fx m ld a t am a n a g e m e n t i tm a k e s s i g n i f i c a n te f f e c to n t h ea p p l i c a t i o n so f x m l t h ec o n t e n to fx m ld a t am a n a g e m e n ti n c l u d e ss t o r i n gx m ld o c u m e n t si n t o r e l a t i o n a ld a t a b a s e u s i n gs o m eo f m a p p i n ga p p r o a c h e s ,a n dq u e r yp r o c e s s i n go f u s e r s x q u e r yo np r i m a r yx m l d o c u m e n t s d i f f e r e n tf o r ms q l ,x q u e r ya i m sa tx m l d o c u m e n t s ,b u tt h ed a t aw h i c hx q u e r y a i ma ta r es t o r e di nr e l a t i o n a lt a b l e si nd a t a b a s e a c c o r d i n gt o v a r i o u sm a p p i n ga p p r o a c h e s t h u sm a k e sa ns e r i o u so b s t a c l et o q u e r y p r o c e s s i n g i nt h i s t h e s i s ,t h ep r o b l e m i sd i s c u s s e dm a i n l yf r o mt w oa s p e c t s ,w h i c hi s p r o c e s s i n gf o rq u e r yl a n g u a g et r a n s f o r m a t i o no fx q u e r y t os q l ,a n dp r o c e s s i n gf o r a d a p t a t i o n t o m u l t i p l em a p p i n ga p p r o a c h e s t h ep r o c e s s i n g c o u r s ea n d r e a l i z i n g m e t h o d sh a v eb e e n a n a l y z e d m a n y c u r r e n t r e p r e s e n t a t i v es o l u t i o n s h a v e b e e nc m p a r e d t h ef e a s i b l er o u t et or e s o l v et h ep r o b l e ma n dt oa t t a i nt h er e q u i r e m e n t so f a p p l i c a t i o ni s g o t a st h er e s u l t b a s e do na b o v e , a nx q u e r y p r o c e s s i n gm e t h o d i sd e s i g n e d ,w h i c ha d o p t sx q u e r y p r o c e s s i n gs o l u t i o n b a s e do nv i r t u a lx m lv i e w t h e q u e r yp r o c e s s i n gr u l e sa r ei n d u c e d a f t e r a n a l y z i n g t h eb o t t o m p r o c e s s i n g m e c h a n i s mo f r e a l i z i n gq u e r yl a n g u a g e t r a n s f o r m a t i o nf u n c t i o n w h a t sm o r e ,a na u t oc r e a t i n gm e c h a n i s mo fv i r t u a lx m l v i e w w h i c hi sb u i l do nb o t t o mp r o c e s s i n gm e c h a n i s mi s p r o p o s e dt o s o l v et h ea d a p t a b i l i t y p r o b l e mo fm u l t i p l em a p p i n ga p p r o a c h e s t h e r ea r et w ok i n d so fm a p p i n ga p p r o a c h e s , i i 重庆大学硕士学1 _ i ) :论文 英文摘要 f o rs t m c n l r e m a p p i n ga n d m o d e l m a p p i n g a sf o r t h ea d a p t a b i l i t yo f s t r u c t u r e m a p p i n g a p p r o a c h ,v i r t u a lx m l v i e wi sc o n s t r u c t e db yv i r t u eo fx m ls t r u c t u r et r e ew h i l ei s r e a l i z e dw i t ht w e l v ep a r a m e t e r sf o rt h ea d a p t a b i l i t yo f m o d e l m a p p i n ga p p r o a c h a n d t w oa 1 9 0 f i t h m sa r ed e s i g n e dt oc o m p l e t et h ea b o v ew o r k s t h em e t h o d p u tf o r w a r di n t h i st h e s i sa i m st o g o o da d a p t a b i l i t ya n de x t e n s i b i l i t y , a n dp r o v i d e sc o n v e n i e n c et o u s e r s q u e r yo nx m l d o c u m e n tt h a ti ss t o r e di nr e l a t i o n a ld a t a b a s eu s i n gx q u e r y a t t h ee n do ft h i st h e s i s ,e x p e r i m e n t so f c o n s t r u c t i n gm e c h a n i s mo f v i r t u a lx m lv i e wa r e d o n et os u p p o r tt h ep r o p o s e dm e t h o d k e y w o r d s :x m l ,x q u e r y , r e l a t i o n a ld a t a b a s e ,q u e r yt r a n s f o r m a t i o n ,m a p p i n g a p p r o a c h e s i 重庆大学硕十学位论文 】绪论 1 绪论 1 1 问题的提出及其研究意义 x m l ( e x l e n s i b l em a r k u pl a n g u a g e 可扩展标记语言) f 1 是一种通用语言,能够 非常灵活的标记w e b 上多种不同数据源中的信息,具有开放性、灵活性、易读性 和平台无关性等特点。随着基于i n t e r r l e t 商业应用的迅速发展,x m l 已经成为 i n t e m e t 上数据表示和数据交换的标准格式,于是,在i n t e r n e t 上的存在着大量和 重要的x m l 文档,这些应用提出了一系列新的涉及x m l 数据管理的要求。就现 状和发展趋势来看,关系数据库经过多年发展技术已经非常成熟,在商业数据管 理领域中占据着主导地位。因此在满足这些新的基于x m l 应用需求的同时,仍然 需要依靠关系数据库技术,这就需要在二者之间建立一座桥梁,利用关系数据库 来实现x m l 数据管理【2 j 。 x m l 数据资源的查询与检索是x m l 获得广泛应用的关键,在w e b 数据管理 中占有重要地位。基于关系数据库的x m l 查询处理问题是建立于关系数据库之上 的x m l 数据管理问题的主要内容之一,是一个具有卜分重要意义的研究方向。 现在国内外提出了很多种x m l 查询语言方案,如x q u e r y 、x q l 、x m l q l 、 q u i l t ,x m l g l 、x p a t h 、y a t l 、l o r e l 等。很多x m l 查询语言有极强的针对性, 受限于数据类型的种类,不具备通用性。与此不同,x q u e r y 语言【3 9 1 是w 3 c ( w o r l d w i d ew e bc o n s o r t i u m ,互联网联盟) 标准草案的一部分,适用于各种类型的x m l 数据源,是一种功能极强的查询工具。x q u e r y 是在其他多种查询语言精华的基础 上形成的,也借鉴了s q l 和o q l ,兼具各种查询语言的优点,具有灵活方便、符 合x m l 文档特点、功能全面等优点,是“x m l 中的s q l ”【】,有着广阔的应用 前景。 x q u e r y 语言已经得到了广泛的应用,基于关系数据库的x m l 查询处理问题 实际上已经演变为针对x q u e r y 语言的查询处理,其它查询语言在这一问题上几乎 已被取代。 从现在国内外的研究情况来看,x m l 数据管理包括:使用某种映射方法完成 x m l 文档到关系数据库的存储q 3 :用户使用x q u e r y 语言针对原x m l 文档提 出查询要求,系统响应要求,理解具体的x q u e r y 查询语句,然后从关系数据库中 取得正确的结果数据【l ”,并以x m l 的文档结构形式返回给用户。x m l 文档中的 数据是半结构化的,而关系数据库是建立在结构化数据理论基础上的,这给基于 关系数据库的x m l 数据管理造成了主要障碍。 x q u e r y 语言是对x m l 数据的查询,在实际使用中,它与s q l 语言有档似之 重庆大学硕士学位论文 1 绪论 处:一般来说,s q l 语言由数据库编程人员和数据库管理人员使用,他们是s q l 用户,s q l 查询建立在关系表之上;相似的,x q u e r y 的用户是那些使用x q u e r y 编制更高层应用程序和对x m l 数据进行管理的人员,在这些人员的概念中是将 x q u e r y 语言建立在x m l 文档之上的。然而,在查询处理中却存在很大的差异: x q u e r y 查询针对x m l 文档,而在数据库中,其数据却按照各种映射方法存储在 关系表中,查询对象与其数据来源位置不一致。对于x q u e r y 用户来说,必须满足 他们的要求,使得他们在使用x q u e r y 查询x m l 数据时,就像使用s q l 查询关系 数据一样方便。因此,在数据库之上执行x q u e r y 查询时,处理过程中的矛盾必须 得到很好的解决。 在关系数据库之上实现x q u e r y 的正常查询功能,会极大的方便x q u e r y 用户, 满足x m l 数据管理的实际需求,符合x m l 技术发展的潮流。 1 ,2 论文的主要内容 本文讨论的是x q u e r y 语言的查询处理问题,基于这样的前提:用户使用 x q u e r y 语言对存储于关系数据库中的x m l 文档数据进行查询。 基于关系数据库实现x q u e r y 查询的主要矛盾在于两个方面 1 ”。一是x q u e r y 语言是针对x m l 文档的查询工具,其本身无法作用到关系数据库的物理存储上, 因此存在查询语言功能转换的问题;二是对一个x q u e r y 查询来说,作为查询对象 的x m l 数据由各种方法映射到了数据库中,咀关系表形式进行了重新组织,己不 再符合原先所依照的x m l 格式,因此存在消除各种映射方法影响的问题。 通过查阅大量文献,文章对问题存在的两个方面作了分析,分别进行了两部 分讨论。对第一个矛盾,采用x q u e r y 到s q l 的查询语言转换方案 1 4 。,这样的 目的不仅是实现x o u e r y 在关系数据库中的查询处理,更具现实意义的是能够充分 利用关系引擎的已有功能,降低问题难度并可提高解决的效果。对第二个矛盾来 说,实际上是解决x q u e r y 查询处理方案对映射方法的适应问题 1 5 , 2 0 。由于映射方 法本身的多样性与变动性,所以查询处理方案也必须能够解决出现的各种情形, 这样x q u e r y 用户不必关心他的查询使用了哪个映射方法以及是怎样映射的。这是 个多种映射方法适应性的问题。 文章就这两个方面进行了阐述,分析了查询语言转换和多种映射方法适应性 解决处理的过程和方法,对比了若干具有代表性的现有解决方案,寻找到解决f - j 题并达到应用中各项要求的可行途径。 在此基础i - _ 设计了一个x q u e r y 查询处理的方法,采用基于虚拟x m l 视图 的x q u e r y 查询处理方案。文中对实现查询语言转换功能的底层处理机制的各部分 进行了分析归纳,得出相关的查询处理规则。对多种映射方法适应性的闷题,提 重庆大学硕士学位论文 1 绪论 出了一个虚拟x m l 视图自动创建机制,建立在底层处理机制之上。在把映射方法 分为两大类的前提下,对一类结构映射方法的适应性,通过x m l 结构树作为中问 步骤创建虚拟x m l 视图来实现,对另外一类模型映射方法,统一使用十二个参数 达到这一目标。文中设计了两个算法完成这两项工作。最后是对虚拟x m l 视图创 建机制的实验。该方法的优点是对映射方法适应面广,两个核心算法的使用使得 扩展代价小,利于升级更新和适应变化,使用户应用x q u e r y 语言查询存储于关系 数据库中的x m l 数据更为方便。 论文结构如下: 第二章概括的介绍了x m l 相关技术,按结构映射法和模型映射法两大类介绍 了x m l 到关系数据库的几个映射方法。 第三章就x m l 的查询语言问题作了讨论,着重探讨了x q u e r y 查询语言的几 个主要方面。 第四章讨论了本文面临问题的实质,从两个方面分析了该问题,详细讨沦了 x q u e r y 到s q l 的语言转换处理和多种映射方法的适应性实现两个部分,其中对典 型解决方案进行了分析与对比。 第五章在第四章的基础上分两部分详述了基于虚拟x m l 视图的x q u e r y 查询 处理方案。对底层处理机制分析得出查询处理规则;提出了建立于其上的虚拟x m l 视图自动创建机制,其核心是分别针对结构映射法和模型映射法的两个适应性解 决算法。本章完成了算法设计并对创建机制进行了实验。 第六章作以总结并提出了进一步的改进工作。 重庆大学硕士学位论文 2x m l 到关系数据库的映射 2x m l 到关系数据库的映射 2 1 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 ,可扩展标记语言) 1 1 是一种元标记语言, 起源于1 9 8 6 年由国际标准化组织批准的s g m l ( s 伽1 d a r dg e n e r a l i z e dm a r k u p l a n g u a g e ,标准通用标记语言) ,与1 9 9 0 年出现的h t m l ( h y p e r t e x tm a r k u p l a n g u a g e ,超文本标记语言) 同源,具有内容与形式分离、良好的扩展性、跨平台 移植性、自描述性等特点。x m l 是开放标准的一部分,与现有的标记语言相比, 尤其是在网络应用中,在数据的交换、存储、描述等方面具有明显的优势。w 3 c ( w o r l d w i d e w e bc o n s o r t i u m ) 于1 9 9 8 年发布了x m l l 0 版。x m l 已经成为电子 商务在语言和数据交换方面的发展趋势与事实标准。今天,x m l 在很多领域中大 展身手,这其中包括传统的数据库技术的范畴,人们开始考虑用x m l 文档来存储、 管理和查询i n t e m e t 上浩如烟海的信息资源。 x m l 文档组成 一篇x m l 文档主要由标记和内容组成。x m l 中共有六种标记:元素 ( e l e m e n t s ) ,属性( a t t r i b u t e s ) ,实体引用( e n t i t yr e f e r e n c e s ) ,注释( c o m m c i l t s ) , 处理指令( p r o c e s s i n gi n s t r u c t i o n s ) 和c d a t a 段( c d a t as e c t i o n s ) 。其中,元素 是标记的最常见的形式,由尖括号分隔,与h t m l 中的标记相似。x m l 文档是一 种基于文本的格式,在结构上主要由x m l 声明、处理指令和元素组成。下面是 个x m l 文档例子,b o o k l i s t x m l : r i c h a r d f e y n m a n t h ec h a r a c t e r o f p h y s i c a ll a w 1 9 8 0 r k 4 重庆大学硕士学位论文 2x m l 到关系数据库的映射 n a r a y a n w a t i n g f o rt h em a h a t m a 1 9 8 1 文档类型定义d t d x m l 与h t m l 最显著的不同是x m l 文档中引入了d t d ( d o c u m e n tt y p e d e f i n i t i o n ,文档类型定义) 。d t d 规定了x m l 文档的结构,通过描述子元素和属 性的名字及类型来定义x m l 元素的结构。其中定义了x m l 文档内容的元信息。 元信息包括:被允许的标注的次序和嵌套,属性值和它们的类型以及默认值,可 能引用到的外部文件的名字,可能包含的一些非x m l 的格式,以及可能遇到的实 体。用户使用d t d 定义自己x m l 文档的标记。d t d 赋予了x m l 文档的可扩展 性、结构性和可验证性。但是d t d 使用不同于x m l 的标记规范,其本身并不遵 循x m l 标准,在功能上也不完全适用需要,可定义的数据类型太少等,所有这些 缺点制约了d t d 的使用。上图所对应的d t d 文档如下所示: x m l s c h e m a x m ls c h e m a 是w 3 c 的推荐标准,它是x m l 文档的另外一种结构信息描述 方式,其本身就是用x m l 写的,对x m l 文档做了更为严格的规定,弥补了d t d 的不足,并且更有利于关系模式与x m l 模式之间的数据交换。s c h e m a 大有取代 d t d 的趋势。 o e m 数据模型 o e m ( o b j e c te x c h a n g em o d e l ,数据模型) 是针对半结构化数据提出的,在 对其稍加改进之后可用作x m l 数据的描述模型。模型由对象和关系组成,每个对 象包含一个唯一的i d 标号和值,由矩形表示,i d 代表x m l 文档结点在文档中出 现的顺序,值代表x m l 文档结点的值,关系表示结点之间关系,由向下的有向边 重庆大学硕士学位论文 2x m l 到关系数据库的映射 表示。对象可以是原子类型或复杂类型的,原子类型的对象的值是一些基本类型 值,包括:i n g e t e r , s t r i n g ,i m a g e ,s o u n d 等等。复杂类型的对象的值是一个( 属性, 对象) 对的集合。属性是一个字符串,是属性名空间的一个值。图中一些叶子节点 是具有原子类型值的对象。该图有一个根,根是一个特殊的对象,可以由该根出 发访问图中所有的对象。半结构化数据的o e m 模型正规定义和解释如下: 半结构化数据定义成一个图g 。 g = ( v ,e ,r ,v ) :代表半结构化数据的图g 是一个四元组。 v = v 。u v 。:v 是图g 的节点集。v 被分成v 。和v 。,v 。是复杂对象节点,v 。 是原子对象节点。 e = v 。a x v 。:e 是g 中边的集合。e 被定义成从复杂节点出发,经过属性名, 到达某个节点( 可以是复杂节点也可以是原子节点) r v :r 是树根。 v :v 。一d :定义原子类型对象的值,这里d 是原子值的空间。v 是节点。 下面是图2 1 所示的x m l 文档对应的o e m 图: 图2 10 e m 图 f i g u r e2 1o e mg r a p h 上图的左支树在o e m 模型的文本形式描述下为片段: b o o k : i s b n :”1 1 1 ”, a u t h o r :ff i r s tn a m e :”r i c h a r d ” l a s t n a m e :”f e y m m a n ” , t i t l e :”t h ec h a r a c t e ro f p h v s i c a ll a w ” p u b l i s h e d :1 9 8 0 ) ) 半结构化数据的特征包括:属性缺少或属性多出;多值属性;类型不同;异 重庆大学硕士学位论文 2x m l 到关系数据库的映射 构集合。可以把半结构化数据的概括为:半结构化数据是那种不规则的、自描述 的、没有预先定义的模式的数据。 2 2 映射方法 伴随着大量的x m l 数据和文档出现在i n t e r n e t 上,x m l 存储问题就必然的被 提了出来。传统关系数据库管理系统技术成熟,在各个领域都发挥着重要的作用。 利用关系数据库来存储x m l 数据已经成为一个重要课题。现在包括m i c r o s o f ts q l s e r v e r 2 0 0 0 ,o r a c l e 9 i ,i b m d b 2 2 1 1 等许多数据库已经引入了支持x m l 的新特性。 x m l 到关系数据库的映射是该课题的关键问题。由于半结构化的x m l 数据与 数据库中结构化的数据存储方式之间存在巨大的差异,因此存储之前必须对x m l 数据重新组织和进行转换,这一任务由映射方法完成。映射方法不仅要完整的转 换x m l 文档数据,而且要保证数据间的相互关系即文档结构信息不被损坏。一个 好的映射方法应该是等价映射,能够反向还原x m l 文档。 现在已有多种成熟的映射方法,但每个方法与实际应用的具体需要相联系, 并无一个或几个统一的方法能够解决映射问题,而且在实际应用中都可能被改动。 所以映射方法是多样的和变动的。文献 2 2 中,所有的映射方法整体上分为两大类: 结构映射法( s t r u c t u r e - m a p p i n ga p p r o a c h ) 和模型映射法( m o d e l - m a p p i n ga p p r o a c h ) 。 每一类中的多种映射法都有它们的共同之处,下面分别阐述。 2 2 1 结构映射法 在结构映射法中,必须要有x m l 的模式信息支持,关系模式是随不同的x m l 模式而动态生成的。一个共同的问题是如何从数据库模式产生x m l 模式( d t d 或 s c h e m a ) 或从x m l 模式产生数据库模式2 2 。3 1 。 从x m l 模式产生一个关系模式的一般算法过程如下: 1 ) 对每个复杂的元素类型创建一个表和一个主键列; 2 ) 对每个具有混合内容的元素类型,建立一个独立的表保存p c d a t a ,并通 过父表的主键连到父表; 3 ) 对于单值属性的元素类型和只出现一次的简单子元素,在表中建立一个属 性列,如果子元素和属性是可选的,则允许该列为空值; 4 ) 对于每个多值属性和多次出现的简单子元素,建立一个独立的表来存储元 素值,并通过父表的主键连到父表: 5 ) 对于每个复杂的子元素,将父元素类型的表连接到具有父表主键的子元素 类型的表。 有的x m l 文档中同一类型的元素会重复出现多次,当转换到数据库时,还需 要保存它们在同父元素下的次序信息。 重庆大学硕士学位论文 2x m l 到关系数据库的映射 从一个关系模式产生一个x m l 模式的一般算法过程如下: 1 ) 对于每个表产生一个元素类型; 2 ) 表中的每一个非主键列和主键列,在元素类型中加入一个属性或将一个仅 有p c d a t a 的子元素加入到它的内容模型中; 3 ) 对于每个输出主键的表,将一个子元素加入到内容模型中并且递归地处理 表; 4 ) 对于每个外键,将一个子元素加入到内容模型,并递归地处理外键表。 对于b o o k l i s t x m l 文档,模式信息由它的d t d 得到,采用每个复杂元素类型单 独对应一张关系表的映射方法,得到数据库的内容如表2 1 、表2 。2 、表2 3 所示。为 叙述方便,本文中称该方法为等量映射法,表示复杂元素类型与关系表数量相等 的结构映射法。 表2 1b o o k l i s t 1 1 a b l e2 ,lb o o k l i s t 厂订 亡工 表2 2b o o k t a b l e2 2b o o k i dp i di s b nt i t l e p u b l i s h e d o r d e r 111 1 1t h ec h a r a c t e ro f1 9 8 01 p h y s i c a ll a w 211 1 2 w a i t i n g f o rt h e1 9 8 l2 m a h a l m a 表2 3a u t h o r t a h i e2 3a u 出o r l i dp i df i r s t n a m el a s t n a m eo r d e r i 11r i c h a r d f e v n m a n 1 f 22r k n a r a y a n 1 有的复杂元素非常简单,为节省数据库空问往往合并到父或子元素的对应关 系表中,或者被省略例如表2 1 。本文中称之为精简映射法,表示数据库内容被简 化,数量减少的结构映射法。 有些情况下,x m l 文档没有或丢失了它的模式文档,那么就需要事先从文档 数据中提取x m l 模式。 这种映射模式的代表是s t o r e d 方法1 2 钔,将产生“好的”关系模式问题看做 是一个输入参数为x m l 的文档实例( 而不是传统的一组查询的代价) 的优化问题, 这样的优化是n p 难题。s t o r e d 方法利用了一种启发式数据挖掘算法自动产生 “好”的关系模式和s t o r e d 映射。这种映射是无损的,部分不规则数据由“溢出 映射”对应到“溢出模式”中。也就是说把全部x m l 数据存储到规则的关系模式 和不规则的溢出模式组成的混合模式中。x m l 数据的查询更新能自动地重写成关 重庆大学硕士学位论文 2x m l 到关系数据库的映射 系数据源与溢出源的查询更新。这样的模式选择不是唯一的,也不一定对所有的 查询是最优的。另外,这些关系模式也许不能满足x m l 更新的需求。 s t o r e d 技术可以不需要x m l 文档模式定义( d t d 或s c h e m a ) ,但文档模式信 息的存在有利于最小化溢出图、提高系统的效率。从实例数据提取x m l 模式能根 据不同的x m l 3 档实例产生“好的”关系模式。但是,模式的好坏取决于x m l 文 档实例的结构规则程度,同时,“好的”模式也未必对所有的x m l 查询是性能最优 的。另外,实例数据的模式提取算法的最坏时间复杂度较高,因而降低了其实用 性。 2 2 2 模型映射法 这一类映射方法【2 2 1 的特点是不使用x m l 的模式信息,而把x m l 文档看作与 o e m 图类似的x m l 树模型,以树模型的每个要素为单位进行转换,例如边或结点, 数据库中事先建立固定的关系模式,在存储过程中不发生变化。这种映射最突出 的优点是简单性,但这种转换有一定的局限性。面向边和面向结点是其中的两种 典型方法 2 5 矧,而大多数采用两者的混合形式。本文称下面两种为单表映射法和 三表映射法。 单表映射法在数据库中只建立一张关系表,每一条记录代表了x m l 树模型的 一条边。一条边由起点和终点两个结点确定。b o o k l i s t x m l 文档经过单表映射法后 数据库内容如表2 4 所示。 表2 4e d g e t a b l e2 4e d g e f i dp i do r d i n a ln a r n ev a l u e t y p e i 1o0b o o i d i s tn u l le l e m e n t i 2llb o o kn u l le l e m e n t 【3 2m l l li s b nl l la t t r i b u t e l 三表映射法是对单表映射法的改进,在数据库中建立三张表,但实质上与单 张表的方式是等价的,只是为了改进存储或方便应用的需要。b o o k l i s t x m l 文档在 数据库中建立三张关系表 2 5 ,如表2 5 、表2 6 和表2 7 。 表l a b e l p a t h 存储了x m l 文档中的所有结点的文档路径信息,其中l e n g t h 是路径 长度,“”表示从文档根结点出发;n a m e 是结点名字;t y p e 是结点类型。 表e l e m e n t 记录文档中每条路径的末端对应的文档结点,便于依据路径穿过文 档层次快速查找目标结点,n o d ei d 记录本结点编号;n o d e a 3 a r e n t _ i d 记录父结点编 号。 9 重庆大学硕士学位论文 2x m l 到关系数据库的映射 表d a t a 存入了文档中值为文本的结点编号及其值“v a l u e ”。 表2 5l a b e l p a t h t 曲k2 5l a b e l p a t h p a t h _ i d l e n g t h d a m t y p e 11b o o k l i s tb o o k l i s te l e m e n t 22b o o k l i s t b o o kb o o ke l e m e n t 33 b o o k l l s t b o o k i s b a i s b na t t r i b u t e 表2 6e l e m e n t 1 b b l e2 6e l e m e n t p a t h _ i d o r d i n a ln o d ei d n o d e _ p a r e n l i d 11l o 212 l 3132 4142 表2 7 d a t a 1 h b l e2 7 d a a n o d ei dv a l u e 3 1 1 1 5r i c h a r d 6 f e y n m a n 由于上面的三张关系表中记录的x m l 文档各结点,及其相关信息包括内容及 相互关系等,所以可以认为数据在x m l 文档与关系数据库之间转换时,前后信息 是等价的。在上丽三张表的基础上还可以增加一些表达冗余信息的关系表,可以 达到方便对某些关联信息快速查询的目的。 2 3 本章小结 本章介绍了x m l 及些相关技术。r f f x m l 至 i 关系数据库的映射方法按照结构 映射法和模型映射法两个大类加以阐述,为文章后面章节的内容作准备。 重盎奎堂堡主堂壁堡奎 :茎壁! 翌查塑堕童坌翌 3x o u e r y 查询语言分析 3 1x m l 查询语言及其特点 x j v l l 技术已经深入到在信息技术领域的各个方面,特别是x m l 在电子商务 中的优势和作用日渐显露,使得业界加大了x m l 应用的力度和广度。随着用x m l 存储、交换和表述信息的应用f i 盏增多,人们对其研究也越来越深入,如何从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 查询语言的一个显著 作用是作为结构化和基于内容的查询的工具,允许应用从一个或多个x m l 数据源 中精确地提取它所需要的信息。x m l 数据从功能上既不同于关系型数据,也不同 于面向对象型数据,不适宜用s q l 或o q l 来查询,所以必须研究专门的x m l 查 询语言来满足x m l 应用的要求。 近年来,这方面的研究十分活跃,先后涌现出多种x m l 查询语言,如x q u e r y 、 x q l 、x m l q l 、q u i l t ,x m l , - g l 、x p a f l a 、y a t l 、l o r e l 等,都对促进x m l 的推 广和应用产生了积极的作用。很多x m l 查询语言有极强的针对性,往往对某种数 据类型的查询十分有效,但对另一种数据类型的查询却无能为力,有的针对某 系统,不具备通用性。与此不同,x q u e r y 语言 3 - 9 是w 3 c 于2 0 0 1 年2 月公布一 种全新的x m l 查询语言,适用于各种类型的x m l 数据源的查询,是一种功能极 强的查询工具。x q u e r y 是在其他多种查询语言精华的基础上形成的,也借鉴了s q l 和o q l ,主要源于q u i l t ,兼具各种查询语言的优点【2 ”。 x q u e r y 语言形成的查询形式简洁易懂,结构简洁灵活,且易于实现。x q u e r y 是将查询表示成表达式的功能语言,支持若干种表达式,其查询可以有几种不同 的结构形式。各种x q u e r y 表达式可以完全嵌套,子查询的概念对x q u e r y 是很 重要。x q u e r y 使用x p a t h 来表示路径信息,x p a t h 是它的重要组成部分。 在关系数据库中,信息能够以规则化的二维表结构存储起来,但是文本文档

温馨提示

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

评论

0/150

提交评论