已阅读5页,还剩51页未读, 继续免费阅读
(计算机应用技术专业论文)nxd数据库事务及并发机制的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 各种以网络为媒介的信息平台在不同的领域内发挥着巨大作用,信息资源的获取和 交换基本上都离不开数据库的支撑,随着网络的发展,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 原生数据库即c d ( n a t i v ex m ld a t a b a s e ) 在 并发控制机制方面和事务的研究才刚刚开始。本文旨在该方面做出积极的探讨,提出一 个解决方案。 本文借鉴了多版本的思想,建议了一种基于x p a t h 路径查询语言的x m l 数据库并 发控制机制的事务处理模式。首先,根据文档树模型定义一种支持更新操作的数据库数 据节点的编码方式,其次,根据该编码的数据模型来定义出x m l 数据库操作集。再次, 提出并发控制封锁协议机制和锁模型,发生死锁时的解除方法,对使用该封锁协议时的 事务调度进行了可串行化调度验证,实现多事务的并发访问控制。 关键词:x m l ,编码,事务,并发控制,锁协议 r e s e a r c ho nt h et r a n s a c t i o na n dt h ec o n c u r r e n c yc o n t r o l m e c h a n i s mo fn x dd a t a b a s e a b s t r a c t a v a r i e t yo fi n f o r m a t i o np l a t f o r mb a s e do nn e t w o r kp l a ya l li m p o r t a n tr o l ei nd i f f e r e n t a r e a s ,a c c e s sa n de x c h a n g eo fi n f o r m a t i o nr e s o u r c e sn e e dt h ew a y o fd a t a b a s e ,a l o n g 埘t l lt h e d e v e l o p m e n to ft h en e t w o r k , x m ls h o w sg r e a tv i t a l i t y , al a r g en u m b e ro f d o c u m e n t sw e r e c o m p i l e d 嘶t l l x m l , a n d s o ,b e i n gx m ld a t a b a s e t h a tr e s t o r ea n dm a n a g et h e x m l - f o r m a t t e dd a t ap u ta nu n p r e c e d e n t e dc h a l l e n g eo nt r a d i t i o n a ld a t a b a s e sf i e l d a so n eo ft h em o s tb a s i cc o n c e p t si nt h ed e v e l o p m e n to fd a t a b a s e s ,t r a n s a c t i o nh a sb e e n w i d e l yu s e di nv a r i e t yo ft h ee c o m m e r c ea n dt h ee n t e r p r i s ei n f o r m a t i o np l a t f o r m c e r t a i n l y , x m ld a t a b a s em u s th a v eas o u n dm e c h a n i s mf o rt r a n s a c t i o np r o c e s s i n gt h a ti sa ne x t r e m e l y i m p o r t a n tt oc o n c u r r e n ta c c e s sf o rm u l t i u s e r t h es u i t a b l ew a yo fd e s i g nt ot h ec o n c u r r e n c y m e c h a n i s mi st r a n s f e r e n c ef r o mt h ex m ld o c u m e n tt ot h er e l a t i o n a ld a t a b a s ea c c o r d i n gt o t h er u l e sg e n e r a l l y , t h u s ,t h ec o n c u r r e n c yt r a n s a c t i o n so fx m ld a t ac a nb eg u a r a n t i e db yt h e r e l a t i v e l yp e r f e c tc o n c u r r e n c ym e c h a n i s m so fr e l a t i o n a ld a t a b a s e h o w e v e r , t h ef a c tw a s f o u n di np r a c t i c a la p p l i c a t i o n s ,t h a ti st h ew a ya b o v e - m e n t i o n e dc a n n o tt a k ee f f i c i e n c yo nt h e c o n c u r r e n c yc o n t r o lo fx m ld o c u m e n tt r u l y , b e c a u s eo ft h eg r e a td i f f e r e n c ee x i s ti nt h e g r a p h i cd a t ao fx m l d o c u m e n ta n dp l a n a r i t yo fd a t ao ft h et r a d i t i o n a ld a t a b a s e ,a n dw ed i d n t h i g h l i g h ti ti nd e t a i l se a r l i e r s t u d i e so nc o n c u r r e n c yc o n t r o lm e c h a n i s m so ft h en a t i v ex m l d a t a b a s eh a sj u s tb e g u n , t h i sp a p e ra i m sa tt h es o l u t i o no ft h i sq u e s t i o na n dg of u r t h e rm o r e e x p l o r a t i o na c t i v e l y t h i sp a p e ru s et h ee x p e r i e n c eo fm u l t i v e r s i o n i n gf o rr e f e r e n c e ,o f f e rat r a n s a c t i o n m a n a g e m e n tm o d e lo fx m l d a t a b a s e sb a s e do nt h ex p a t ha n dac o n t r o l l i n gm e c h a n i s mo f t h em u f t i - u s e r sc o n c u r r e n c yt r a n s a c t i o n f i r s to fa l l ,t od e f i n eas o r to fd a t a b a s en o d ec o d e b a s e do nd o c u m e n tt r e em o d e lw h i c hm a k et h eo p e r a t i o no fu p d a t ee n a b l e ,n e x t ,t h es e to f x m ld a t a b a s eo p e r a t i o ni sd e f i n e da c c o r d i n gt ot h ee n c o d e dd a t am o d e l e v e n t u a l l y , t h i s p a p e rp r o p o s eac o n c u r r e n c yc o n t r o lm e c h a n i s m sa n dl o c km o d e l ,a n dt h el i f t i n gm e t h o df o r t r a n s a c t i o nw h e nd e a d l o c ko c c u r r e d ,a l s ov e r i f yt h es e r i a ls c h e d u l i n go ft r a n s a c t i o ns c h e d u l e b a s e do nl o c kp r o t o c o l ,t h i sc o n c u r r e n c yc o n t r o lm e c h a n i s m sc a nb ea p p l i e dt ot h e m a n a g e m e n to fm u l t i t r a n s a c t i o n k e yw o r d s :x m l ,c o d e ,t r a n s a c t i o n ,c o n c u r r e n c yc o n t r o lm e c h a n i s m ,l o c kp r o t o c o l 西北大学学位论文知识产权声明书 本人完全了解西北大学关于收集、保存、使用学位论文的规定。学校 有权保留并向国家有关部门或机构送交论文的复印件和电子版。本人允许 论文被查阅和借阅。本人授权西北大学可以将本学位论文的全部或部分内 容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存 和汇编本学位论文。同时授权中国科学技术信息研究所等机构将本学位论 文收录到中国学位论文全文数据库或其它相关数据库。 保密论文待解密后适用本声明。 学位论文作者签名:乡乡 一l 年万月易厶日 艚教师签名:速缉 妒 年。只l f 日 西北大学学位论文独创性声明 本人声明:所呈交的学位论文是本人在导师指导下进行的研究工作及 取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,本 论文不包含其他人已经发表或撰写过的研究成果,也不包含为获得西北大 学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对 本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:呈丛 寸7 每6 乒、- 年l 西北大学硕士学位论文 1 1 研究背景 第一章绪论 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 ) 是指“标准通用标记语言”,它是国际 上定义电子文件结构和内容描述的标准,是一种非常复杂的文档的结构,主要用于大量 的高度结构化的数据,利于分类和索引,定义的功能很强大,缺点是它不适用于w e b 数 据描述。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 w w 的蓬勃发展,推动信息和知识的网上交流发挥了不可取 代的作用。由于它是专门为描述网页的表现形式而设计的,它疏于对信息语义及其内部 结构的描述,不能适应日益增多的信息检索要求和存档要求。对表现形式的描述能力实 际上也还是远远不够,它无法描述矢量图形,科技符号和一些其他的特殊显示结果。它 只有固定的标记集,而其松散的语法要求使得文档结构混乱而缺乏条理,导致浏览器的 设计越来越复杂,降低了浏览的时间效率和空间效率。h t m l 缺少s g 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 ) 即可扩展标记语言对s g m l 进行了简化,汲取了 h t m l 简单的特性,在1 9 9 8 年2 月由国际标准化组织万维网联盟w 3 c ( w o r l dw i d e w 曲c o n s o r t i u m ) 推出,成为一种标记语言标准,广泛应用在i n t e r a c t 上来进行数据交换 和数据表示,也成为其事实上的标准。 x m l 的标记可以用来表示数据的语义,它的层次性结构方式可以用来表示数据实 体之间的复杂嵌套关系,不像h t m l 侧重于用来表现数据的显示方式,所以,x m l 既 适于表示结构化的规则化的数据,如关系和对象数据,也适于表示非结构化的数据,甚 至是离散的数据,如w e b 数据。x m l 具有将内容和形式相分离的优点,就有利于那些 采用x m l 格式数据的应用程序和w e b 服务可以迅速的以一种有效的、简单的格式提供 这些数据信息,程序与程序之间和服务于服务之间也可以很容易的进行交互;并且可以 通过使用x s l 等,对同一数据内容提供多种格式的表示形式。所以,可以说,x m l 架起 了一座各类数据之间进行交换的桥梁,是各类数据之间转换的中间表示形式,另一方面, x m l 不是采用一个标准的固定标记集,而是用户可以根据自身不同的需要去定义任何 多种标记来描述文档中的数据元素,这就给用户带来极大的方便。由于用户可以自定义 标记,并且x m l 的标记可以无限嵌套,使得x m l 可扩展性无比强大,无论是对结构 1 第一章绪论 化数据还是非结构化数据,几乎都可以清晰自然的表示出来。 各工商业、金融业等领域内的信息应用平台都可能与数据库相联系,只是数据库的 大小和功能要求不同,没有数据库的信息应用平台甚至是不可想象的。x m l 的应用不 可能例外,也必须要和数据库相联系,对x m l 数据进行高效的存储和管理。x m l 虽然 包含各种各样的被标记起来的数据,但它并不是数据库,从严格的意义上来说,x m l 仅仅是一个文本文档。但是当大量的数据使用x m l 来存储并进行管理时,再加上与存 储和管理相关的技术结合,就构成了一个数据库管理系统d b m s 。该d b m s 主要由以 下四个部分组成: ( 1 ) d t d 、x s c h e m a 描述了x m l 数据库的数据逻辑模型,对x m l 数据库数据的存 储、访问都要根据该逻辑模型进行; ( 2 ) x m l 文档相当于x m l 数据库的数据存储区,一个x m l 文档就是一个基本的存 储单元,在关系数据库中基本的存储单元是行; ( 3 ) x m l 中的x q u e r y 、x q l 、x p a t h 、x m l q l 、q u i t l 是相当于数据库的查询语 j _ 百; ( 4 ) d o m 、s a x 相当于数据库管理工具,实施对x m l 数据库的编辑、管理以及与 其它语言的编程接口功能。 近几年来,国内国际学术界的研究者开展了许多对x m l 数据库的研究工作,但大 部分的研究工作都集中在数据库的索引构建【1 ,2 ,3 1 、查询及其优化【4 ,5 ,6 7 ,羽、x m l 文档与关 系数据库之间的映射转换机制p ,1o 】等方面,在事务处理及并发控制机制方面的研究尚 不系统。 迄今为止,在事务的处理技术方面大部分沿袭了原有的传统数据库中的事务处理技 术,而原来的技术,基本上针对的是结构化的数据,对于含有非结构化数据较多的x m l 格式的文档,它的处理性能就相对较弱。面对着越来越多的x m l 文档的出现,尤其是 对x m l 原生数据库n x d 的处理需求,原有的事务处理技术显得力不从心,必然需要 新的、功能更强大的事务处理技术,必须对原事务技术进行深化或变革。这些研究工作 就需要研究n a t i v ex m l 非结构化数据库本身的结构特点,在封锁粒度、封锁机制方面 结合x m l 文档的特点,开发出适于x m l 数据库的事务处理技术,从而加快处理非结 构化数据的速度,提高事务处理的效率以及多用户访问时的并发程度。 2 西北大学硕:上学位论文 1 2 研究x m l 数据库多事务并发的必要性 随着计算机及网络技术的飞速发展,x m l 广泛应用的趋势不可逆转,可预见的是, 必然越来越多的信息资源采用x m l 格式进行存储与分发,不符合x m l 规范的文档, 必然要先转化为x m l 格式文档后,或者以x m l 格式作为中间转化形式,才交给应用 程序进行处理。这样的应用场景就如同w e b 是一个巨大的x m l 数据库,在w e b 上处理 数据就相当于在一个巨大的x m l 数据库进行数据处理,如何对大量的x m l 数据进行 有效的管理和检索,这是传统的数据管理技术所不曾遇到的问题,给数据库的处理技术 带来了巨大挑战,同时也为x m l 数据库相关的技术研究提供了良好的机遇。 一个数据库管理系统,在实际应用中,其大量的基础数据资源不可能是单一用户进 行访问和管理,所以,数据库必然是处在一个多用户共享的工作环境中,保障多用户对 数据库的共享访问是极其重要的。共享访问的含义是指多个用户同时访问某一个或某一 段数据,有些数据是相互独立的,没有什么关联关系,访问这些数据相对就比较简单, 不会产生什么问题,但是对于有些数据,它们之间有关联关系,多用户访问同一个或具 有这样关系的数据就可能会产生相互干扰的问题:访问同一个数据,如果都是读取,没 有干扰,如果有的用户是读取操作,有的是修改、删除操作,显然会产生干扰,多用户 访问关联数据类似于访问同一个数据情况,有的用户访问就可能被迫等待或者取消,按 照什么样的规则等待或取消,保持数据的完整性和一致性,就需要一个控制机制来解决。 为了满足这一控制需求,事务和并发控制机制随之出现。简单的来讲,事务处理的任务 就是在数据库系统的数据资源共享环境下,确保多个用户能够正确的共享访问数据库资 源,使每个用户都感受不到其他用户的存在,似乎是在独享数据资源,不受其它用户的 影响,完成正常访问需求。 对数据库的访问操作是以事务为基本单位的,一个访问操作可能是一个事务,也可 能是多个事务。多用户访问操作对于数据库而言就是多事务并发,传统的事务并发控制 机制作用在关系数据库中已相当成熟,但是x m l 数据库与关系数据库截然不同,简单 的移植原事务并发机制并不适合于x m l 数据库,根据事务的概念,必须在x m l 数据 库管理中应用事务并发机制,它的研究日益重要起来。 1 3 研究现状 在x m l 数据库并发访问控制机制的问题上,种普遍的解决问题的思想是将x m l 文档映射到传统的关系数据库【1 2 , 1 3 , 1 4 】,利用传统关系数据库已经发展的相对完善的事务 3 第一章绪论 机制保证x m l 的多事务并发程度。在实际的应用中,这种思想在有些情况下很难真正 有效的实现多个用户对单个文档的并发访问控制。因为在映射时,按照相应的映射规则 需要把x m l 数据转化为关系数据库中的表,使用关系数据库作为x m l 文档的底层存 储模式,访问x m l 数据就是访问表中的数据,访问完成后再还原成x m l 格式的数据, 但在转化过程中,忽视了x m l 文档部分标记中的信息,转换时不仅要考虑x m l 数据 的存储、更新和检索,而且要考虑标记所具有的语义,其中的约束问题,常常造成部分 如c d a t a 或指令信息的丢失。每次访问,用户面对的是x m l 文档,将底层数据库表 中的数据必须每次都还原成x m l 格式的结果,这样在从关系数据库重构x m l 文档时, 结构可能会发生改变,如过多次重构,甚至原x m l 文档就面目全非了。在利用关系数 据库中的表来实现并发控制时,研究的结果也不甚理想:如文献【1 5 】中提出的边表机制, 封锁的粒度比较大,事务的并发度相对较低:封锁中要用到谓词锁,我们知道谓词锁机 制本身就是n p 难度问题,此外谓词锁的使用对于非结构化数据并发控制时太严格,因 而降低了事务访问并发程度。 还有一种解决问题的思想是不进行x m l 转换,直接访问操作x m l 文档数据,结 合数据自身的特点和封锁方式而提出的并发控制机制,可以分为以下几种: ( 1 ) 基于实例加锁的x m l 并发控制机制: 基于实例加锁的x m l 并发控制机制方法直接在数据实例上加锁,可分为两类,一 类是基于d o m 提出的加锁协议,另一类是基于x p a t h 提出的加锁协议。 基于d o m 提出的加锁协议包括:基于d o m 文档树的d o c 2 p l 、0 0 2 p l 、n 0 2 p l 和n o d e 2 p l 四种协议由s h e l m e r i l 6 a 7 1 等提出的,d o c 2 p l 协议的封锁粒度较大,在封 锁时对整个文档加锁。0 0 2 p l 、n 0 2 p l 和n o d e 2 p l 三种加锁协议的封锁粒度相对比较 小,可以在文档树的数据节点直接加锁,但是封锁规则未考虑x m l 数据语义特点和操 作所具有的特点,因此事务并发度并不理想。( 室) t a d o m 2 、t a d o m 3 系列加锁协议由 m p h a u s t e i n l l 8 , 1 9 , 2 0 1 等提出的,该加锁协议提出的封锁种类的数量比较多,t a d o m 2 提出 了8 种锁,t a d o m3 提出了2 0 种锁,有节点封锁和虚拟边封锁,虽然封锁粒度比较小, 可是因锁数量关系,锁维护的代价很大。 在文献 2 1 1 提出的基于x p a t h 加锁协议,它对写锁和读锁进行冲突检测,尽量提 高读写操作事务的并发程度,可以处理较为复杂的路径表达式,缺点是锁的相容性规则 比较复杂。 ( 2 ) 基于路径索引的x m l 并发控制: 4 西北大学硕士学位论文 这是通过对路径索引中的访问路径上的节点加锁来实现x m l 事务的隔离性。最早 的工作是g r a b s 等人在文献 1 5 】中提出的d g l o c k 协议,基于路径索引的x m l 并发控制 典型的也是d g l o c k 协议,它对事务要访问的数据节点本身不加任何锁,而是对对应的 访问路径索引中的节点加锁,但是当访问路径索引结构发生变化时的情况,该协议没有 相应的处理方法,对于数据的幻读和事务的可串行性也没有保证措施。 ( 3 ) 树加锁协议( t r e ep r o t o c 0 1 ) 1 2 2 1 : 这是s i l b e r s c h a t z 和k e d e m 提出的加锁协议,它是基于静态树结构数据而定义的。 树加锁协议是静态树协议,因为它假设了一个也是基于这个前提:包含在文档树的数据是 静态的,对树的操作中不考虑x m l 数据的插入、删除等引起树结构变化的操作。而我 们知道,对于数据库的操作,只允许数据的只读和修改,其应用范围很小,插入、删除 和数据节点移动等操作是不可避免的。所以,这种树协议是不能适应动态树需求的。文 献 2 3 】中提出的动态树加锁协议x d t p ( x m ld y n a m i ct r e ep r o t o c 0 1 ) 针对这种情况,将静 态加锁协议进行了扩展,使树加锁协议在更新操作改变树结构的情况下也可以使用,该 协议的优点是排除了死锁情况的发生,事务操作完全可串行化,但它的缺点是封锁类型 比较简单,仅考虑排它锁,有些并不会产生冲突的操作事务不能实现并发。 1 4 本文的组织与结构 本文共有七章,各章内容及组织如下: 第一章绪论部分,阐述了研究背景以及研究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 树型 5 第一章绪论 结构特点提出了一种x p l 锁协议模型和相应的锁协议规则:对于当事务间因申请对 数据的加锁而出现循环等待时发生的死锁现象,针对这种死锁的现象,分析了死锁 检测和死锁处理方法。 第六章仿真实验,设计试验的仿真条件,并模拟了动态前缀编码和并发访问控 制机制的在实际下的应用模式,进行了仿真实验,并对实验结果进行了分析。 第七章总结和展望,对本文的研究成果进行了总结,指出有待于进一步深入研 究的工作方向。 6 西北大学硕士学位论文 第二章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 数据库所涉及的基础知识和并发控制的理论作一综述。 2 1x m l 与数据库基础 x m l 是w 3 c 提出的标准。它是一种元标记语言,允许用户自定义标签及支持任意 嵌的复杂层次结构。它的数据表示能力非常强大且这种格式的数据易于在机器和应用程 序之间处理,在很短的时间内,x m l 的应用就遍及了工商业、教育、金融、军事等各 个领域。x m l 本身具有的与平台无关、易于扩展、交互性好和语义性强等特性,使得 x m l 已经成为数据交换的事实标准,也成为w e b 应用中数据的事实标准。x m l 在存储 时将各种文字、电子表格、数字、符号等数据以a s c i i 文本的方式保存,是纯文本的文 档,在数据上加上可识别的特殊标记,以供深层的数据处理。 最初设计x m l 的目的是一种应用于w e b 上表示数据和进行数据间交换的标记语 言,在以后的发展中它逐渐在数据库领域应用中也崭露头角。从数据库研究的角度看, x m l 数据是典型的非结构化数据( s e m i s t r u c t u r e dd a t a ) ,x m l 文档所具有的许多特性是 只有数据库才具备的特征: 它描述了数据模式。x m l 采用d t d 或x m ls c h e m a 来定义和描述数据的逻辑 结构。关系数据库通过二维表关系模式来描述数据的逻辑结构。 它采用文本数据存储模式。x m l 以纯文本文件系统为基础,而关系数据库以数 据库为手段提供数据存储。 它具有直接存取访问数据的专用语言。x m l 采用x p a t h 、x q u e r y 、x q l 等语 言作为直接操作访问x m l 的工具。关系数据库一般采用标准s q l 查询语言访 问数据。 7 第二章x m l 数据库与并发控制机制理论 它具有应用程序接口:x m l 采用d o m 或s a x 定义应用编程接口a p i ,这些接 口可以采用不同的计算机编程语言来实现,使不同语言编写的应用程序都能够、 通过a p i 访问和更新x m l 文档的内容、结构、样式;关系数据库也采用不同 的编程语言提供o d b c 、j d b c 、o l e d b 等接口。 2 1 1x m l 的标准体系 虽然x m l 标准本身简单,但与x m l 相关的标准却种类繁多,w 3 c 制定的相关 标准就有二十多个,采用x m l 制定的重要的电子商务标准就有十多个。在x m l 标准 体系中x m l 标准是整个体系的核心,其他x m l 相关标准都是用它制定的或为其服务 的。图l 表明了x m l 相关的主要规范。 图1x m l 相关的主要规范 2 1 1 1x m l 应用程序接口( d o m 、s a x ) d o m ( d o c u m e n to b j e c tm o d e l ,文档对象模型) 及s a x ( s i m p l ea p if o rx m l ,简单 x m l 应用程序接口) 由w 3 c 推荐并维护,用于读取和操作x m l 文件,是访问x m l 文 档的a p i ( 应用程序接口) ,是处理x m l 文档的两种方式,是跨平台、与语言无关的接 口规范。d o m 提供了在不同环境和应用中的标准程序接口,可以用任何语言实现。s a x 它并非一个标准组织的产品,它是许多开发者在早期x m l 开发过程中,为了寻求一种 有效的a p i 而制造出来的产品。 d o m 的工作方式是通过解析器读入整个文档,然后构建一个驻留内存的树结构, 应用程序就可以使用d o m 接口来操作这个树结构,对树进行遍历访问、删除子树、 移动、插入子树等。但是,因为d o m 方法必须读取整个文件并将数据存储在一个树结 构中,而这样可能是低效的、缓慢的,如果文档很大,就会要求有极大的内存。d o m 将 8 西北大学硕士学位论文 文档中每个元素、文本、属性和空格都创建成一个对象节点,如果在应用中只需要文档 的一小部分数据,那么创建过多的对象是极其浪费的。 s a x 相比于d o m 是读取和操作x m l 数据的更快速、更轻量的方法。s a x 的工 作方式是边读取文档边处理数据,不必等待整个文档被存储之后才采取操作,s a x 不 创建任何对象,它只是将事件传递给应用程序。作为一个基于事件的a p i ,适用于处理 数据流,即随着数据的流动而依次处理数据,不用在内存中构造树,占用资源较少,处 理速度快。但是,s a x 对数据的操作是只读的,既不允许用户更改原始文档中的数据。 2 1 1 2x l v l l 文档类型定义( d t d ) 与x m l 文档模式定义( s c h e m a ) d t d ( d o c u m e n tt y p ed e f i n i t i o n ) 文档类型定义,可以看成一个或者多个x m l 文件 的模板,它规定了可以在文档中存在的元素、那些元素具有什么样的属性、在元素内部 元素的层次结构以及元素在整个文档中出现的顺序。d t d 是x m l 文件的验证机制,以 d t d 文件为模板验证x m l 文档中的元素和标签使用是否正确,该文档是否符合规范。 并不是所有的x m l 文件都需要d t d ,对x m l 文件而言,如果有d t d ,文档称为有 效的( v m i d ) ,格式正确的x m l ( w e l l f o r m e d ) 就不需要有d t d 。d t d 由四个部分组 成:元素( e l e m e n t s ) 、属性( a t t r i b u t e ) 、实体( e n t i t i e s ) 、注释( c o m m e n t s ) 。 在网络中进行数据交换,交换的双方必须清楚数据交换的标准既交换的规则与数据 格式,只有双方都能彼此理解,才可以畅通无阻的交流。现实情况中,不同的应用程序, 不同的应用环境可能就要求不同的数据格式,x m l 之所以能成为数据交换的标准,就 是因为d t d 的存在。一旦定义好标准的d t d ,也就是说,定义好了各应用程序共同遵 循的标准模板,根据标准的d t d ,任何用户都可创建出满足网络共享和数据交互需要 的l 文件。 x m ls c h e m a 是2 0 0 1 年5 月正式发布的w 3 c 的推荐标准,是一个基于x m l 语法 的s c h e m a 规范,用来定义x m l 文档的标记方式,为一类文档建立了一个模式。s c h e m a 相比d t d 有很多优点,具有很强的描述能力和扩展能力,它完全使用x m l 作为描述手 段,支持更多的值的类型例如数字型、布尔型、整型、日期时间、串、十进制数等。支 持用户自定义的数据类型,支持数据元素的继承等。 2 1 1 3x m l 可扩展语言( ) ( s l ) x s l ( e x t e n s i b l es t y l e s h e e tl a n g u a g e ,可扩展样式表语言) 是用于规定x m l 文 档样式的语言,就如同h t m l 中的c s s 的作用,它将x m l 数据以可读格式展现给用 9 第二章x m l 数据库与并发控制机制理论 户,规定了数据的显示方式。强大的功能在于根据相同的数据几乎可以产生无穷多的 样式,呈现在同一界面上。需要注意的是,x s l 不能代替c s s 用于h t m l ,但它适合 于需要频繁改变的样式的场合。 2 1 1 4x m l 查询语言( x p a t h 、x q u e r y ) x p a t h 是w 3 c 标准,是一种用来在x m l 文档中定位和查找信息的语言,它通过路 径表达式进行检索满足匹配要求的数据节点,结果一般都是节点集。x p a t h 除了具有定 位功能外,还包括一些函数,它们提供基本的数字运算、布尔运算和字符串处理功能。 x p a t h 语法规则和查询路径表达式: ( 1 ) 路径匹配方式。路径匹配与文件路径的表示相仿,主要有以下几种路径操作: 用“”开头表示该路径表达式是一个绝对路径,表明节点之间的前后继关系,如 a b c d 表示从节点“a 开始匹配路径,沿着a 、b 、c 、d 路径一步一步到目标节点 d ,“俄 表示根节点。 用“ 表示该路径表达式是一个相对路径,路径可能从任何一个位置开始,如 “a ,表示所有在x m l 文件中出现的a 元素。比如“a d 表示以“a 节点开始的 后面路径中存在的所有的d 元素。 用“表示匹配任意数据节点的通配符,如“a b * ,表示以“a 为起始节点 沿着路径匹配节点“b 的所有子元素。 ( 2 ) 位置匹配方式。它是通过根据子元素的位置信息来定位目标节点。 如“a b c 1 ,表示从节点“a 开始沿着路径a b c 定位到c 第一个子元素; “a b c 1 a s t l 】”表示从节点“a 开始沿着路径a b c 定位到c 最后一个子元 素: “a b c p o s i t i o n 0 l 】,表示从节点“a 开始沿着路径a b c 定位到c 的位置 号大于l 的子元素。 ( 3 ) 属性及属性值匹配方式。在x p a t h 中,属性及属性值也可以用来匹配元素,属性 的表示方式是属性名+ “ 。 例如,“a n a m e 表示在文档中任意位置所有具有属性n r m e 的a 节点。再如 “a n a l n e = j o h n 】 表示在文档中任意位置所有具有属性n a m e 的值为“j o h n 的 a 节点。 ( 4 ) 关系匹配方式。x m l 文档树中节点之间都具有相互关系如父子关系、祖先后裔 1 0 西北大学硕士学位论文 关系、兄弟关系等。在对节点进行匹配定位时,结合编码方式,也可以利用上述关系进 行匹配。 x q u e r y 是由w 3 c 组织制定的标准。它的核心是x p a t h ,是用来从x m l 文档查找和 提取元素及属性的语言。在x m l 中它的作用就相当于关系数据库中的s q l 语言。虽然 设计x q u e r y 是用来处理x m l 文档的,但是并不局限于此,它可以被用来查询任何x m l 格式的数据,比如x m l 数据库等。x q u e r y 的功能较x p a t h 强大的多,被当前主流的大 型数据库如o r a c l e 等支持。实际上,x q u e r y 是建立在x p a t h 和x s l t 的基础之上, 但是x p a t h 和x s l t 只能用于x m l 文件。x p a t h 的功能在于对数据的选择,x s l t 的功能在于对数据进行转换,这两种技术仍需要一种有效的方式来选择、连接并将数据 转化成需要的形式。x q u e r y 能够满足应用程序的数据需求,它可以访问多个数据源、 选择所需要的信息和连接数据,这种技术同样可以扩展到非x m l 数据,例如表单、网 页和其他结构松散的数据。x q u e r y 中最强大的新特性是f l w r ( f o r - l e t w h e r e r e t u r n ) 表达式,f l w r 子句都允许嵌套,这使得x q u e r y 在数据访问中可以完成很多看起来不 可能完成的任务。 2 1 2x m l 数据库基础 x m l 数据库领域内权威的研究者及顾问r o n a l db o u r r e t 在文献【2 4 】中将x m l 数据 管理产品分为9 大类:支持x m l 的数据库( x m le n a b l ed a t a b a s e ,简称x e d ) 、x m l 原生数据库( ( n a t i v ex m ld a t a b a s e ,简称n x d ) 、x m l 查询处理引擎、中间件、x m l 服务器、i d e 和编辑器、包装器、x m l 数据绑定、内容管理系统等,其中x e d 、n x d 和x m l 查询处理引擎这三种产品与数据库技术密切相关,通常认为x m l 数据库分为两 个大类:x e d 与n x d 。 x m l 数据库显然是用来管理x m l 格式数据的,对用户来说,存储和读取的都应该 是x m l 文档,至于物理存储模式采用什么方法来实现,用户并不关心。x e d 实现方式 是将x m l 文档数据存储在关系数据库中,将用户对x m l 文档的访问转化为对底层关 系数据库的访问,将访问结果从数据库中取出,重新构成x m l 文档呈现给用户。x e d 主要的技术是怎样合理高效的使用底层数据库存储x m l 文档,研究者为此制定了不同 的数据到关系表之间的映射策略,映射的规则是根据d t d 和x m l 数据量的大小或者用 户自定义一个相当于数据视图的映射文件来确定关系表的逻辑模式,一个x m l 文档可 能影射为关系表中的一行数据,也可能映射成一个关系表,节点间的关系通过二维关系 第二章x m l 数据库与并发控制机制理论 来表示,由于二维关系过于简单,在映射层次较多的x m l 数据时难度较大,必须采用 复杂的关联关系表。在数据映射到关系表的过程中,x m l 文档的c d a t a 信息、指令信 息、部分属性信息不可避免的要丢失,在重构x m l 文档时就无法还原为原来的文档。 采用关系数据库存储x m l 文档主要是为了利用它成熟的并发控制机制来管理x m l 数 据。 n x d 之所以称为原生x m l 数据库,是因为它的物理存储的是x m l 文档,加上 相关的控制机制就构成原生x m l 数据库管理系统。n x d 的优点就是不用对x m l 文档 进行转换,直接对x m l 数据进行存取访问,保证了文档的完整性。还可以充分利用到 x m l 数据标记的语义信息,提高了数据的访问效率。n x d 的实现比较直观,易于理解 但是并不简单,因为关于n x d 的研究时间还很短,各项相关的控制和管理技术还不太 成熟,不同的企业或个人采用不同的实现方法,处在各自为战的状态,没有对关键的管 理技术和存储、索引等技术达成一致。 数据库最基本也是最重要的技术就是数据的查询访问技术,它是所有的操作的前 提。对数据添加索引是提高查询效率的有效途径,因此,在查询技术研究中,索引的方 法多种多样,有值索引、边索引和路径索引等,基于路径的索引比较符合x m l 数据处 理的方式,它在各项索引技术中尤其重要。 从以上内容可以看出,n x d 在应用前景上肯定优于x e d ,但是,n x d 遇到的问题 也比较多,诸多的数据库管理系统应具有的事务处理机制和并发访问控制机制并未成 熟,目前应用的n x d 产品访问数据时的封锁粒度是文档级,基本上不提供对事务处理 的支持。由于相关技术的缺乏,阻碍了n x d 在应用舞台上大展拳脚的机会。 2 2 传
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人力资源招聘会外包合同
- 南京门窗厂制作外包合同
- 地毯铺装施工专项方案
- 河道沟渠治理外包合同
- 物业公司整改情况报告
- 营销业务服务外包合同
- 门窗安装施工方案范本
- 2026年全媒体运营师直播互动用户画像应用专题试卷及解析
- 标签相关法律法规(GB-7718、GB-28050)培训试题及答案
- 临床执业医师技能答案#临床执业医师试题(附答案)
- 电气设备售后服务标准范文
- 2026金属冶炼(炼钢)安全员考试题库(含答案)
- 宁波市奉化区法院书记员招聘笔试真题2025
- 2026年朝阳市重点中学初三下学期模拟(二)测试化学试题含解析
- 2025年兰州市教师事业编考试及答案
- 眉山市东坡区社区网格员招录考试真题库及完整答案
- 全面贯彻2026年经济工作的总体要求和政策取向课件
- 内痔硬化剂注射治疗的护理个案
- 2026年中考语文一轮复习:阅读理解万能答题模板
- 2026年江苏信息职业技术学院单招综合素质考试题库及参考答案详解1套
- GB/T 10412-2025带传动普通和窄V带轮(基准宽度制)
评论
0/150
提交评论