(计算机科学与技术专业论文)基于xml数据库的发票数据质量预警监测系统研究.pdf_第1页
(计算机科学与技术专业论文)基于xml数据库的发票数据质量预警监测系统研究.pdf_第2页
(计算机科学与技术专业论文)基于xml数据库的发票数据质量预警监测系统研究.pdf_第3页
(计算机科学与技术专业论文)基于xml数据库的发票数据质量预警监测系统研究.pdf_第4页
(计算机科学与技术专业论文)基于xml数据库的发票数据质量预警监测系统研究.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机科学与技术专业论文)基于xml数据库的发票数据质量预警监测系统研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 近年来随着w e b 应用的迅速发展,x m l ( 可扩展标记语言) 的应用日趋广泛, 并逐渐成为数据交换领域事实上的标准。在税务应用软件中,出现不少应用软 件涉及到x m l 数据库的应用,为解决x m l 文档数量迅速增加所带来的管理难题, 实现x m l 文档的高效存储和查询,许多学者将数据库技术引入x m l 文档的管理, 着手x b t l 数据库技术的研究。 x m l 数据库技术的研究大致可以分为两个方向:x m l e n a b l e d 数据库技术和 n a t i v ex m l 数据库技术;x m l e n a b l e d 数据库技术是在现有关系数据库基础上, 通过将x m l 文档的树形模型映射为关系模型来实现x m l 文档的存储。这种方式 充分利用现有关系数据库成熟、稳定的优点,将x m l 文档以关系表的形式存储 在关系数据库中,各种x m l 查询操作则通过转换为相应的s q l 查询语句来完成。 n a t i v ex m l 数据库技术则是基于x m l 文档树形模型,物理模型与逻辑模型保持 致,同时该技术提供对各种x m 。查询语言的直接支持。由于这种技术无须进 行逻辑模型和物理模型问的转换,因而逐渐成为x m l 数据库技术的主流。 本课题主要研究了n a t i v ex m l 数据库技术的相关知t ,对于x m l 的存储方 法,索引管理和查询处理机制等进彳j 二了研究,为应用基于x m l 数据库的资源进 行开发利用打下基础。“通用税务数据采集系统”是一个基于x m l 数据库开发的 采集、汇总软件,在此通过对x m l 数据库的研究,以基于x m l 数据库资源开发 四票数据质量预警监测系统为例进行软件设计和开发。 关键词:可扩展枵1 庀语言,数据库,税务数据,预警监测 a b s t r a c t d r i v e nb yt h ef a s tg r o w i n gd e m a n df o rw e b b a s e da p p l i c a t i o n s ,x m l ( e x t e n s i b l e m a r k u pl a n g u a g e ) s t a r t st ob ew i d e l ya c c e p t e da n db e c o m i n g t h ed ef a c t os t a n d a r di n t h ea r e ao fd a t ae x c h a n g e a n di no r d e rt os o l v et h ei s s u eo fm a n a g i n g e v e ri n c r e a s i n g x m ld o c u m e n t s ,m a n yr e s e a r c h e r sa r el o o k i n gi n t oa p p l y i n gd a t a b a s et e c h n o l o g yt o m a n a g et h el a r g en u m b e ro fx m ld o c u m e n t s , q u e r i e sa n de f f i c i e n ts t o r a g eu t i l i z a t i o n x m l a t t e n t i o n si nt a xa p p l i c a t i o ns o f t w a r et o o i nh o p eo fg e t t i n gt h eb e n e f i to ff a s t d a t a b a s e sa r eg e t t i n gm o r ea n dm o r e t h e r ea r et w om a j o rc l a s s e si nt e r m o fx m l d a t a b a s e s :x m l e n a b l e da n d n a t i v ex m l b a s e do ne x i s t i n gr e l a t i o n a ld a t a b a s e ,a nx m l e n a b l e dd a t a b a s em a p s a 1 1x m ls t m c t u r e st oi t si n t e r n a ld a t af o r m a t sa n ds a v e sx m l d o c u m e n t sa c c o r d i n g t ot h er e l a t i o n a ls c h e m ai nt h ed a t a b a s e a l lx m lq u e r yo p e r a t i o n sa r e t r a n s l a t e di n t o c o r r e s p o n d i n gs q lq u e r i e s t h i sa p p r o a c ht a k e sa d v a n t a g eo fe x i s t i n g r e l a t i o n a l d a t a b a s et e c h n o l o g yw h i c hn od o u b ti sm o r em a t u r ea n ds t a b l e an a t i v ex m l da _ t a b a s e 。o nt h eo t h e rh a n d ,m a p sd i r e c t l yo n t ot h eh i e r a r c h i c a lf o r m a to fx m l i t p r o v i d e sd i r e c ts u p p o r tf o rx m lq u e r yl a n g u a g e s l o g i c a lm o d e l s a n dp h y s i c a l s t m c t u r e sa 1 ec o n s i s t e n t ,a n dn oe x t r ac o n v e r s i o ni sr e q u i r e d t h i sa p p r o a c hi sm o r e p o p u l a ra n do n i t sw a yt ob e c o m i n gam a i n s t r e a mt e c h n o l o g y t h i st h e s i ss t u d i e dt h ei n t e r n a l so fn a t i v ex m ld a t a b a s e ,c o v e r i n gd a t as t o r a g e , i n d e x i n gm a n a g e m e n ta n dq u e r ym e c h a n i s m ,e t c t h o s er e s e a r c h e sa r en e c e s s a r y l i a r 内【n h e ru t i l i z a t i o no fx m ld a t a b a s e s ”g e n e r a lt a xd a t ac o l l e c t i o ns y s t e m ”i sa d a t a c o l l e c t i n ga n dp r o c e s s i n gs o f t w a r es y s t e mu s i n ga b o v ex m l d a t a b a s et e c h n o l o g y a s p a r to ft h es y s t e r n ,id e s i g n e da n di m p l e m e n t e d ”4 - i n v o i c eb a s e dd a t aq u a l i t y m o n i t o r i n ga n dw a r n i n gs y s t e m ”o nt o p o fi t sx m ld a t a b a s e k e y w o r d :x m l ,d a t a b a s e ,t a xd a t a ,m o n i t o r i n ga n dw a r n i n g 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:赢勃潞 州。孑年f 月叩日 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名: 年月日 学位论文作者签名:细够 伽诉1 月7 日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承j :旦。 签名:赢铂鸠 冲匹年月7 日 第1 章弓i 吉 1 1 研究背景与研究现状 1 1 1 研究背景 第1 章引言 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 9 9 8 年发布以 来,随着i n t e r n e t 和信息技术的高速发展,x m l 已经成为i n t e r n e t 上信息交换 和表示的重要标准,y a t l 数据的数量正在呈指数级增长 2 1 。x m l 具有开放性、 灵活性及甲台无关性的特点。现在,越来越多的应用程序使用x m l 文档进行彼 此间的数据交换。x m l 技术应用也越来越广,如在2 0 0 6 2 0 0 7 年,中国一希腊政 府间科技合作项目就有由中方负责的“基于c o n t e x t 的x m l 数据管理研究” 2 项目。 早期的x m l 文档以文件方式存储,通过关键字查询等检索手段查询,简单 易用。但是该方式缺乏系统的存储和查询机制的支持,查询效率低下,不能满 足复杂条件的查询,更没有杏询优化机制。目前大部分商业数据库增加了处理 x m l 数据的功能,利用现有数据库的成熟技术,将x m l 查询转变为数据库查询, 然后由查询引擎优化后执行,最后将查询结果转变为x m l 数掘。这种方式在一 定程度上解决了复杂查询的要求,但是多级转换带来的问题是效率的降低和查 询语义的混淆。 n a t i v ex m l 数据库是专门存储x m l 文档的数据库管理系统,系统以自然方 式处理x m l ,同时兼有一般数据库的特性,盎u 支持事务管理、安全、多用户访问、 编程a p i 和查询语言等。n a ti r ex m l 数据库与其它x m l 数据库的根本区别在于 其内部模型是基于x m l 的,而不是其他的模型一如关系模型。与在关系数据库 基础上增加x m l 处理功能的方式相比,n a t iv ex m l 数据库避免了因数据模型的 转化而带来的信息丢失和性能下降,因而逐渐成为当前数据库研究领域的一个 新的热点。 1 。1 2 研究现状 6 第1 章0 l 青 x m l 数据库技术的研究始于二十世纪九十年代未期。由于w e b 应用的迅速发 展,x m l 的应用r 趋广泛,并逐渐成为数据交换领域事实上的标准。为解决x m l 文档数量迅速增加所带来的管理难题,实现x m l 文档的高效存储和查询,国外 学者将数据库技术引入x m l 文档的管理,着手x m l 数据库技术的研究。 x m l 数据库技术的研究大致可以分为两个方向:x m l e n a b l e d 数据库技术和 n a t i v ex m l 数据库技术。x m l - e n a b l e d 数据库技术是在现有关系数据库基础上, 通过将x m l 文档的树形模型映射为关系模型来实现x m l 文档的存储。这种方式 充分利用现有关系数据库成熟、稳定的优点,将x m l 文档以关系表的形式存储 在关系数据库中,各种x m l 查询操作则通过转换为相应的s o l 查询语句来完成。 但这种方式存在先天不足:x m l 文档基于树形结构逻辑模型,与物理存储时采用 的关系模型完全不同。由于x m l 文档结构复杂,部分节点信息无法映射到数据 库中,导致部分信息的丢失。同时在存取过程中需要不断进行树型模型与关系 e - r 模型间的转换,因此系统的存储及查询效率不高。n a t i v ex m l 数据库技术 则是基于x m l 文档树形模型,物理模型与逻辑模型保持一致,同时该技术提供 对各种x m l 查询语言的直接支持。由于这种技术在进行x m l 文档存储时无须进 行逻辑模型和物理模型间的转换,又能够很快的适应和实现新的x m l 标准,因 而逐渐成为x m l 数据库技术的主流。 国外对于上述两类x m l 数据库技术的研究均取得了一定的成果,并出现了 一批相对独立的系统。例如:x m l - e n a b l e d 数据库系统有:e d g e 3 、m o n e t 4 、 x r e l 5 及x p a r e n t 6 等。n a t i v ex m l 数据库系统有:k w e e l t h l 、x h iv e m l 、 x i n d i c e 阳3 等。传统的数据库产品如s q ls e r v e r 、o r a c l e 、d b 2 都各自在原有产 品的基础上增加了x m l 处理模块,属于x m l e n a b l e d 数据库的范畴,这些数据 库的传统j n 一商已开始着手研制自己的n a t i v ex m l 产品。 目前大部分的n a t i v ex m l 数据库系统均通过设计专有格式的文件来存储 x m i 。文档,并在此基础上实现索引和查询操作。虽然各系统使用的存储方法、索 引结构、查询处理方法各不相同,但普遍采用将x m l 文档作为一条记录进行存 储的方法以及导航的查询遍历方式,存在诸多缺点。以导航的查询遍历方式为 例,这种方式根据查询路径对x m l 文档进行循环的、嵌套式的数据搜索,在处 理较小数据集时的效率是很好的,但是随着数据量的增大,效率将急剧下降, 例如:x i n d i c e 建议使用时处理的x m l 文档大小不要超过5 m b 。总之,现有的 n a t i v ex m l 数据库系统还需要在存储方法和查询处理方式上加以改进,以提供 7 第1 章f j | 占 高效的插入、删除操作处理及次一集合的查询处理能力。 1 2x m l 及相关技术 1 2 1x 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 ) 的简称,是出w 3 c 于19 9 8 年创建的规范。x m l 定义了结构化表达数据的标准格式,它尾一种元语 言,可以定义各种不同的标记来满足不同领域应用的需要。在数据的表现方面, x m l 提供了充分的扩展能力,允许使用嵌套元素来表达复杂结构,实现了数据内 容与表现的分离。) ( m l 是一种与平台无关的语言,可以方便地作为异种数据源之 问数据交换的巾介。此外,x m l 还支持数据的机构化处理,用户可根据各自不同 的需求来进行不同的处理,提高了数据的本地处理与表现能力。一个简单的x m l 例子c l a s s x m l 见图1 1 。 幽1 1c l a s s x m l ) ( m l 是从标准通用标识语言s g m l ( s t a n d a r dg e n e r a l iz e dm a r k u pl a n g u a g e ) 派生而柬的,保留了s g i l 大部分的功能,但复杂程度大大降低。与h t m i ,相比, x m 有着很大的灵活性和伸缩性,它允许信息提供者根据需要,自行定义标记及 属性名,从而使x m l 文件的结构可以复杂到任意程度,突破了h t m l 固定标识集 合的约束。 良好的数据存储格式、可扩展性、高度结构化、便于网络传输是) ( m i 。的四 大特点。由于x m i 。能针对特定的应用定义自己的标记语言,使得x m l 在数据交 换领域得到广泛应用,成为这一领域事实上的标准。 8 第1 章引言 x m i 。技术主要有文档定义( d t d x m ls c h e m a ) 、d o m 、s a x 、x p a t h 1 0 、 x o u e r y 1 1 。x m ls c h e m a 规定了x m l 文件的逻辑结构,定义了x m l 文件中的元 素、元素的属性以及元素和元素属性之间的关系,它可以帮助x m l 的分析程序 校验x m l 文档中标记的合法性;d o m 是一种基于对象的、与平台和语言无关的接 口规范,用于动态访问和更新x m l 文档的内容、结构。s a x 是一种基于事件的 接口规范,功能与d o i v l 类似。x p a t h 是一种路径定位语言,用于对x m l 文档中的 各部分进行定位。x q u e r y 是一种x m l 查询语言,它基于各种查询表达式对x m l 文档进行查询处理,x q u e r y 极有可能成为未来x m l 查询语言的标准。 1 2 2x m l 文档类型 在实际应用中,根据x m l 文档中包含信息侧重点的不同,可以将x m l 文档 分为两类:以数据为中心( d a t a c e n t r i c ) 的x m l 文档和以文档为中心 ( d o c u m e n t c e n t r ic ) 的x m l 文档。 以数据为中心的x m l 文档侧重于文档中的数据,而非文档格式,如股市行 情、航班信息、销售定单、科学计算结果等。这种文档主要用于传统数据库中 数据的文档表示、两者间的相互转换、以及不同数据源的数据集成和信息交换, 主要应用于电子商务、e r p 、e a i 等领域。此类文档的特点是:结构规整、数据 粒度适中、很少或没有混和内容( m i x e dc o n t e n t ) 、文档中同级元素间的顺序并 不重要。 以文档为中心的x m l 文档侧重于文档格式,这种文档一般是手工写成的, 如h t m l 、x s l t ,或从其他格式( 如r t f ,p d f ,s g m l ) 转换到x m l 。与以数据为 中心的文档不同,这种文档的结构复杂,w e b 上的大部分数据都可以表示成这 种文档。此类文档的特点是:半结构化或非结构化的数据、较多的混和内容 ( m i x e dc o n t e n t ) 、文档中同级元素间的顺序非常重要。 不同的文档类型对于选择哪一种x m l 数据库系统有着直接的影响。对于以 数据为中心的x m l 文档,由于它结构规整,可以很容易的将其文档模式 ( d t d f l s c h e m a ) 映射到关系数据库模式,因此适合使用x m l e n a b le d 数据库存储。 对于以文档为中心的x m l 文档,在其文档模式( d t d s c h e m a ) 与关系数据库模式 之间建立映射是十分困难的,应使用n a t i v ex m l 数据库存储。n a t i v ex m l 数据 库也同样能够存储以数据为中心的x m l 文档。关于x m l e n a b l e d 数据库与n a t i v e 9 第l 章引青 x m l 数据库的介绍参见第二章。 1 2 3x m l 文档顺序 文档顺序是xm i j 数据模型的一个重要特征。对于一个给定的x m l 文档,按 照从上到下、从左到右遍历各个元素节点,即可得到该x m l 文档的文档顺序。 例如c l a s s x m l 中各节点的文档顺序如图1 2 所示。 图1 2c l a s s x m l 各节点文档顺序 文档顺序符合对元素节点的按先根次序、从左到右的树型结构遍历算法。 逆文档序是对应文档顺序的逆序。 1 2 4x m l 文档模式定义( x ld t d s c h e m a ) x m l 文档模式定义对x m l 文档的结构、内容进行描述和定义,通过 d t d s c h e m a 可以获得x m l 的结构信息,很多x m l 数据库利用这些结构信息来存 储x m l 文档。例如很多基于r d b m s 的x m l 数据库利用d t d s c h e m a 建立数据表结 构。本文讨论的n a t i v ex m l 数据库技术无须d t d s c h e m a 的支持即可存储x m l 文档,只要该文档的格式是有效的。 x m ls c h e m a 是组为了描述一类给定的x m l 文档而预先定好的规则。它定 义了可以在指定x m 文档中出现的各个元素以及和某个元素相关的若干属性。 它同时还定义了关于x m l 文档结构化信息,比如哪几个元素是其他元素的子元 素,子元素出现的顺序和他们的数量等,它还可以定义一个元素是否为空,能 否包含文本或者属性是否有默认值。 x m ls c h e m a 支持数据类型,用户能够自定义类型,扩展或p i 聪f j 类型,从已 1 0 第1 章引苦 有的类型中派生新的类型,由简单的类型生成复杂的类型。s c h e m a 同时支持命 名空问,一个x m l 文件可以有多个对应的s c h e m a 。x m ls c h e m a 本身也是一个x m l 文档,采用x m l 格式进行描述,因此x m l 文档与x m ls c h e m a 文档可以用相同的 解析器进行解析和处理。s c h e m a 的主要特点如下: 可以表达集合 能指定某一元素在文档中的唯一的文档关键字或在某一区域内的唯一性; 定义同名异义的不同元素 能定义窄内容的元素,能定义元素的子元素 具有强大、易用的扩展功能。x m ls c h e m a 内容模型是开放的,可以随意 扩充。 与d t d 相比,s c h e m a 的功能更强大,几乎能够对x m l 文档的每部分信息 进行约束,因此9 t d 已逐渐被s c h e m a 所取代。 1 2 5 文档对象模型( d o m ) 文档对象模型( d o m ) 是w 3 c 制定的一个与平台和语言无关的接口规范,用 于动态访问和更新x m i 文档的内容、结构以及样式。x m i ,的解析和处理方法可 以划分为两类:基于对象的方法和基于事件的方法。d o m 是基于对象的处理方法。 d o m 定义了一组表示x m l 文档的标准接口、一个用于组合x m l 文档中各种 对象的标准模型l , - 一组用于访问和操纵它们的标准方法。出于利用接口进行定 义,d o m 可以用包括p e r l 、c 、c h 、j a v a 和p y t h o n 在内的多种语言来实现。 d o m 规范包括三层,l e v e lo n e 、l e v e lt w o 和l e v e lt h r e e 。d o ml e v e lo n e 主要包括三部分内容: 1 ) 定义了表达和操作x m l 文档的接口和对象 2 ) 这些接口和对象的语法,包括其行为和属性 3 ) 这些接口和对象之间的关系与协同关系 d o m 将x m l 文档视为包含许多节点对象的树形结构,使用d o m 的编程接口可 以遍历和操作相应的节点。表1 1 、表1 2 分别列出了d o m 中主要的一些基本接 口和扩展接口。 表1 1d o m 中主要的基本接口 l 接口名称i 接口代表的x m l 对象l 第l 章0 占 n o d e x m l 文档中的任意一个节点,是d o m 中所有其他接口的基接口 d o c u m e n t整个x m l 文档 d o c u m e n t f r a g m e n t 文档的一部分 e 1 e m e n t元素节点 p r o c e s sin g i n s t r u c tio n处理指令节点 t e x t 文本节点 c h a r a c t e r d a t a 字符节点,文本节点继承自该接口 a t t r属性节点 c o m m e n t 注释节点 表i 2d o m 中主要的扩展接口 接口名称接口所代表的x m l 对象 c d a t a s e c tio n c d a t a 段节点 n o t a ti o n 引用节点 e n t i t y实体节点 e n tit y r e f e r e n c e 实体引用节点 p r o c e s s i n g i n s t r u c ti o n处理指令节点 c l a s s x m l 的d o m 对象树如图1 3 所示 1 2 第l 章引言 图1 3c l a s s x m l 的d o m 对象树 目前几乎所有的x m l 解析器都实现了9 0 m 接口,如x e r c e s 、x m l 4 j 等等。 1 3 本文工作 本课题在研究现有n a ti v ex m l 数据库的基础上,掌握x m l 数据库有关存储 方法,索引和查询技术,分析x m l 数据库资源,设计行之有效的方法,利用x m l 数据库资源进行软件开发。 1 4 本文安排 本论文的基本安排为: 第1 章:知识背景的介绍: 第2 章:首先介绍x m l 、x m l 文档顺序、x m l 文档类型的概念,然后介绍一 些与x m l 相关的技术。 第3 章介绍了基于访问频率的x m l 文档存储方法与索引管理,包括逻辑模 型、物理模型、基本原理及相关算法,并与已有的存储方法进行了测试比较, 最后给出存储参数的配置策略,介绍了一种利用节点编码建立索引的技术,给 出了节点的编码方法及编码的优化方法。 第1 章r j i 苦 第4 章介绍了在存储方法和索引管理的基础之上,实现x q u e r y 查询处理的 技术方案,包括语法分析、查询分解、结构连接等。 第5 章:从x m l 数据库资源的应用角度,来设计基于x m l 数据库资源开发 “四票”数据质量预警监测系统。 第6 章:根据第5 章的系统设计思想,对基于x m i 。数据库资源开发“四票” 数据质量预警瞌测系统的具体实现进行阐述。 第7 章:总结与展望。 1 4 第2 章x m l 数据库技术 第2 章x m l 数据库技术 x b l l 数据库技术分为两类:x m l e n a b l e d 数据库和n a t i v ex m l 数据库。 2 1x m l - e n a bie d 数据库技术 2 1 1 概述 x m i 。- e n a b l e d 数据库是在传统数据库基础上增加x m l 支持模块,实现x m l 文 档与数据库之问的数据转换和传输。该模块处于用户逻辑模块和数据库逻辑模 块之间,将传统数据库包装起来,给用户提供了一个透明的x m l 数据库。在将 x m l 文档存储到x m l e n a b l e d 数据库的过程中,必须将x m l 文档的模式( d t d 或 x m ls c h e m a ) 映射到数据库模式。同样,将数据从x m l e n a b l e d 数据库取出来 重新组合成x m l 文档时要完成相反的操作。转换的内容一般仅包括x m l 文档的 元素、属性和文本三种要素。同时,为了支持w 3 c 的一些x m l 操作标准,如x p a t h , 部分x m l e n a b l e d 数据库产品提供一些新的原语( 如o r a c l e 9 i r 2 增加了一些数 据包来操作x m l 数据等) ,并优化了x m l 处理模块。当前流行的商用数据库产品 如s q ls e r v e r 、o r a c l e 、d b 2 都属于x m l e n a b l e d 数据库。 2 1 2x m l - e n a b i e d 数据库技术 x m l e n a b l e d 数据库技术是以关系数据库为基础,通过x m l 文档与关系数据 库之间的映射来实现x m l 文档的存储。x m l 与关系数据库之问的映射主要有两种 方式:基于结构的映射( 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 ) 。基于结构的映射方式是以d t d 为基础,根据d t d 中定义的x m 。逻辑结构,将x m l 逻辑结构映射为数据库结构,即根据x m l 文档 的结构建立关系数据库对应的表结构。这种映射方法适合存储大量的、符合某 种d t d 定义的x m l 文档,例如以数据为中心的x m l 文档,这类文档结构规整, 可以很容易的建立x m l 文档与表结构的对应关系。但是在实际应用中,x m l 文档 的格式千差万别,大量的x m l 文档以非规整结构的形式出现,如以文档为中心 第2 章x m l 数据库技术 的x m l 文档,对这类文档建立与之对应的关系数据库表结构是非常困难的。此 外,大部分有效的( w e l l - f o r m e d ) x m l 文档在存储前并不能知道其d t d 定义或 根本没有d t d 定义,这种类型的x m l 文档将无法直接映射为数据库结构,而需 要开发者手工编写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 文档的同 时,数据库结构保持不变。因此,大部分的x m l e n a b l e d 数据库都采用了基于 模型的映射方式。 基于模型的映射方式是以x m l 文档的树形模型为基础,将树形模型映射到 关系数据库。典型的基于模型的映射方式的x m l e n a b l e d 数据库产品有:e d g e 口1 、 m o n e t 4 、x r e l 5 及x p a r e n t 6 。下面以x p a r e n t 为例做一个简单介绍。x p a r e n t 的基本思想是利用每个结点只有一个父结点的特点,通过记录各结点的位置路 径以及父子结点对照表来存储x m l 文档。x p a r e n t 使用四个表来存储x m l 文档, 这四个表分别是l a b e l p a t h 表、d a t a p a t h 表、e l e m e n t 表、d a t a 表,各表结构 如下: l a b e l p a t h ( i d ,l e n ,p a t h ) d a t a p a t h ( p i d ,c i d ) e l e m e n t ( p a t h i d ,d i d ,o r d i n a l ) d a t a ( p a t h i d ,d i d ,o r d i n a l ,v a l u e ) l a b e l p a t h 表中记录的是x m l 文档中节点的各种位置路径,d a t a p a t h 表中 记录的是各节点的父节点。e l e m e n t 表中各节点对应的位置路径,d a t a 表中记 录的是x m l 文档中的所有数据值。 文档s a m p l e x m l 及其在x p a r e n t 中的表示如下: 1 6 第2 章x m l 数据库技术 m a r y 2 3 s h a n g h a i j o h n h u a s h a nn 0 1 2 l 21 f m i k e 2 2 b eijin g m a t h 图2 1s a m p l e x m l 表2 1l a b e i p a t h 表 p a t h i d p a t h e x p 1 c l a s s 2 c l a s s s t u d e n t 3 c l a s s s t u d e n t n a m e 4 c l a s s s t u d e n t a g e 5 c l a s s s t u d e n t h o m e 6c l a s s s t u d e n t h o m e s t r e e t 7 c l a s s s t u d e n t h o m e r o o m 8 c l a s s s t u d e n t t e a c h e r 9 c l a s s t e a c h e r 1 0c l a s s t e a c h e r i d 11 c l a s s t e a c h e r c o u r s e 1 7 第2 章x m l 数据库技术 表2 2d a t a 表 p a t b l dd j do r d i h a lv a u e 361 “m a r y ” 471“2 3 ” 58l “s h a n g h a i ” 39l “j o h n 61 51“h u a s h a n n o l 2 l ” 71 6l“2 1 f ” 31 1 l“m i k e ” 41 212 2 51 31“b e il i n g ” 81 7l“5 ” 1 01 81“5 ” l l1 41“m a t h ” 1 8 第2 章x m l 数据库技术 表2 3e 1 e m e n t 表表2 4d a t a p a t h 表 p a t l l i do r d i n a ld i d 11& l 2l2 223 2 3 4 915 3 l 6 4l7 5 18 3l9 5 11 0 3lll 4 11 2 5l1 3 1 11& 1 4 61& 1 5 7l1 6 8 l& 1 7 1 01& 1 8 2 1 3x m l - e n a b i e d 数据库技术的不足 p i dc i d 1& 2 & l3 14 15 26 27 2 8 3& 9 3& 1 0 & 4l1 41 2 4 1 3 51 4 1 0& l5 1 01 6 41 7 & 5& 1 8 x m l e n a b l e d 数据库是在传统数据库基础上发展而来,使用简单方便。但是, 使用x m l e n a b l e d 数据库存储x m l 文档存在几个问题: 由于x m l e n a b l e d 数据库注重的是数据而非格式,所以在将x m l 文档模 1 9 第2 章x m l 数据库技术 式映射到数据库模式的映射的过程中,x m l 文档的一部分物理结构( c d a t a 、实 体等) 和一部分逻辑结构( 处理指令、注释等) 都被忽略,因此这种转换会丢 失信息,也就是说,一个x m l 文档存到x m l e n a b l e d 数据库里后再读取出来, 获得的x m l 文档与原始文档并不完全相同。 x m l e n a b l e d 数据库仍然基于传统关系数据库的关系模型,而x m l 文档本 身的逻辑结构是基于树形结构模型的,因此在存储过程中需要不断地进行树型 模型与关系e r 模型间的转换,导致存储及查询效率不高。 在存储以文档为中心的x m l 文档时,由于以文档为中心的x m l 文档一般 都是半结构化或非结构化的,将其映射到关系数据库时,结果是要么出现大量 空值的字段,要么表的数量过多,浪费空间或效率低下。此外,以文档为中心 的x m l 文档保存时不允许丢失结构信息,因此x m l - e n a b l e d 数据库不适合存储 这一类x m l 文档。 各类应用中存在大量的有效的( w e ll f o r m e d ) 的x m l 文档,由于这些文 档根本没有对应的d t d 或x m l 模式( x m ls c h e m a ) ,将无法存入数据库中。 因此,x m l e n a b l e d 数据库适合结构化的x m l 文档管理,而不适合半结构化、 非结构化的x m l 文档管理,因而不能满足各种类型的x m l 文档的存储需要。 为了克服x m l e n a b l e d 数据库存在的弊端,一种专门用于存储x m l 文档的 数据库技术一n a t i v ex m l 数据库技术开始出现并迅速发展。 2 2n a tiv ex m l 数据库技术 n a t i v ex m l 数据库是专门对x m l 文档进行存储管理的数据库。该技术目前 还没有一个标准的定义。在 1 2 中,r o n a l db o u r r e t 对n a t i v ex m l 数据库进 行了定义,该定义包括三层含义: n a t i v ex m l 数据库为x m l 文档( 而不仅仅是文档中的数据) 定义了一个 逻辑模型,并根据该模型存取文档。模型中应至少包括元素、属性、p c d a t a 和 文件顺序。如x p a t h 数据模型、x m li n f o s e t 以及d o m 所用的模型和s a x 事件。 逻辑模型是n a t i v ex m l 数据库的核心。 n a tiv ex m l 数据库以x m l 文档作为基本( 逻辑) 存储单位,类似于关系数 据库以表中的行作为基本( 逻辑) 存储单位。 n a t i v ex m l 数据库对底层的物理存储模型模型没有特殊要求,可以建立 第2 章x m l 数据库技术 在关系型、层次型或面向对象的数据库之上,或者使用专用的存储格式,如索 引或压缩文件。 从上述定义不难发现,n a t i v ex m l 数据库与x m l - e n a b l e d 数据库不同之处 关键在于其逻辑存储模型是基于x m l 文档树形结构,而非关系模型。在底层的 物理存储实现方式上,n a t i v ex m l 数据库既可以使用专门的存储格式,也可以 使用关系数据库,但目前几乎所有的n a t i v ex m l 数据库都采用专门格式的文件 进行存储。 n a tiv ex m l 数据库将具备关系数据库所具有的一般技术特性,包括:文档 集合、查询机制、更新机制,事务、锁和并发控制、二次开发接口等。由于n a t i v e x m l 数据库技术远不如关系数据库技术成熟,很多技术特性还处于研究阶段。下 面简单介绍n a t i v ex m l 数据库技术的各种技术特性。 文档集合 大部分n a t jv ex m l 数据库都支持文档集合的概念,其作用类似于关系数据 库中的表,用于存储同一应用或结构相似的x m l 文档。例如你想在数据库中存 储销售订单,就可以定义一个销售订单的文档集合,这样对销售订单的查询就 限于这个集合内的x m l 文档。 查询语言 n a t i v ex m l 数据库提供对x m l 文档的各种查询操作,使用的查询方式包括 基于x p a t h 路径表达式的查询、专有的查询语言如x q l 口3 | 、x q u e r y 1 。考虑到 x q u e r y 可能成为未来x m l 查询语言的标准,将来大多数n a t i v ex m l 数据库都可 能支持w 3 c 的x q u e r y 。 更新与删除 n a t i v ex m l 数据库对x m l 文档的更新和删除方式有许多,如简单的替换或 删除现有文件、修改文档的部分节点内容等。未来大部分n a t i v ex m l 数据库将 支持基于x u p d a t e 的更新机制。 来回行程( r o u n d t r i p p i n g ) n a t i v ex m l 数据库有一个非常重要的特性一来回行程,即x m l 文档存入数 据库以后,读取时可以获得与原始文档一模一样的x m l 文档。这对于以文档为 中心的应用来说是非常重要的,因为一般被x m l e n a b l e d 数据库忽略的c d a t a 部分、实体应用、注释和处理指令是这些文档不可缺少的组成部分,比如法律、 医学等领域应用中的x m l 文档格式不允许随意篡改和变更。 2 l 第2 章x m l 数据库技术 事务、锁和并发 目前部分n a t i v ex m l 数据库支持事务处理。但是锁的粒度比较大,只支持 文档级的事务处理,因此对多用户并发性的支持比较差。未来的n a t i v ex m l 数据库将支持节点或记录一级的事务处理,并发处理能力也将会大大增强。 应用程序接v 1 ( a p i ) 几乎所有的n a

温馨提示

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

最新文档

评论

0/150

提交评论