(计算机软件与理论专业论文)智能主体通信语言和xmldb研究.pdf_第1页
(计算机软件与理论专业论文)智能主体通信语言和xmldb研究.pdf_第2页
(计算机软件与理论专业论文)智能主体通信语言和xmldb研究.pdf_第3页
(计算机软件与理论专业论文)智能主体通信语言和xmldb研究.pdf_第4页
(计算机软件与理论专业论文)智能主体通信语言和xmldb研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 可扩展标记语言( x m l ) 的出现和发展为信息社会带来了革命性的影响。 x m l 具有h t m l 所欠缺的良好的数据存储格式、可扩展性、高度结构化、便于网 络传输等许多优点,它在许多领域都有广阔的应用前景,特别是在数据交换和 w e b 应用方面。近年来,各类基于x i i l 的应用特别是电子商务和电子数据交换 ( e i ) i ) 发展非常迅速,大量的x m l 文档和数据已成为i n t e r n e t 信息的重要组 成部分,作为新兴的管理和处理x m l 数据的x m l 数据库( x m l d b ) 也得到了很大 发展。目前,关系数据库( r d b ) 在各类商业应用中处于主导地位,发挥着无可 替代的作用。研究x m l 数据库与关系数据库在网络环境下的共存与互操作,可 以有效保护现有资源,充分发挥各自在不同应用领域的优势,满足不断发展的 数据共享与交换的需要。 近年来,智能主体技术广泛应用在信息检索、分布计算等领域。随着x m l 逐渐成为数据交换的标准,发展基于x m l 的主体通信语言( a c l ) 已成为一个研 究热点。基于x m l 的通信原语或内容表示具有通用性好、扩展性好、表达能力 强等很多优点,研究基于x m l 的主体通信语言将有助于主体技术与w e b 技术的 融合,为主体技术应用于w e bs e r v i c e 奠定一定的基础。 本课题研究的主要内容是分布网络环境下x m l 数据库与关系数据库的互操 作性和整合,以及a c l 的x m l 表示和处理。论文的工作主要包括以下几个方 面: 使用知识发现中的d e s a 算法对r d b 进行数据分析,得出r d b 的数据组 织方案,反向构造出数据库的e e r 模型,通过e e r 模型把实体和关系 映射到x m l 方案中,建立x m l 数据模式和关系数据模式之间映射关 系。 通过实现x q l 和s q l 相互映射转换以及关系数据和x m l 数据的转换, 使用户可以使用一种查询语占( x q l 或s o l ) 同时查询x m l d b 和r d b , 并对其结果采用x m l 表示:使用x s l 在服务器端或用户端对查询产生 的x m l 进行格式转换和处理,使其可以适应不同的软硬件环境和用户 需要。 i 摘要 使用x m l 对a c l 进行表示和处理。根据a c l 的生成语法,定义相应的 d t d ;在通信过程中,主体根据d t d 生成和理解消息,并对消息进行合 法性检验;使用x m l 表达消息和消息的内容,使用r d f x m l 方案来解 决本体词汇的表示问题:传递由x m l 描述的a c l 消息。 在分布环境下通过智能主体问的协作实现x m l 数据库与关系数据库的 互操作。在互操作过程中,智能主体之间通过基于x m l 的a c l 互相传 递消息;通过实例对分布环境下两种异构数据库的互操作的模型进行 了分析。 在未来的i n t e r n e t 中,x m l 将扮演举足轻重的角色,基于x m l 的应用的开 发和普及将极大地推动w e b 技术、数据库技术和智能主体技术向前发展。 关键词:可扩展标记语言,x m l 数据库,x m l 查询语言,关系数据库,结构 化查询语言,智能主体,主体通信语言 a b s t r a c t 一_ _ _ _ - h 十一 a b s t ra c t t h ei n t r o d u c t i o na n dd e v e l o p m e n to fe x t e n s i b l em a r kl a n g u a g e ( x m l ) h a v eb r o u g h tar e v o l u t i o n a r yi n f u e n c et ot h ei ts o c i e t y a sc o m p a r e d w i t hh t m l ,x m lh a sm a n ya d v a n t a g e s ,s u c ha sag o o dd a t as t o r a g e f o r m a t ,h i g b l ys t r u c t u r a l i z e da r c h i t e c t u r e ,e a s yf o rn e t w o r k t r a n s m i s s i o n i th a saq u i t eb r i g h ta p p l i c a t i o np r o s p e c ti nm a n y f i e l d s ,e s p e c i a l l y i nd a t at r a n s f e ra n dw e ba p p l i c a t i o n i nr e c e n t y e a r s ,v a r i o u sx m l b a s e da p p l i c a t i o n sh a v eb e e nd e v e l o p in gv e r y r a p i d l y 。e s p e c i a l l ye c o m m e r c ea n de l e c t r o n i cd a t ai n t e r c h a n g e ( e d i ) a v e r yi a r g en u m b e ro fx m ld o c u m e n t sa n dd a t ah a sf o r m e da ni m p o r t a n t p a r to fi n t e r n e ti n f o r m a t i o n x m ld a t a b a s e ( x m l d b ) ,a sa ne m e r g i n g m e a s u r ef o rm a n a g i n ga n dh a n d l i n gx m ld a t a ,h a sm a d eg r e a tp r o g r e s s e s n o w r d bi s d o m i n a t i n go v e rd a t a b a s ea p p l i c a t i o ns y s t e m s ,x m l d bi s a p o s t r e l a t i o n a ld a t a b a s e ,s oi t i sv e r yi m p o r t a n tt os e a r c hf o ra s m u t i o nf o rt h ec o o p e r a t i o n t h es u b j e c to ft b i s p a p e r i st h e i n t e r o p e r a t i o na n dc o o r d i n a t i o nb e t w e e nr d ba n dx m l d bi n an e t w o r k e d e n v i r o n m e n t a g e n tt e c h n o l o g yi sb e e o m i n gm o r ep r e v a e n ta st h ea v a i l a b i l i t y o fn e t w o r ka c c e s s ,a n dt h ed e m a n df o rt h ee n d u s e so fa g e n t sb e c o m e g r e a t e r a g e n t sa r eg e n e r a l l yd e s i g n e dw i t has p e c i f i cp u r p o s ei n m i n d i fa g e n t sm u s t p e r f o r mm o r et a s k s w ec a ne i t h e ri n c r e a s et h e i r c o m p l e x i t y ( w h i c hi n c r e a s e st h ed e v e l o p m e n te f f o r t ) ,o rw ec a nm a k e t h e mw o r kc o o p e r a t i v e l y f o rc o o p e r a t i o nb e t w e e na g e n t s t os u c c e e d , e f f e c t i v ec o m m u n i c a t i o ni s r e q u i r e d a g e n tc o m m u n i c a t i o nl a n g u a g e ( a c t ,) i s d e s i g n e da st h eu n i v e r s a ll a n g u a g ef o rc o m m u n i c a t i o n sb e t w e e n a g e n t s ,a c li s t h eb a s i cf o r a g e n t sc o o p e r a t i o n a sx m l is b e c o m i n g t h en e ws t a n d a r do fd a t ae x c h a n g e ,t h en e e d sf o rx m lb a s e da c la r e i n e l e a s i n g it 1 t h et h e s i sh a sm a d eat h r o u g h o u ta n di n d e p t hd i s c h s s i o no f x m l i ) ba n da c l w ed e s c r i b eam e t h o do ft r a n s l a t i o nb e t w e e nx q la n d s q l ,r e l a t i o n a d a t aa n dx m ld a t a t h r o u g ht h et r a n s l a t i o n , u s e rc a nis s u ex q lo rs q lq u e r yt oa c c e s sx m l d ba n dr d b d e s p i t eo ft h ed if f e r e n c eb e t w e e nt h et w ok i n d sd a t a b a s eo n d a t ao r g a n i z a t i o n ,w ed e v e l o pag a t e w a yo nt h e t o po ft h e m , t h u sb o t ht h ex m l d ba n dr d bc a n c o o p e r a t ea n db ea c c e s s i b l e b yt h eu s e r st h r o u g ho n l yo n eq u e r yl a n g u a g e t h eq u e r y r e s u l t sa r ex m l ,w h i c hc a nb e r e o r g a n i z e do fr e f o r m a t t e d e a s i l y w et r yt ou s ex m lf o r r e p r e s e n t a t i o no fa c l a st h en e w s t a n d a r do fd a t ae x c h a n g e ,t h e r ea r em a n y a d v a n t a g e sf o rt h i s m e t h o d :e a s eo fu s e ,e x t e n s i b i l i t ya n dg e n e r a l a v a i l a b i l i t y w eu s et h ex m lb a s e da c lf o rc o m m u n i c a t i o n sb e t w e e n a g e n t s ,w h i c ha c c o m p l i s ht h ec o o p e r a t i o no fx m l d b sa n dr d b s i n ad is t r i b u t e dn e t w o r k k e y w o r d :x m l ,x m l d b ,x q l ,r d b ,s q l ,i n t e l l i g e n c ea g e n t ,a g e n tc o m m u n i c a t i o n l a n g u a g e ( a c l ) 第一章、绪论 第一章、绪论 随着i n t e r n e t 的迅猛发展,“信息爆炸”问题目益突出,即信息极大丰富 而知识相对匮乏。据发表在科学杂志1 9 9 9 年7 月的文章w e b 信息的可访 问性估计,全球目前的网页超过8 亿,有效数据超过9 t ,并且仍以每4 个月 翻一翻的速度增长。在这些数量庞大、良莠不齐的w e b 信息资源中,蕴含着具 有巨大潜在价值的知识。近年来,基于x m l 的信息的表示、处理、检索和交换 技术得到蓬勃发展,x m l 为 n t e r n e t 资源的有效利用和开发展现出了一个美好 的未来。 本论文的研究内容主要有两方面:一是x m l 数据库与关系数据库的互操 作,二是智能主体通信语言的x m l 表示和处理。论文的基本结构如下:第一章 介绍x m l 、x m l 数据库和关系数据库的特点及互操作的意义;第二章详细分析了 x m l 数据库、关系数据库和中间件的相关技术及数据的互操作方法;第三章介 绍了智能主体语言及其使用x m l 表示和处理的优点:第四章介绍了我们实现 x m l 数据库与关系数据库互操作的方法,并进行了分析。第五章是实际应用中 分布网络环境下的多主体协作以实现x m l 数据库与关系数据库互操作的模型分 析。最后是参考文献、作者简历和致谢。 1 1 x m l 的发展及其应用 w e b 是i n t e r n e t 最重要的组成部分,h t m l 则是构造w e b 的基础技术之 一。h t m l 是一种面向数据显示样式的标签语言,主要描述文档的标题、字体、 颜色等外观方面的属性。由于简单易用,h t m l 在i n t e r n e t 的各类应用中蓬勃 发展起来。但是, w e b 的发展以及由此带来的应用系统开发技术的变化使得 h t m l 不再能够满足要求,h t m l 的缺点主要表现为:h t m l 是静态的,可扩展能 力差,h t m l 只能描述数据的显示样式,数据的可重用性差,缺乏表达数据语义 的能力等等。鉴于以上原因,h t m l 已逐渐不适合于作为可伸缩的、功能强大的 信息系统的基础技术。 6 智能主体通信语言和x m l d b 研究 s g m l 是i s o ( 国际标准化组织) 在1 9 8 6 年推出的一个用来创建标记语言的 语吉标准,它源自i b m 开发的g m l ( g e n e r a l i z e dm a r k u pl a n g u a g e ) 。h t m l 就 是s g m l 的一个子集。s g m l 为出版业提供了一种将数据内容与显示分离的数据 表示方法,使得数据独立于机器平台和处理程序,s g m l 是一个严格而完整的系 统,包含大量复杂的语法和语义标准。其复杂性和开销使其难以直接应用到 i n te r n e t 上,所以它一直没有被广泛接受。i n t e r n e t 的发展迫切地需要一种新 的简洁高效的语言。 1 9 9 8 年2 月,w 3 c 发布了x m l l 0 标准。x m l 是一种描述型的标记语言,作 为s g m l 的子集,保留了s g m l 主要的实用功能( 特别是与w e b 信息发布有关 的功能) ,同时大大缩减了s g m l 的复杂性。几乎所有类型的数据都可以用 x m i 来描述。x m l 文档由标记和内容组成。x m l 中共有六种标记:元素 ( e 、1 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 e n t s ) ,处理指令( p r o c e s s i n gi n s t r u c t i o i l s ) 和c d a t a 段( c d a t a s e c t i o n s ) 。x m l 的数据的结构规则可以用一种语法( d t d 或s c h e m a ) 来定 义。 同8 g m l 类似,x m l 是一种元标记语言,使用者可根据需要创建新的标记, 这使得x m l 具有可扩展性。带标记的元素是x m l 文档的基本构造单位,这种元 素可以有若干个属性,并可以包含子元素。这些子元素可以是文本数据,也可 以是带标记的元素。下面就是一个x m l 文档的示例: 指令 s t a t e :元素;s t a t e i d :s t a t e 的属性 广州 广州:数据 8 0 0 0 0 0 0 & r e f e r e n c e : _ r e f e r e n c e :实体引用 厦门 n 锄e 是c i t y 的子元素 6 0 0 0 0 0 0 r e f e r e n c e : r e f ) 注释 图1 x m l 文档组成 第一章、绪论 x m l 保鼷了s g m l 8 0 的功能,并使复杂程度减低了2 0 。同完整的s g m l 相 比,x m l 简罄易学、易用并且易于实现。由于x m l 可以让信息提供者根据需 要,自行定义标记和属性,结构化地描述信息内容。从而使x m l 的文件结构可 以任意复杂,可以表示凡乎蹰有数据。x m l 其有良好韵数键存继袼式、霹扩震 性、藏凄结均化、便于阚络传输等许多优点 6 。 x m l 的优点馒其在许多领域有广阔的应用前景,特别是在数据交换和w e b 应用方面: l 、电子数据交换( e d i ,e l e c t r o n i cd a t ai n t e r c h a n g e ) 经常被用来在异 聿奄系统褥遴行数糕交羧潋支持事务处毽。班经豹标准耄予缺乏是够戆灵活蛙彝 可扩展性,使于导相关的应用开发难度较大。丽使用x m l ,程序能够理解在交换 数据中所表示的商务数据及概念,根据明确的商务规则来进行数据处理并给出 适当的响应。x m l 和e d i 系统的结合,给电子商务带来无限的机遇和活力; 2 、构遣一个智能主体( a g e n t ) 所谣牦的一令拂战怒如何理解接受羚的数 据。a g e n t 疲渡缝够智能氇熬释这些数攥,然瑟搏懑相应约反疲。翅渠缓用基 于x m l 的数据,a g e n t 就能很容易理解这些数据的含义及相关知识的关系。x m l 及相关技术的应用必将促进a g e n t 及移动a g e n t 技术的发展; 3 、x m l 可以用来描述软件设计中有关的设计元素,如对象模型甚至能描述 最终故计舞来的软件。这些鏊予x m l 静设计元素可淤借韵w e b 在开笈缍肉进行 交换,奁不嗣数开发王其之蝴交换。由i b m 、u n i s y s 及其它会搏技体提出的 x m i ( x m lm e t a d a t ai n t e r c h a n g e ) 就怒基于这样的目的,x m i 为存储和共享基 于对象的程序设计信息建立了一个标准,使合作应用开发可以在i n t e r n e t 上使 糟不同的建模工艇进行。另外,x m l 及相关技术使得软件的分发及爨新在w e b 更容易实现。m i c r o s o f t 及合露饮 半捷窭韵o s d ( o p e ns o f t w a r e d e s c r i p t i o n ) 璁是x m l 的一个应月,它定义了一个标记集用来描述敬转镪及其 与各种客户平台的依赖关系: 4 、随着x m l 技术的发展,x m l 文档将成为w e b 资源的重要组成部分,而基 于x m l 的文档资源会健w e b 搜索s l 擎更加智能化。x m l 的特往使得不问应厢的 数据甏良方便羹亟透行集成,它髓溺来搐述包含在不褥应翔孛豹数据,放w e b 页 3 智能主体通信语言和x m l d b 研究 面到数据库中的记录,w e b 应用的中间层服务程序可以方便地将这些用x m l 表 示的数据组合起来,直接传送给客户或提交其它服务程序进一步处理; 5 、基于x m l 的数据被传送到客户后,客户端应用可以对这些数据进行解析 和处理,来完成应用系统所需的功能。这些本地计算不需要与服务器的额外的 通信。这种对本地计算的支持有利于在服务器和客户之间合理分配计算的比 例; 6 、x m l 便于数据的多种显示。x m l 与h t m l 具有互补性,h t m l 描述数据的 外观,而x m l 描述数据本身。用x m l 定义的数据能以不同的外观显示。一旦这 些数据到达客户端,它们的显示方式可以由客户配置动态地确定。c s s 和x s l 提供了描述数据所需显示的语言机制; 7 、支持w e b 应用的互操作和集成。作为x m l 的早期应用之一,w i d l ( w e b i n t e r f a c ed e f i n i t i o nl a n g u a g e ) 是一个用来定义w e b 使用的资源或企业应用 的接口的语言标准。通过用w i i ) l 定义的接 ,w e b 应用之间可以自动存取w e b 资源及企业应用。 x m l 的发展和广泛应用必将有力地推动i n t e r n e t 更快更好地向前发展。 1 2x m l d b 与r d b 关系数据库( r o b ) 开始发展于7 0 年代,是目前数据库应用的主流。它建 立在关系模型的基础上,具有完备的理论基础、简洁的数据模型、透明的查询 语言和方便的操作方法等许多优点。关系模型由关系数据结构、关系操作集合 和关系完整性约束三部分组成。关系模型中的数据结构非常单一。实体及实体 间的联系都用关系表示,关系是笛卡儿积的有限子集,所以关系也是一个二维 表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加 以区分,必须对每列起一个名字,称为属性。关系的描述称为关系模式,关系 模式通常可以简记为:r ( u ) 或r ( a l ,a 2 ,a n ) 。其中r 为关系名, a 1 ,a 2 ,a n 为属性名。而域名及属性向域的映象常常直接说明为属性的类 型、长度。通过关系,我们可以灵活地表示和操纵数据,用户可以方便地用结 构化查询语言( s q l ) 来检索数据库中的数据。关系型数据库应用系统通常包含 4 第一章、绪论 下列组件:客户端应用程序( c l i e n t ) 、数据库服务器( s e r v e r ) 、数据库 ( d a t a b a s e ) 等。 面对各类x m l 数据的飞速增长,为了有效地管理和利用这些数据,使用数 据库对其进行存储和管理是必然的选择,这样就出现了许多专门存储、处理和 交换x m l 的数据库系统即x m l d b ,一个x m l d b 应该具有存储( x m l 文档) ,结构 ( x m ls c h e m a ) ,支持x m l 查询语言( x o l ) ,编程接口( s a x ,d o m ) 等数据库的基本 功能。对于x m l d b ,有两种不同的观点:一种观点认为,只有以x m l 纯格式存 储x m l 的数据库彳能称为x m l 数据库:另一种观点认为,只要能存入和检出 x m ,且它本身又是一个数据库,那它就是一个x m l 数据库,而不必考虑数据 是怎样存储的。通常,内部不是以x m l 格式存储的x m l 数据库,叫做支持x m l 的数据库( x m l e n a b l e dd b ) ;而内部以x m l 格式存储数据的,称为纯x m l 数 据库( n a t i v e x m ld b ) 。支持x m l 的数据库在处理x m l 文档时,通常需要根据 定的映射关系进行数据转换,然后再进行存储和管理。它的优点是:存储和 管理沿用的是十分成熟可靠的关系数据库,具有现有关系数据库的优点又对 x m t ,有一定的支持,如s q l s e r v e r 2 0 0 0 、o r a c l e 8 i 、d b 2 等。但是由于x m l 数据 和关系型数据在组织上的差异,在存储转换过程中,可能会丢失一些有用的信 息,而且转换过程本身也会增加系统开销,影响数据库的效率,增加复杂性。 此外,由于不同厂商的关系数据库是异质的,这也增加了开发基于x m l 的 i n t e r n e t 应用的难度。纯x m l 数据库,如t a m i n o 、d a t e c h a n n e s e r v e r 等,由 于内部存储采用的是标准的x m l 格式,因此可以充分发挥x m l 的优势而无需进 行数据转换。但纯x m l 数据库也存在一定问题,它采用的是一种全新的数据组 织方式,而这种方式在过去还没有得到过广泛的应用,其性能也还没有得到充 分验证。另外,其数据在数据安全、操作数据的速度以及维护和管理上与现有 成熟的关系数据库也还有一定差距。 在本文中我们主要关注的是,如何在现有的不支持x m l 存储和处理的关系 数据库与x m l d b 之间建立合理的映射转换机制,来实现两种数据库的共存及互 操作。 智能_ 星体通信语言和煳l d b 研究 。3x 蘩l d b 、r d b 受撩僚性礤究的意义 关系数据库的应用领域主要愚锌对商、韭与事务链理。i n t e r n e l 辩代到来以 箍,w e b 薛发震绘数据痒技术提基了一令必须短对款重要润题:即翅嚣有效地 存储秘管理w e b 上以攒数增长着的数据( 文档) ,使它们既能被高效地操作和 维护,又能在w e b 这个平台上方便地表示和交换。这就产生了许多问题,如将 现有数据库中数据转换成适于i n t e r n e t 和w e b 的形式,需要稠当巨大的工作 量。辩至今稿,鬣然觚e g l ,s e r v e ra p i ,s c r i p t s 到j a v a 等等蠢现了诲多麓 决方法,劳基已在实鼯应用中取德了很大的戏就,但仍蠢许多闽题蠢待嬲决; 传统数据库中的数据以= 进制码的形式存储,并且不同的数据库管理系统有各 自的专有格式,这些不仅带来了表示上的困难,更成为数据交换的一大障碍。 而随着网络和i n t e r n e t 的发展,数据交换的能力已成为衡量数据库应用系统的 一个至关黧要懿簧求。 当蔑,许多公司使用并猿赖于很早以翦开发的数据麾应用系统,通常这些 系统的关系数据库和应用程序是紧紧地耦合在一起的,这使得系统的数据迁移 和重构过程非常困难,对于处理实际应用中大量存在的非结构化数据和屡次型 数谲时显褥力不觚心,已难豁完全适应数据交换等发展鼢需要。另一方舔尽管 蘧着x m l 森蠲迅速发鼹敦x m l i ) b ,在处壤菲续擒化数据秘层次型数撰奏明短优 势,适合予电子商务_ 和数据交换等应用,但其还存许多地方煮待完善。出于保 护投资、安全性、可靠性等因素的综合考虑,使用新的x m l d b 替代现有r d b 也 是不现实的。 因诧,为了菱有效遗秘稻现有数据资源,同辩满足i n t e r n e l 寝鬻和数据交 揍戆追甥露要,寻求秽傻珑毒蕊r d 8 秘迅速发震熬x 辩l 船势调工终、互操作 的方法是很有实际意义的。此外,x m l 已逐渐成为电子数据交换的标准,将大 量存储在传统关系数据库中的信息用x m l 来表示和交换,用关系数据库处理 x m l 数据,也具有广阔的实糟价值和应用前景。 第一章、x m l d b 、r d b 的互操作方法分析 第二章、x m l d b 、r d b 的互操作方法分析 2 1r d b 数据与x m l 数据及其互操作性分析 尽管x m l 数据库和关系数据库在功能上都是提供数据的存贮与提取,但二 者处理的对象不尽相同,x m l d b 的目的是处理非结构化的x m l ,而关系数据库的 目的主要是处理结构化的关系数据。因此两种数据库在数据的组织处理等方 面,所用的一些技术和思想有很大的差异,这就给实现两种数据库的互操作带 来了一定困难。x m l d b 和r d b 互操作的核心就是两种数据库之间数据转换和互 操作 3 7 。 j l 关系型数据 物理结构和逻辑 结构之间的映射 ; 物理数据文件 x m l d b 系统r d b 系统 图2 x m l d b 系统与r d b 系统的对应关系 x m l d b 中存储的x m l 数据与关系数据库存储的关系数据之间的转换包括两 种转换:关系数据到x m l 文档的转换和x m l 文档到数据库之间的转换。关系数 据库表达的信息是完全结构化的信息,所表达的信息非常有规则,但其对于一 些具有层次结构的数据难以表达甚至无法表达;x m l 文档表达的是半结构化的 信息,特别适合表达层次型的数据,有非常好的灵活性。关系数据库和x m l 文 智能主体通信语言和x m l d b 研究 档存在结构化和半结构化的区别,特别是非层次和层次型的区别导致了两者之 间进行数据转化的困难。 根据x m l 文档的用途,x m l 文档通常分成两种类型:一种是以数据为中心 的x m l 文档( d a t a c e n t r i cd o c u m e n t s ) ,这类文档具有良好的结构,数据 颗粒度小( 元素的层次较少,元素之间的关联较少) ,基本上没有或者很少有 混合型的内容( 某一元素的内容既允许是p c d a t a ,又允许是子元素) ,子元素 之间的顺序不重要。这一类数据的典型例子是订单,菜单,航班信息等。以数 据为中心的x m l 文档主要应用于计算机之间进行数据自动处理,x m l 文档只是 作为一个传输数据的工具使用。这种x m l 文档的数据与关系数据库中的数据一 般都有相对简单的映射关系,可以根据映射关系在两种数据之间进行转换,应 用的实现难度较小。因此这种类型的文档非常适合在与数据库相关的各类应用 的数据交换中使用。这种类型的x m l 文档目前在应用中使用得数量非常大,是 x m l 和数据库转换的重点。例如, a b ci n d u s t r i e s 1 2 3m a i ns t ,c h i c a g o , x y zp r o p e r tie s 1 0 0 0 是一个表示租约的文档,在这个文档中,各个元素的出现顺序是不重要 的,数据的层次也不是特别复杂,属于以数据为中心的x m l 文档。它和数据库 中的关系表存在简单的映射关系,元素关系实体;子元素字段:属 性一一字段类型,可以方便地转换到关系数据库中。 表1 x m l 文档映射的表 a b 6 i 1 2 3m a i n l x y z 1 1 8 i n d u s t r i e sl s t ,c h i c a g oip r o p e r t i e sj 另一种是以文档为中心的x m l 文档( d o c u m e n t - c e n t r i cd o c u m e n t s ) 。这 种文档结构很不规则,数据颗粒度很大,有很多的混合内容,数据的顺序非常 第一章、x m l d b 、r o b 的互操作方法分析 重要,这类数据主要是用于人理解的,典型的例子有书本、电子邮件等可读信 息。这些信息可以并且也应该用x m l 来表达,但这些数据到数据库之间的转换 就存在很大的困难,在实际上我们也没有必要去实现这类x m l 文档到数据库的 转换。把它按照其纯x m l 格式存储,即方便又准确。 在实际应用中,关系数据库的数据和x m l 文档之间的转换不完全是一个格 式变化的过程,而且是一个选择过滤的过程,从数据库到x m l 转换的时候需要 对数据库中的数据进行一定的取舍,而从x m l 文档到数据库的转换也是如此。 因为很多数据在半结构化的情况下可以表达,比如说x m l 文档中存在的很多二 进制实体,而在结构化的情况下根本无法直接对应至q 数据库中。 在x m l 数据库和关系数据库的互操作中,会涉及许多问题 3 5 。x m l 中涉 及的是元素、予元素、属性、处理指令、实体、实体引用、名域等概念,而在 一个关系数据库中,涉及的是表、记录、字段、关键字、外键、视图、索引等 概念,两种数据的概念既有区别又有联系,在两者之问建立一个证确的结构之 间的映射关系和数据之间的映射关系,通过映射关系在两种数据库的查询、存 入、检出等操作中建立联系,就是研究x m l 数据库和关系数据库之间互操作需 要解决的问题。 建立数据库模式( d a t a b a s es c h e m a ) 和x m l 数据模式( x m ls c h e m a ) 之间 的映射关系在实际的应用中可以根据需要有不同做法,这种映射关系在多数情 况是双向的。下面分析的是一种比较简单且常用的方法 3 7 。 从x m l 数据模式到关系数据库的数据模式可以用如下的方式建立: 为每一个有子元素或者混合内容的元素建立个表,该表具有一个关 键字。 为每一个混合元素建立一个独立的表,该表通过父元素表中的关键字 建立关联。 为每一个元素的单值属性和每一个只能是p c d a t a 的一次出现的子元素 创建一个字段,字段类型与x m ls c h e m a 中声明的类型一致。如果该子 元素或者该属性在x m l 中允许为空,则相应的在数据库中,该字段允 许为空( n u l f a b l e ) ,如果属性或者元素不能为空则该字段不能为空 ( n o tn u 】 ) 。 智能主体通信语言和x m l d b 研究 为每一个元素的多值属性或者能在文档中多次出现但类型是p c d a t a 的 子元素创建独立的表,该表与父表通过父表的关键字关联。 但上述的转换存在一些明显问题,比如在x m l 文档中大小写是区分的,而 在数据库中大小写通常是不区分的,假如在x m l 文档中存在两个p c d a t a 的元素 它的名称除了大小写的不同以外都一样,则转换程序会将其转换成两个字段, 这会导致在数据库中错误的发生;另外,x m l 数据是有顺序的,而数据库中的 数据是无序结构,例如,如果某人存在两个e m a i l 地址,并且他认为两个 e m a l l 地址地位并不一样,这在x m l 文档中是能够表达的,但转换成数据库中 的数据以后,这样的特点却丧失了,有一种解决办法就是往e m a i l 表中添加一 个s o r t 字段,在往数据库中导数据的时候将数据的顺序信息一同导入:混合型 的元素( 即该元素的内容可以是p c d a t a 也可以是子元素) 在关系数据库中的表 示是一个难以处理的问题,根据规则,p c d a t a 转换成表中的一个字段,子元素 转换成一个子表或者一个字段,在有些时候转换可能会出现错误;x 虬中的名 域元素在转化到数据库的时候需要特殊的处理,可以简单的往数据库中的所有 表中添加一个名域字段,在导入数据的时候,如果元素或者属性有名域前缀则 往名域字段填写相应的名域,如没有则该字段为空。 关系模式到x m l 模式的转化: 给每一个表创建一个元素 为表中的每一个字段创建一个属性或者只能是p c d a t a 的子元素,子元 素或者属性的类型尽量与表中字段的数据类型一致,若字段在表中允 许为空,则该字段对应的属性或者元素也应该允许为空 对于每一个主键和外键关联,将外键所在的表创建的元素作为子元素 插入主键所在的表所对应的元素中 在一般情况下,x m l 模式可以完整地表达关系模式中的内容,但在实际应 用中,往往根据需要加以取舍。 从上述相互转换的规则可以看到,经过正反两个方向转化以后得到的x m l 文档或关系与原来的x m l 文档或或关系可能会不一致,设从x m l 文档到数据库 模式的映射是函数f ,数据库模式到x m l 文档的映射为g ,则对任意的x m l 文档 d o c ,复合函数g ( f ( d o c ) ) 的结果不一定等于d o c ,也就是说这两个函数不是双 第一章、x m l d b 、r d b 的互操作方法分析 射。原因在于从x m l 文档到数据库的映射中,属性和p c d a t a 的子元素都映射到 表中的一个字段,并且在映射的过程丢失了本身是属性还是子元素的信息。这 种影响对于以数据为中心的x m l 文档和数据库之间的转换影响不大。 在现实应用中,转换的规则可能是非常灵活的,用户从数据库中提取数据 并以x m l 形式表现不一定完全遵循模式匹配的要求;在往数据库更新x m l 数据 的时候,x m l 文档中包含的数据可能只是很小的一个数据片断,只更新数据库 中的某一个表或者几个表中的部分数据。这些情况要求有一种更灵活的形式在 数据库和x m l 之间交换数据,目前有些大型关系数据库系统中提供给用户一种 类似s q l 语言的操作语句用于从数据库中提取数据或者以x m l 的形式往数据库 中更新数据。 2 2 支持x m l 的r d b 特点分析 目前,几乎所有主要的商业数据库系统都对x m l 提供了不同程度的支持。 下面我们以s q ls e v e r2 0 0 0 和o r a c l e8 i 为例,对支持x m l 的关系数据库处理 x m l 的策略和方法进行分析。 1 、m ic r o s o f ts q ls e v e r2 0 0 0 m i c r o s o f ts q ls e r v e r2 0 0 0 提供了专门为w e b 和数据库开发人员设计的 x m l 功能。s o ls e r v e r2 0 0 0 支持标准的x m l 构造( 比如x p a t h ) ,可以使用 f o rx m l 子句获得x m l 查询结果或使用o p e n x m l 操纵x m l 数据,还为事务的 架构映射提供了简单的公开机制和x m l 视图。,它对x m l 的支持主要体现在以 下几个方面 3 1 : ( 1 ) h t t p 访问 通过h t t p 协议直接访问数据库,这种访问是通过在u r l 中加入s q l 、模板 和h t m l 事件后集成三种方式进行的。 例如我们查询s q l s e r v e r 2 0 0 0 中一个名为n o r t h w l n d 的数据库,有一个虚 拟根目录指向这个数据库,则我i f i n 以用如下的u r l 访问数据库 h t t p :l o c a l h o s t n o r t h w i n d ? s q l = s e l e c t + f i r s t n a m e 1 a s t n a m e + f r o m + e m p l o y e e s + f o r + x m l + a u t o , 这里? s q l 表示跟随的是合法的s q l 语句, s q l 语句中的空格在这里都要用+ 来转义,其它一些可能产生问题的字符比如 智能主体通信语言和x m l d b 研究 r ,也需要转义。向i i s 提交上述的s q l 请求以后在浏览器中能够得到 类似以下的x m l 数据: r o wf ir s t n a m e = a n d r e w “a s t n a m e = “f u ll e r “h r o wf i r s t n a m e :j a n e t i a s t n a m e = l e v e r li n g “h r o wf i r s t n a m e :m i c h a e l l a s t n a m e :“s u y a m a “h r o wf i r s t n a m e :“r o b e r t “l a s t n a m e = k i n g “n r o wf i r s t n a m e :“l a u r a “ a s t n a m e :c a l l a h a n “b r o wf ir s t n a m e = “a n n e l a s t n a m e :“d o d s w o r t h “b 这些数据都是服务器取自关系数据库中的数据,并且由i s a p i 呈现在浏览 器中。 通过执行在服务器端的模板文件来查询,模板是包含一个或多个嵌入式 s o l 语句的有效x m l 文档。跟s o l 语句样,模板可以在u r l 或在文件中指 定。模板允许使用u r l 检索s o l 数据而不向查询者暴露数据库的结构;查询者 只能知道模板名称。这省却了在u r l 处输入很长的s o l 语句的麻烦。s o l s e r v e r2 0 0 0 在模板内支持以下功能:

温馨提示

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

评论

0/150

提交评论