(控制理论与控制工程专业论文)面向对象xml数据库查询系统的设计与实现.pdf_第1页
(控制理论与控制工程专业论文)面向对象xml数据库查询系统的设计与实现.pdf_第2页
(控制理论与控制工程专业论文)面向对象xml数据库查询系统的设计与实现.pdf_第3页
(控制理论与控制工程专业论文)面向对象xml数据库查询系统的设计与实现.pdf_第4页
(控制理论与控制工程专业论文)面向对象xml数据库查询系统的设计与实现.pdf_第5页
已阅读5页,还剩89页未读 继续免费阅读

(控制理论与控制工程专业论文)面向对象xml数据库查询系统的设计与实现.pdf.pdf 免费下载

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

文档简介

内蒙古科技大学硕士学位论文 摘要 i n t 睦m e t 已成为全球信息传递和共享最重要的资源。皿凭借其自身的优势正成为 m 俄上数据描述和交换的标准,其迅猛发展使得对x m l 数据的管理需求进一步地增 强。沮,是典型的半结构化数据,其数据模型的表达能力要比关系模型和面向对象模 型更强,采用传统的数据库来管理儿数据则显得力不从心,因此x m l 数据库研究 成为了一个新的热点。 众所周知,面向对象的方法具有很强的建模能力,本课题主要探讨的是一种将面向 对象的概念引入到礼数据库中来提高儿语言建模能力的方法,以此使面向对象 方法在建模方面的优势能够和x m l 结合得以充分发挥,进而提高对x m l 数据的管理 能力。由于查询系统是数据库中的关键部分,因此本课题选择该部分进行研究,设计与 实现了面向对象x m l 数据库中的查询系统。首先分析了本系统实现的理论基础,这包 括查询系统所涉及的数据模型、查询语言、存储结构、查询代数等;其次结合本系统独 有的面向对象的特征研究了查询实现的过程,实现了查询系统理论上涉及到的上述四 点。面向对象沮,的数据模型类似复合对象数据模型,该模型支持元素层次,多重继 承和多态等特性。本系统在对儿文档存储上采用了两种存储模型,并在这两种存储 模型上分别设计与实现了本系统所使用的查询语言扩展x l v i l - r l 查询语言的查询 代数,使得本系统可以完成查询多态元素,多态引用,独占元素和独占引用等方面的查 询。 通过测试表明按照本文的设计方法可以实现查询多态元素、多态引用、独占元素、 独占引用等具有面向对象特征的查询功能。与此同时可以实现现存v 几查询语言所具 有的选择、排序、聚集等典型功能。最后对两种存储模型进行了性能的分析与比较,研 究结果表明对不同的查询两种存储模型各具优势。 关键词:面向对象) m 几;扩展x n i l - r l 查询语言;存储模型;扩展v i l - r l 查询代数 内蒙古科技大学硕士学位论文 t h e d e s i g na n di m p l e m e n t a t i o no fq u e r ys y s t e mi n0 b j e e t 0 r i e n t e d 讧ld a t a b a s e a b s t r a c t i n t e m e th a sb e e nam o s ti m p o r t a n tr c s o u i v 七f o ri n f o r m a t i o nt r a n s f e r r i n ga n ds h a r i n gi nt h e w o r l d t h ea d v a n t a g eo f x m ln l s k e sx m lb e c o m et h es t a n d a r do f d e s c r i b i n ga n de x c h a n g i n g t h ed a t a w i t ht h ef a s td e v e l o p m e n to f x m lt h en e e do f m a n a g i n gx m ld a t ai ss t r o n g e r x m l i sat y p t e a ts e m i - s t m e t t t r e dd a t aa n dt h ee x p r e s s i o na b u i t yo fi t sd a t am o d e li ss t r o n g e rt h a r r e l a t i o nm o d e la n do b j e c t - o r i e n t e dm o d e l s ou s i n gt h ec o n v e n t i o n a ld a t a b a s et om a n a g e1 l l e ) 函md a t ai ga b o v ei t sb e n d t h er e s e a r c ho f 舢d a t a b a s ei sg o i n gt ob ean e wh o t s p o t a sw ek n o wo b j e c t - o r i e n t e dm e t h o d sh a v es t r o n gm o d e l i n ga b i l i t y , w er e s e a r c hh o wt o i n t r o d u c et h eo b j e c t - o r i e n t e dn o t i o ni n t ox m ld a t a b a s et oi m p r o v et h em o d e l i n ga b i l i t yo f x m l t h a tm a k et h ea d v a n t a g eo fo b j e c t - o r i e n t e dm o d e l i n gc a ni n t e g r a t ex m l t 0i m p r o v e x m lm a n a g e m e n tc a p a b i l i t y q u e r ys y s t e mi sap i v o t a lp a r ti nd a t a b a s es ow ep u tt h e e m p h a s e so ni t w ed e s i g na n di m p l e m e n t t h eq u e r ys y s t e mo fo b j e c t - o r i e n t e dx m ld a t a b a s e f i r s t l yw ea n a l y s et h et h e o r yo f t h es y s t e mi m p l e m e n t a t i o nt h a ti n c l u d ed a t am o d e l 、q u e r y i n g l a n g u a g e 、s t o r a g em o d e l 、q u e r y i n ga l g e b r aa n do t h e r w i s e s e c o n d l yw er e s e a r c ht h e i m p l e m e n t a t i o np r o c e s so ft h es y s t e mt h a th a st h eo b j e c t - o r i e n t e dc h a r a c t e r s t h a ti n c l u d i n g f o u ra s p e c t so fi m p l e m e n t a t i o nt h e o r yi sm e n t i o n e da b o v e 田玲o b j e c t - o r i e n t e dx m ld a t a m o d e li ss i r d a rt oc o m p l e xd a t am o d e la n d s u p p o r tt h ee l e m e n th i e r a r c h y 。m u l t i p l e i n h e r i t a n c e 。p o l y m o r p h i s ma n ds oo n t h es y s t e mi sd e s i g n e dt oh a v et w ok i n d so fs t o r a g e m o d e lt os t o r ex m ld o c u m e n ta n dt w ok i n d so fq u e r ya l g e b r a so ft h ee x t e n d i n gx m l - r l r e s p e c t i v eb a s i n go i lt h et w ok i n d so fs t o r a g em o d e l n 把i m p l e m e n t a t i o nm 越砖t h es y s t e m 眦 q u e r yp o l y m o r p h i s m ,p o l y m o r p h o u sr e f e r e n c e ,e x c l u s i o na n de x c l u s i v er e f e r e n c ee t c t e s t i n go nt h es y s t e mv a l i d a t et h ee o r r e e u l e s so fd e s i g nm e t h o dt h a ti sm e n t i o n e di nt h e t h e s i s u s i n gt h ed e s i g nm e t h o dt h es y s t e mc 鳓q u e r yp o l y m o r p h i 髓- a 。p o l y m o r p h o u sr e f e r e n c e , e x c l u s i o na n de x c l u s i v er e f e r e n c e ,a n do t h e r w i s eo b j e c t - o r i e n t e dq u e r y a tt h es a m et i m et h e s y s t e mc a ni m p l e m e n ts o m ef u n c t i o mo f t h eo t h e re x i s t e n tx m lq u e r yl a n g u a g e ,f o re x a m p l e s e l e c t i o n , c o m p o s i t o r c o n g r e g a t i n ga n d s 0o i lmt h ee n do f t h et h e s i sw ec o m p a r ea n d a n a l y s e t h ep e r f o r m a n c eo f t h et w os t o r a g em o d e l s 1 1 1 er e s u l t ss h o wt h a tt h et w os t o r a g em o d e l sh a v e t h e i ro w na d v a n t a g eo nd i f f e r e n tq u e r y 2 内蒙古科技大学硕士学位论文 o b j e c to r i e n t e dx m l 、e x t e n d i n gx m l - r lq u e r yl a n g u a g e 、s t o r a g e m o d e l 、e x t e n d i n gx m l - r lq u e r ya l g e b r a 3 独创性说明 本人郑重声明:所呈交的论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得 内蒙古科技大学或其他教育机构的学位或证书所使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并 表示了谢意。 关于论文使用授权的说明 彬6 本人完全了解内蒙古科技大学有关保留、使用学位论文的规定, 即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可 以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保 存论文。 ( 保密的论文在解密后应遵循此规定) 签名:越 导师签名:塑壁鱼 日期: 内蒙古科技大学硕士学位论文 作为互联网的新技术,x m l 的应用非常广泛,可以说x m l 已经渗透到了互联网 的各个角落,如电子商务、数据交换、w e b 应用、精确搜索、智能代理等等。人们已经 普遍认识到x m l 的巨大作用和潜力,因此对x m l 各个方面的研究也逐渐增多。x m l 是一种元标记语言,其凭借自身的优势正成为m t e m e t 上数据描述和交换的标准。x m l 在互连网上的大量应用引发了一个更实际并且急需解决的问题就是如何来管理海量的 x m l 数据。 目前已经有很多学者和业界中的厂商关注这一问题,找到了一些解决上述问题的方 法。这些解决的方法主要分为两类:儿e n a b k dd b m s ( x e d ) 和n a t i v ex m l d b m s ( n x d ) 。第一种方法是在传统的数据库基础上扩展了x m l 支持模块,完成了 x m l 数据和数据库之间格式的转换和传输。其优势就是利用了现存的传统数据库的成 熟经验,但其破坏了x m l 文档的结构。第二种方法是专门为x m l 文档存储设计的, 其内部存储模型是基于x m l 文档树型结构,而不是关系模型。这使得其很好地保持了 x l v i l 的文档格式,不过由于这种方法采用的知识很新,所以其所受的支持和关于这方 面的文档都较少,但是这种方法被普遍认为代表了未来发展的方向。 在对n a d v ex m ld b m s 的研究中,其逻辑模型采用的多为d o m 等树或图的模 型。但是有一类x m l 文档包含着一些面向对象的特征,对于这样的文档使用d o m 等 模型根本无法体现其特殊性,对此类文档的存储模型的研究也属于空白。本课题所要研 究的就是将面向对象的特征引入到x m l 中,解决上述问题。众所周知,面向对象的方 法具有很强的建模能力,将面向对象的特征引入到x m l 中可以提高x m l 语言的建模 能力。为了验证该方法的可行性,本系统使用扩展x m l r l 这种x m l 查询语言,设计 与实现了相关的存储模型和查询代数,完成对x m l 文档的存储和查询。 通过测试可以看出,这种将面向对象的方法引入到x m l 中完全可行,并且支持多 种具有面向对象特征的查询。这种建模方法还可以推广到一般的非面向对象的x m l 文 档。通过对w 3 c 组织提供的部分查询用例的基本查询功能进行测试可以得出,利用本 系统可以顺利完成所要求的查询功能。 内蒙古科技大学硕士学位论文 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 对i u t e r n e t 的发展以及知识和信息的传播 起着不可磨灭的作用。但是随着w e b 应用的不断深入,h t m l 语言已经满足不了日益 复杂的w c b 信息交流的需求,这时候则需要一种可以满足w e b 应用扩展标记需求的语 言,咀。应运而生。 1 1 x m l 简介 1 1 1x m l 概念及特性 x m l ( e x t e r t s i b l em a r k u pl a n g u a g e ) 日p n 扩展标记语言,是用于标记电子文件使其具 有结构性的标记语言【l 】。 x m l 的迅速发展势将取代h t m l 成为i n t e m e t 上数据描述和交换的标准,这种趋 势的必然性与其自身的特性是分不开的【2 】。 首先其具有可扩展性。可扩展性一直是h t m l 的弱点,x m l 则解决了这一问题。 x m l 允许使用者创建和使用他们自己的标记而不是h t m l 的有限词汇表。 其次是灵活性。h t m l 很难进一步发展,就是因为它是格式、超文本和图形用户界 面语义的混合,要同时发展这些混合在一起的功能是很困难的,而x m l 提供了一种结 构化的数据表示方式。这些严格的数据结构的好处之一在于使在客户端的测览器和数据 库之间来回传输文件变得很可靠,也使用户可以使用结构化的x m l 文件作为一种中介 体,让数据在两种数据库之间灵活地进行转移。另一个优点是使各种格式的x m l 文件 都可以被机器识别。所以,w e b 用户所追求的许多先进功能在x m l 环境下更容易实 现。 第三是自描述性。x m l 文档通常包含一个文档类型声明,因而x m l 文档是自描 述的,这些描述被称作“元数据( m e t a d a t a ) ”。自描述使得不仅人能读懂x m l 文档,计 算机也能处理。带有自描述性还可以增强w e b 的检索功能。 i 1 2 帆应用领域 x m l 在诸多领域有着重要用途,其中比较有代表性的是数据交换f 3 l 、w e b 应用、 数据和信息管理【4 】、电子商务和设计标记语言。 2 内蒙古科技大学硕士学位论文 1 1 2 1 数据交换 数据交换是x m l 最重要的用途之一,主要为下面两个方面: 1 ,e d i f e l e e t r o n i ed a t ai n t e r c h a n g e ) 电子数据交换。 2 软件设计元素的交换。 1 1 2 2w e b 应用 基于x m l 的文档资源使w e b 搜索引擎的智能化变得容易起来,而且x m l 能够用 来建立h t m l 所不能达到的多层w e b 应用。x m l 在w 曲应用中有下列用途: 1 集成不同数据源。 2 本地计算。 3 数据的多种显示。 4 支持w e b 应用的互操作和集成。 1 1 2 3 数据和信息管理 1 知识管理。使用x m l 的文档结构化和文档含义化功能,可以统一进行多项目索引 管理,而且新老文档可以混合使用。 2 文档管理。用x m l 管理文档数据,面向多种形态媒体可输出同一数据,易于维护 文档,降低成本。 1 1 2 4 电子商务 随着) 0 旺标准体系的成熟和技术的发展,已经出现了相当多的客户化工具使得入 们可以无需了解x m l 的细节就能够编写出需要的x m l 文档,这使得x m l 应用在电 子商务中成为可能。而浏览器对x m l 越来越强的支持能力,对x m l 应用起到了巨大 的推动作用。 1 1 2 5 设计标记语言 x m l 的一个优势就在于它允许每个行业组织和开发人员使用x m l 创建他们自己 的标识语言,用于在他们各自的领域中实现信息的交互。这特点使得x m l 可以在电 子商务、政府文档、出版、厂商等领域中一展身手,针对不同的系统、厂商提供各具特 色的独立解决方案。 1 1 3x m l 研究领域 x m l 的广泛应用促使x m l 的研究逐渐升温,对其的研究领域主要集中在如下的 六个方面。 - 3 内蒙古科技大学硕士学位论文 1 1 3 1 异构系统之间的互连 由于企业之间、部门之间使用的操作系统平台和数据库的不同,导致共享信息流通 的困难。x m l 因其具有自定义性及其可扩展性等优势,便于表达各种类型的数据,可 作为异构数据库之间的中间件解决数据的统一接口问题,便于不同数据库之间信息交换 和共享l ”。 1 1 3 2 信息检索 由于x m l 标记能够很明确地表达它的涵义,所以可以将其用在搜索引擎上。x m l 可以根据关键词和内容之间的依存关系进行准确定位,从而能根据搜索者所提供的关键 词很清楚地知道搜索者表达的语义而返回正确的结果1 5 】。 1 1 3 3w e b 自动化 随着w e b 上内容及应用的快速增加,实现w e b 交互操作自动化已经非常必要。通 过h t m l 形式来进行用户交互操作,往往由于服务提供者改变了网站布局,向表单中 增加了新的内容或改变了u r l ,使得自动浏览软件出错,而更改它们需要花费大量的 时间,x m l 则可以解决以上问尉”。, 1 1 3 4x m l 安全标准 目前有关x m l 安全标准正在探讨中,随着x m l 在电子商务中的广泛应用,如何 保证在合作伙伴、客户和供应商之间传递数据的安全性和可靠性,解决授权和认证机制 将成为重要闯题。 1 1 3 5x m l 的应用研究 在远程医疗、远程教学和电子图书馆等应用中大量的图片、声音、视频等多媒体信 息需要在网络上传输、再现,因此有关基于x m l 的多媒体标准和应用研究需得到深入 研究。同时w a p 、v o i c ex m l 和a u d i ox m l 等应用的研究也应受到重视。 1 1 3 6x m l 文档的数据管理 我们可以把整个x m l 看成是一个数据库系统,x m l 文档本身可以看成是数据库 中的数据区,d t d 或者s c h c n m s 可以看成是数据库模式设计,s a x 或d o m 可以看成 是数据库处理工具。但是它还是缺少数据库所必须的些东硬,比如有效的存储组织、 索引结构、安全性、事务处理、数据完整性、触发器、多用户处理机制等等。这就需要 研究x m l 文档如何存储、建立索弓1 、查询等相关内容。 d , 内蒙古科技大学硕士学位论文 1 2x m l 数据库的研究现状 x m l 文档日益增多,使得如何存储和管理这些文档以及对这些文档信息有效地查 询等相关问题接踵而来,这就需要一个x m l 数据库来解决以上问题。一个x m l 数据 库就是x m l 文档及其部件的集合,并通过一个具有能力管理和控制这个文档集合本身 及其所表示信息的系统来维护【6 j 。x m l 数据库不仅是结构化数据和半结构化数据的存 储库,像管理其它数据一样,持久的x m l 数据管理包括数据的独立性、集成性、访问 权限、视图、完备性、冗余性、一致性以及数据恢复等。 x m l :d b 的创始者定义了三种x m l 数据库系统 7 】包括x m l 本源数据库n a t i v e x m ld a t a b a s e 、支持x m l 的数据库x m l - e n a b l e dd a t a b a s e 和混合x m l 数据库。x m l 本源数据库是专门设计用于存储和管理x m l 文档的数据库,它以x m l 文档作为数据 库的存储单元进行操作和管理。目前公布了许多功能各具特色的n x d ,比如s o f t w a r e a g 公司的t a m i n o 、d b x m lg r o u pl l c 公司的d b x m l 、e x c e l o n 公司的e x c e l o n 等 等。支持x m l 韵数据库烈是在传统数据库的基础上增加对f 匝的支持,以便保存积 输出x m l 形式的文档,通过适当的x m la p i 对) 0 v i l 文档进行查询和修改。由于这种 x m l 数据库的核心还是关系数据库或者面向对象数据库,因此一些大的数据库厂商都 提供了对该类型x m l 数据库的支持。如a c c e s s2 0 0 2 、s q ls e w e r2 0 0 0 、i b m 的d b 2 x m l 、f o x p r o 、i n f o r m i x 、o b j e c t i v i t y d b 、o r a c l e8 i ,9 i 等。混合x m l 数据库则是通 过x m l 和其它的访闯接口对x m l 文档进行管理和操作。 一个x m l 数据库核心部分包括三方面 8 1 :1 x m l 数据库数据模式:w 3 c 已经制 定了四种x m l 文档抽象模型的规范,分别是i n f o s e t 模型、x p m h 数据模型、d o m 模 型和x m l 查询数据模型。四种模型都把x m l 文档描述为一个树结构。x m l 数据库的 数据模式主要由d t d 或者x m ls c h e m a 定义。对皿,数据库内容的存取访问都依据 该模式。该模式规定了元素、属性、p c d a t a 以及文档内容的顺序。2 x v l l 数据库查 询语言:传统关系数据库只能采用s q l 查询语言,而x m l 数据库查询语言包括 x q u e r y 、x p a t h 、x q l 、x m l - q l 、q u i t t 等。3 x m l 数据库的存储机制:根据x m l 数 据库系统类型的不同,采用不同的x m l 存储方式。主要有两种类型:n x d 与x e d 。 n x d 是专门针对x m l 格式文档进行存取管理和数据操作的数据库,数据库中的数据和 元数据完全采用x m l 结构表示,与其底层的数据存储格式( 如对象模型、关系模型等) 无关。n x d 的逻辑模型是建立在x m l 文档而非文档中的数据之上,其数据存取必须采 用x m l 及其相关标准。x e d 的核心仍然是关系数据库,只不过加上了一层x m l 的转 。5 。 内蒙古科技大学硕士学位论文 换接口。从存储粒度上看,可以把整个x m l 文档作为r d b m s 表中的一行,或把 x m l 文档进行解析后,存储到相应的表格中。 目前对x m l 数据库中的技术研究较多的有x m l 数据模型、x m l 查询代数系统、 数据索引技术、查询优化技术、x m l 数据的完整性、x m l 数据的依赖性等。 1 3x m l 查询语言发展现状 x m l 查询语言主要是关于x m l 数据的提取、重组和整合f 9 】。在提出的查询语言中 比较有影响力的查询语言有x m l - q l t ,l o r e l t l ”,q u i l t f l 2 1 ,x q u e r y t l 3 1 等。其中 x q u e r y 已经被w 3 c 组织选择为基本的官方x m l 查询语言。 x m l - q l 是a t & t 实验室的数据库研究人员设计的。该语言和x m l 文档的集成性 比较好。其类似于s q l 和o q l 允许嵌套查询,通过使用元素模式匹配进行查询处 理。x m l - q l 能表达对多数据源的x m l 查询和转换。 l o r e l 是作为l o r e 数据库管理系统的查询语言实现的。l o r e 是斯坦福大学专门针对 半结构化数据而设计的数据库系统,现已扩展以适应x m l 数据酶查询。l o r e l 支持 类型强制转换和路径表达式等。 q u i l t 综合了很多语言的优点,它的路径表达式参考了x p a t h ,变量绑定借鉴了 x m l - q l ,f l w r 表达式类似于s q l ,而且它还支持用户自定义函数。q u i l t 不仅 可以查询x m l 数据,还可以查询关系数据,它的表达能力很强。 x q u e r y 是在q u i l t 的基础上改进提出的,主要增加了形式语义和对x m ls c h e m a 的 支持。w 3 c 组织已经将其定为x m l 查询的标准语言。w 3 c 为x m l 定义了模式, 使得x m l 很有希望成为和关系模型、对象模型并列的新型数据库数据模型,而不 仅仅是数据表达方式。w 3 c 还为x m l 查询定义了查询数据模型和形式语义。 x q u e r y 获得了广泛的支持,目前出现了很多支持x q u e r y 的原型系统。 1 4 课题研究目的及意义 本课题研究的目的是把面向对象的概念应用到咀。数据库中,来提高x m l 语言 的建模能力,使其支持元素继承层次、多重继承、重载、阻断、多态和冲突处理机制。 x m l 数据是半结构化数据,半结构化数据可以被用来表示任何已知的数据源,包 括关系数据和面向对象数据。对于用x m l 文档表示的面向对象的数据源来说现存的 x m l 查询语吾1 ”1 ,1 2 1 习从功能上看均不支持具有面向对象特征的查询,因此可以说把面 向对象的概念应用到x m l 中是x m l 数据库研究的一个崭新视角。 6 内蒙古科技大学硕士学位论文 由于面向对象方法具有很强的建模能力,例如继承、非单调继承、多态性、复杂数 据结构等,因此可以使咀。查询语言在查询面向对象的儿文档 4 5 j 时表达更加地简 洁、易懂。 1 5 课题主要研究内容 本课题通过对x n f f 和面向对象技术的研究,针对皿的特点将面向对象方法引 入到x m l 数据的管理中。由于一个皿数据库涉及到的技术很多,因此本课题把重 点放在了查询系统的设计与实现上。首先对x m l r l 查询语言进行研究,在其基础上 对该语言的数据模型及查询语言两方面进行扩展;然后介绍了两种) 0 沮。文档存储模 型,在这两种存储模型上分别实现了面向对象的咀,查询代数,并完成了具有面向对 象特征的查询功能;最后通过对扩展) q v f f , r l 查询语言在两种存储模型上的实现结果 进行比较,分析了不同存储模型实现查询性能方面的差异。具体分为如下几个方面: 1 研究) f l v f f , - r l 查询语言,及其扩展。 2 设计x m l 文档存储模型并实现。 3 设计扩展v i i ,r l 查询语言的查询代数并实现。 4 测试查询系统的功能及其性能并进行分析。 7 内蒙古科技大学硕士学位论文 2 面向对象x m l 数据库查询系统实现的理论基础 2 1 面向对象的x m l 文档与扩展d t d 2 1 1 面向对象的x m l 文档 x m l 文档是由一系列嵌套结构构成的,元素由其子元素构成。对于一般的x m l 文档,其模式信息由d t d t l 4 域者x m ls c h e m a 1 5 1 等模式语言定义。而对于一些特殊的 x m l 文档,从文档中元素标记的特征就可以看出具有面向对象的特征。如一个元素与 另一个元素具有一些相同的子元素与属性,若用面向对象的思想去分析则存在继承关 系,因此对这类特殊的文档可以从面向对象的角度对其进行建模,使其包含元素层次, 多重继承,重载、阻断、多态等信息。于是可以将这样的x m l 文档定义为面向对象的 x m l 文档。由于面向对象的x m l 文档包含了比普通x m l 文档更多的信息,而现存的 模式语言都不能对面向对象的x m l 文档所具有的特殊模式信息全面支持,因此需要扩 展一种模式语言,使其可以全面描述面向对象的x m l 文档模式。 2 1 2 扩展d 巾 x m l 文档中的结构信息是由x m l 模式语言进行描述。其中包括为文档提供一个 结构框架,为元素定义一个内容模型、数据类型和数据约束等定义。目前已有很多 x m l 模式语言被提出,例如:d t d ,x m ls c h e m a ,s o x t l 6 1 ,x d r e m ,d s d l l ”。其中 只有x m ls c h e m a 和s o x 支持继承,但它们都不提供对多重继承的支持。由于d t d 的表示非常简洁,易于理解,并且对d t d 所进行的扩展很容易应用至h 其他x m l 模式 语言中去,所以选择对d t d 进行扩展。扩展后的d t d 能够支持元素继承层次、多重继 承、重载、阻断、多态和冲突处理机制【1 9 1 。扩展d t d 可以对面向对象的x m l 文档模 式进行很好的描述。 8 。 内蒙古科技大学硕士学位论文 ( ! e l e m e n ta d d r ( s t r e e t ,c i t y ,s t a t e ,z i p ) ( ! e l e 皿n te i t y ( # p c d a t a ) ( ! e l 陇n td e p t ( # p c d a t a ) ( 一d e f i n i t i o nf o re l e m e n tt a 一 e l e 娅n tt ai s as t u d e n tw i t h e l i 瑚e n t ( d e p ta ss t u d e n t d e p t ) t e a c h e rw 1 1 垭u _ 吲盯( d e p ta st e a c h e r - - d e p t ) e l e 皿n ta d d r ( b l o c k e d 删s t u d e n t ) t a u a h t b y ) 图2 1 扩展d t d 扩展d t d 与d t d 相似只是增加了对面向对象特征的支持如图2 1 。图2 1 的扩展 d t d 所描述的文档为图2 5 的x m l 文档,该文档在整篇论文中将被用到。下面以图 2 1 为例来说明如何对d t d 进行扩展。 扩展1 ;元素层次 语法结构为: 9 一 内蒙古科技大学硕士学位论文 i s a 结构可以表示有多个超元素被继承。由于 i s a s u p e r - e l e m e n t - n a m e s - l i s t 是可选 的,因此也可以表示一个元素没有超元素。e l e m e n t - c o n t e n t - m o d e l s 的语法与d t d 是相 同的,但却表示在元素层次中一个子元素继承了超元素的元素和属性,将其特有的元素 和属性在e l e m e n t - c o n t e n t - m o d e l s 中表示出。但是对于重载的元素或者属性没有特别的语 法进行扩展。如图2 1 中的s t u d e n t 元素继承了p e r s o n 元素,而s t u d e n t 元素的组成元素 a d d r 用一个简单元素对继承的a d d r 元素进行了重载。 扩展2 :继承阻断 语法结构为: ! e l e m e n t e l e m e n t - n a m e ( b l o c k e df r o m s u p e r - e l e m e n t - n a m e s - l i s t 、 该结构可以表示某些从超类继承的元素或者属性被阻断。阻断后该元素或者属性的 返回类型为n o n e ,但是那个被继承阻断的超类的类型没有特别地指明。选择性阻断机制 的优点就在于它可以被用来解决冲突。 扩展3 :重命名 语法结构为: i s a s u p e r - e l e m e n t w i t h e l e m e n t7 o l d - e l e m e n t - n a m e a s n e w - e l e m e n t - n a m e ) ) 幸 + i s a s u p e r - e l e m e n t w n h a 丌瓜u i e ( o l d - a t l n b u t e - n a m e a s n e w - a t t r i b u t e n a m e ) ) + ) + 该结构表示在多重继承中如果其超类列表中的类具有相同的元素或者属性,这样在 继承过程中就产生了冲突,通过对产生冲突的元素或者属性重新命名来解决冲突。如在 本文示例中t a 继承了s t u d e n t 和t e a c h e r 中的元素,这样就存在两个要被解决的冲突, a d d r 和d e p t 元素。由于一个人的住址一般只要求一个,因此a d d r 的解决办法采用的是 扩展2 的继承阻断,阻断了从学生继承的a d d r 元素,也就是指明该元素或者属性是从 哪个超类继承的。而对于d e p t 元素来说,一个t a 因为可能分属不同的部门,从两个超 类中继承的d e p t 都要保留,因此就用到了重命名。 扩展4 :多态元素 。该扩展没有指定的语法。 1 0 内蒙古科技大学硕士学位论文 该扩展为:在个文档实例中,一个元素实例可以是它的一个子元素实例,也就是 说一个子元素实例可以应用到任何一个需要其超元素实例的地方。 多态性是面向对象的一个重要的特征,将多态性引入到x m l 中后,在一个文档实 例中一个元素实例可以被其子元素实例所代替,并且这个文档实例仍然是有效的。在扩 展d t d 中将该特征引入进去也是十分必要的。 扩展5 :多态引用 语法结构为: 该结构可以表示多态引用,如本文实例中的t e a c h e r 元素教授了几门课程,其中包 括c o t h s e 、u n d e f _ o u r s e 、g r a d c o u r s e 。在图2 5 中可以看出t e a c h e s 是一个指向c o u r s e 的 i d r e f s 属性,当扩展了多态引用后,t e a c h e s 指向u n d e r c o u r s e 和g r a d c o u r s e 将被支 持。at e a c h e r t e a c h e sc o u r s e s 、at e a c h e rt e a c h e su n d e r c o t a - s e s 、at e a c h e rt e a c h e s g r a d c o u r s e s 都将是有效的。在扩展d t d 的 结构中c a u r s 允许表示g o u r 实例和其子类的实例,这与d t d 不同。 扩展6 :多态引用概念 如果一个i d r e f ( s ) 属性被用在一个给定的元素中,那么它可以指向该元素实例和 其子元素实例,这样的应用称为多态引用。 扩展后的d t d 与其他的x m l 模式语言相比,功能更加的完善,提供了对面向对 象特征的支持,从下表可以得出阻下结论: 表2 1 扩展d t d 与其他x m l 模式语言比较 d t dx m 臣s c h e m a s o x扩展d t d 元素层次 4 属性层次 重载 部分 阻断 部分 多态元素 部分 多态引用 多重继承 冲突处理 1 l 。 内蒙古科技大学硕士学位论文 1 扩展d t d 支持了所有的扩展特性,而d t d 均不支持 2 对于属性层次、多重继承和冲突处理,除了扩展d t d 以外其他均不支持。 3 x m ls c h e m a 可以使用重定义和替换机砖n 模仿重载、阻甑和多态。 2 2x m i 广r l 语言简介 x m b r l ( x m lr u l e b a s e dq u e r yl a n g u a g e ) b p 基于规则的x m l 查询语言。它以一种 很自然的方式把x m l 文档看成是复杂对象数据模型刚,所以我们可以很容易地从数据 库的观点去理解x m l 数据。x m l - r l 语言把存在的x m l 文档看作演绎数据库的外延 数据库,把规则的查询和函数表达式看作演绎数据库的内含数据库。x m l - r l 区别于其 他x m l 查询语言主要在于它把查询部分和结果构造部分严格地分开,并且提供了一种 形式逻辑基础1 2 0 。 2 2 1 忠i ,语言的提出 随着x m l 查询技术的发展,x m l 查询研究中出现了很多种原型语言,其中著名 的有x p a t h 2 ”,x m l - q l ,x q u e r y ,l o r e l 等。x q u e r y 已经被w 3 c 组织选择为基本的 官方) m 几查询语言。 相应于一种查询语言则对应着一种数据模型。x m l 是一种半结构化数据,其数据 模型也类似于半结构化的数据模型。大多数半结构化数据表现为树或者图的结构,因此 目前提出的关于x m l 的数据模型,例如d o m g u ) 、x s ld a t am o d e l 2 3 1 、x m li n f o r m a t i o n 赋馨q 以及x m lq u e r yd a t am o d e l l 2 5 1 等都是用节点树或图的形式来表示x m l 文档。这些 数据模型主要是在机器层次上表示x m l 文档,是低级数据模型【2 0 l 。 虽然现存的各种x m l 查询语言在对x i v l l 文档查询的不同方面都具有各自的优 势,但是包含x q u e r y 在内,这些查询语言都有一些不尽人意的地方。 首先这些查询语言的数据模型都是基于图或基于树的较低级别的数据模型。 其次,大部分存在的查询语言都是基于s q l 和o q l 。由于x m l 查询与传统的关 系数据库查询不同,x m l 的查询结果很复杂不是平面关系,这样x m l 查询不得不由 两部分组成,查询部分和结果部分。现存的x m l 鸯询语言则以一种嵌套的形式混合了 查询部分和结果部分,这就是从s q l 和o q l 继承下来的一个问题。 再次,递归不能用正常的查询语言和结果组成的结构来表示。为了解决这样的问 题,用户则不得不定义函数来解决递归。但是函数通储是为需要多次调用的计算而设计 的并不是为了其它目的,所以从这个观点来看这都是语言设计的缺点网。 - 1 2 - 内蒙古科技大学硕士学位论文 最后,现存的x m l 查询语言都缺乏逻辑基础冈,而这在过去的数据库研究中起着 重要的作用。 因此根据上述的查询语言的不足促使缸球i 这种基于高级数据模型的以规则为 基础的咀。查询语言被提出来

温馨提示

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

最新文档

评论

0/150

提交评论