(计算机软件与理论专业论文)多数据库中间件中sql服务器的研究与设计.pdf_第1页
(计算机软件与理论专业论文)多数据库中间件中sql服务器的研究与设计.pdf_第2页
(计算机软件与理论专业论文)多数据库中间件中sql服务器的研究与设计.pdf_第3页
(计算机软件与理论专业论文)多数据库中间件中sql服务器的研究与设计.pdf_第4页
(计算机软件与理论专业论文)多数据库中间件中sql服务器的研究与设计.pdf_第5页
已阅读5页,还剩86页未读 继续免费阅读

(计算机软件与理论专业论文)多数据库中间件中sql服务器的研究与设计.pdf.pdf 免费下载

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

文档简介

摘要 摘要 多数据库系统屏蔽了不同数据库在物理上和逻辑上的差异,使用户能实现对异种数 据库的透明访问。我们提出和研究的多数据库中间件实际上是构造“d b m so v e r d b m s ”,是多数据库的一种兼容与普通d b m s 的模式化解决方案。 在上述的背景下,课题主要研究和设计数据库中间件中的s q l 服务器m s q l s e r v e r 。由于课题模型背景的特殊性,本文首先分析了它和一般数据库服务器的不同之 处,再对其具体功能,总体目标等问题做了叙述。 在系统的设计中,本论文重点介绍了系统数据结构的设计,即s e l e c t ,f r o m ,w h e r e , o r d e r b y ,g r o u pb y ,h a v i n g 子句解析时所形成的语法树,以及它们在重写阶段如何形成 查询树,而查询树实质是修改、扩展信息的语法树。论文叙述了系统的详细实现。重点 是对表达式的解析和处理。应用的是算符优先的算法,并对之作了改进。对算法中的算 符优先表进行扩充,使之可以处理除普通的加减乘除四则运算外,还可以支持关系连接 符a n d ,o r 。n o t 的运算,并扩充到对子查询的处理,包括 n o t e x i s t s 和【n o t i n 。表达式 经过解析,最后生成的是动态二叉树,树激活后通过计算得到表达式的结果。 对查询的进行优化以后,在数据访问阶段所使用的多数据库缓冲区中的a p i 对数据 逻辑视图进行数据访问。论文对其进行了研究和讨论,并模拟了数据逻辑视图和部分 a p i 。通过对它们的研究和模拟,更好地理解整个多数据中间件的模型,而更重要的是 验证所设计的各个子旬的查询树的数据结构是否合理,信息是否齐全,是否可行,并且 使m s q l s e r v e r 的结构更加完整,具有相对的数据库服务器功能。 本文最后对数据库和网格进行了进一步的讨论。多数据库也是网格计算和普适计算 的基本问题,和数据网格技术有不少相似之处,故对数据网格进行介绍和讨论。论文还 介绍了数据库在网格的应用,以及数据库如何整合到网格中等问题。 关键词多数据库;中间件;s q l 服务器;网格 a b s t r a c t m u l t i d a t a b a s es y s t e ms h i e l d st h el o g i c a la n dg e o g r a p h i cd i f f e r e n c eo fh e t e r o g e n e o u s d a t a b a s es y s t e m s ,w h i c he n a b l e st h eu s e r st oa c c e s sh e t e r o g e n e o u sd a t a b a s e st r a n s p a r e n t l y t h em o d e lo fm u l t i d a t a b a s em i d d l e w a r ep r o p o s e di st oc o n s t r u c tt h ed b m so v e rd b m s , w h i c hi sas o l u t i o nc o m p a t i b l ew i t hc o m m o nd b m ss c h e m a w i t ht h eb a c k g r o u n dm e n t i o n e da b o v e ,i v ed e v o t e dm y s e l ft ot h er e s e a r c ha n d d e s i g n o ft h es q ls e r v e ri nt h em i d d t e w a r e ,w h i c hi sc a l l e dt h em s q ls e r v e r b e c a u s eo ft h e p a r t i c u l a r i t y o ft h e b a c k g r o u n d ,t h ep a p e ra n a l y z e t h ed i f f e r e n c eb e t w e e ni ta n do t h e r d a t a b a s es e r v e l s ,t h e ns t a t et h ef u n c t i o n a l i t i e sa n d g o a l s o f m s q l s e r v e r t h ep a p e rm a i n l yi n t r o d u c et h ed e s i g no ft h ed a t as t r u c t u r e ,i e t h e s y n t a x t r e eo f d i f f e r e n tt y p e so fc l a u s e s ,i n c l u d i n gs e l e c t ,f r o m ,w h e r e ,o r d e rb y , g r o u p b ya n dh a v i n g c l a u s e a n dh o w t h e yb e c o m eq u e r yt r e e si nt h er e w r i t es t a g e a c t u a l l yq u e r y t r e ei ss y n t a xt r e e ,a n d i sj u s te x t e n d e da n dm o d i f i e dt os o m ee x t e n d t h ep a p e rp u tt h er e a l i z a t i o no ft h es y s t e mi n d e t a i l s ,a n dp a y st h ei m p o r t a n c eo nt h ep a r s ea n dp r o c e s so fe x p r e s s i o ni nt h ec l a u s e t h e o p e r a t o r - p r e c e d i n ga r i t h m e t i ci sa d o p t e d h e r ea n di m p r o v e d t h eo p e r a t o r - p r e c e d i n gf o r mi s e n l a r g e dt od e a lw i t hn o to n l yt h ea r i t h m e t i cb u ta l s ot h el o g i c a la r i t h m e t i c ;w h a t sm o r e i t c a ns u p p o r tt h ep r o c e s so ft h es u b q u e r i e s ,i n c l u d i n g 【n o t 】e x i s ta n d 【n o t i n a f t e rp a r s e d ,t h e e x p r e s s i o nt u r no u t t ob ed y n a m i cb i n - t r e e ,w h i c hc a nb ea c t i v a t e dt oc o u n ta n dp r o d u c et h e r e s u l to ft h ee x p r e s s i o n a f t e rt h eo p t i m i z a t i o n t h ed a t ao ft h el o g i cd a t av i e wi nt h ed a t ab u f f e ra r ea c c e s s e di n d a t aa c c e s ss t a g e t h ep a p e rw o r k so ni ta n ds i m u l a t e st h ed a t av i e wa n ds o m eo ft h ea p i t h r o u g ht h i sw o r k t h ew h o l em o d e lo ft h e m u l t i d a t a b a s ei su n d e r s t o o dm u c hb e t t e r t h e m o s ti m p o r t a n tt h i n gi st ov a l i d a t et h ev a l i d i t ya n df e a s i b i l i t yo ft h ed a t as t r u c t u r e ,a n d w h e t h e rt h e yh a v ee n o u g hi n f o r m a t i o nf o rt h ec o m i n gp r o c e s s a n di tc o m p l e t e st h ew h o l e s t r u c t u r eo ft h ed a t a b a s es e r v e r , w h i c ho w n st h eo v e r a l lf u n c t i o n a l i t i e s t h el a s t c h a p t e r m a k e sf u r t h e rd i s c u s s i o na b o u tt h ed a t a b a s ea n dt h eg r i d m u i l t i d a t a b a s ei sa l s ot h ei s s u eo fg r i d - c o m p u t i n ga n dc o m m o n - a p p l i c a b l ec o m p u t i n g ;i ti s q u i t ec o m m o n w i t ht h ed a t ag r i d s ot h ep a p e rm a k es o m ei n t r o d u c ea n dd i s c u s s i o no nd a t a g r i d t h ep a p e ra l s oi n t r o d u c e st h ea p p l i c a t i o no fd a t a b a s ei nt h eg r i da n dh o wt h ed a t a b a s e i si n t e g r a t e di nt h eg r i d k e yw o r d sm u l t i d a t a b a s em i d d l e w a r e ;s q ls e r v e r ;g r i d - i i 华南理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研 究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文 不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研 究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完 全意识到本声明的法律后果由本人承担。 作者签名: 悉诘 日期:j 4 年l ,月f d 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权华南理工大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 保密口,在年缢密后适用本授权书。 本学位论文属于 不保密口。 ( 请在以上相应方框内打“”) 作者签名:走路日期:口l 。口4 年6 月! o 日 导师签期:口l 0 0 4 - 年6 月h 日 第一章绪论 第一章绪论 本章介绍了本课题的研究背景、研究现状、相关技术和理论,以及课题研究目标与 意义。 1 1 研究背景 目前,银行、医院、机关、学校等许多机构都采用大型数据库来管理其业务数据。 这些数据库系统主要面向职能领域内部的业务与服务,各数据库完全独立设计,其中的 关联数据不能有机地联系在一起,形成一个逻辑结构。我们这里将这种结构松散、关系 封闭、隶属独立的数据库系统称为局域数据库系统。我们目前见到的数据库系统大多为 这种局域数据库系统。人们最初的目标是将所有的数据都集中在单个数据库中,用户通 过使用各种数据库工具,如数据库描述语言、数据操作语言、各种访问机制和约束检测 等来实现数据的维护和使用。 1 1 1 数据库的现状 随着各种局域数据库系统的逐步完善,以及计算机网络的发展,广域数据库应用成 为数据库领域的新焦点。但是由于局部数据库设计的时候,只是考虑到本领域的应用, 数据库中的数据仅代表了该领域的数据。这样给多数据库应用带来很多不便。 而由于各种历史原因,目前数据库还没有形成统一的标准,各种不同的数据管理系 统都在使用之中。过去文件系统、层次网络系统、关系数据库、面向对象数据库等作为 数据管理平台都曾广泛使用,而且基于不同的数据管理系统都建立了大量的应用程序。 由于不同的数据管理系统有不同的数据模式和查询语言,用户不可能使用一个数据库那 样使用多个具有不同结构的数据管理系统,但是有些应用要存取的数据可能涉及到不同 种类的数据管理系统。 在当今日益变化的应用和各种各样的产生出来的数据今天,这些问题尤为突出。越 来越多的企业和个人希望把各种不同的数据库整合起来,来达到资源共享,降低成本的 目的。因此,我们面临着解决不同种类的数据管理系统之间的互操作问题,支持多数据 库中信息共享的系统成为迫切需要。 1 1 2 数据库的差异性问题 然而,异种数据库的互联并不容易。对于实际运行的系统来说,有许多因素都可能 华南理工大学硕士学位论文 产生数据库系统之间的差异性,如计算机硬件、操作系统、阿络通信和协议、d b m s 及 数据模型等。其中,源自数据库系统自身的差异可以分为两大类,即d b m s 的差异和 数据语义的差异。 1 d b m s 盼差异。数据模型的不同是d b m s 差异的一个重要方面。关系数据库、 层次数据库、网状数据库,以及新出现的面向对象数据库,它们所采用的数据 模型各不相同。由此而导致数据结构、约束和数据语言等的差异。 2 数据语义的差异。数据语义的差异主要源于不同数据库对相同或相关数据的理 解、解释及使用的不一致性。譬如在两个数据库中,对同一个属性名的具体含义、 定义不风或对同一属性的数据值在两个数据库中的精度定义不同,都可能引起语 义差异,由于目前d b m s 是数据库产品的主流,因而本文主要针对关系型数据 库之间的互联进行讨论。 3 访问的差异。各数据库厂商的r d b m s 产品名义上都符合a n s i i s o 规范,但是, 由于s q l 标准并不完善,加之各厂商为了提高自己产品的功能都对s q l 语言进 行了一定的扩充,如o r a c l e 的d t j s q l 、s y b a s e 的t - s q l 和i n f o r m i x 的i - s q l 等,就连m m 四个基于s q l 的r d b m s d b 2 、s q i j d s 、s q l 4 0 0 和 o s 2d a t a b a s em a n a g e r 彼此也不兼容。可以说,各有各的s q l 语言。这给数据 库之间的互联造成了很大的障碍。为了解决异种数据库之间的互联问题,国际标 准化组织和各数据库厂家作了不懈地努力。s a g 和m m 试图从标准一致化的角 度来解决这个问题,并制定了一系列规范,如正在广泛使用的o d b c 即是基于 s a g 的c l i 规范。数据库厂家为使自己的产品具有开放性,也提供了各自 的g a t e w a y 产品,用以提供对异种数据库的透明访问。 1 2 多数据库系统技术简述 多数据库应用就是以异源数据为操作对象的数据库应用。所谓异源数据,是指“产” 于不同系统的数据,包括异质数据,它们具有结构松散、关系封闭、隶属独立等特点。 我们也称这种跨数据库应用为广域数据库应用。 “结构松散”是指部分数据存在着内在的物理关联,但在一般的事务中,不存在逻辑 关系,而当与外部通信,交互时,需建立关联。 “关系封闭”是指各数据库表,其逻辑关系建立在各自的范围内,数据库之间尽管在 物理意义上可能存在关联,但在设计中未被作为一个有机体处理,因而在数据库观点下, 被作为无关系的独立数据。 “隶属独立”是指各数据库系统完全独立存在,隶属于无上下级关系的部门,可能驻 留在不同的机器上,并且未通过任何集群系统在逻辑关系上集成在一起。 第一章绪论 1 3 课题研究内容 1 分析当前多数据库的技术的发展状况。 2 多数据库的技术 3 我们所提出的多数库中间件的体系结构研究 4 分析多数据库中s q l 数据服务器的研究与设计 5 与分布数据链接集的连接,通信,交互。 6 ,数据库与网格的研究 7 系统的实现和测试 本课题在我们所提出的多数据库中间件的结构体系基础上,对集成机中的s o l 服 务器进行研究,设计并实现了s q l 服务器的服务器端、客户端功能,以及解析执行的 功能,下文称为m s q ls e r v e r 。m s q l 采用的是经典的c s ( c l i e n t s e r v e r ) 结构,服务器 端通过监听客户端来的查询请求,通过处理后端程序的分析,生成语法树和查询树,进 行数据检索并最终把结果格式化输出后返回给客户端。 1 。4 本章小结 随着计算机技术的飞速发展,软件系统从集中走向分布,在数据库领域中,分布 式数据库技术已经成为一个主要研究方向,并取得了一定的成果。多数据库应用也是 一种分布式应用,其理论研究已经成为热点。本章简单介绍了多数据库的技术。并概 述了本课题的主要内容。 华南理工大学硕士学位论文 第二章多数据库技术 2 1 多数据库系统的概念 2 1 1 基本概念 我们现在通常的数据库系统主要面向职能领域内部的业务与服务。各数据库完全独 立设计,其中的关联数据不能有机地联系在起,形成一个逻辑结构。我们这里将这种 结构松散、关系封闭、隶属独立的数据库系统称为局域数据库系统。我们目前见到的数 据库系统大多为这种局域数据库系统。 相比之下,我们称以多个不同的局域数据库( 称它们为异源数据) 为操作对象的数据 库应用为多数据库应甩,这种多数据库应用的数据取自不同的局域数据库,我们称之为 异源数据的集成、上推、复用。 多数据库系统( m d b s ) 是多个局部数据库的联合。这些局部的数据库是已存的、自 治的、异梅的。多数据库系统的管理软件称为多数据库管理系统( m d b m s ) 。构成多数 据库系统的各个局部数据库系统称为局部或成员数据库系统( l d b s ) ,它们有各自的局部 数据库管理系统( l d b m s ) 。局部数据库分布在网络的不同节点上,多数据库系统在所有 局部数据库系统之上构成全局系统管理层,提供外部用户接口。使用户能实现对异种数 据库的透明访问。多数据库系统屏蔽了不同数据库在物理上和逻辑上的差异,各局部数 据库有充分的自治性【1 l 。 2 1 2 多数据库与分布式数据库 分布式数据库系统和多数据库系统都是为了解决数据库异构,异地的问题提出来 的。但是二者还是有区别的。首先我们应该分清多数据库系统和分布式系统的关系。应 该说,多数据库系统不仅仅是个分布式系统。在分布式系统中,数据库被看作是一个单 元,而且仅仅被一个数据库管理,而在多数据库系统中数据库被看作是几个已经存在 的。匿名的数据库,并且被多个数据库管理系统来管理。在分布式数据库系统中,数据 在不同数据库节点上分布。在多数据库系统中,需要从各种不同的数据库中融和数据。 分布式数据库是通过某一全局模式来管理多个分布的数据库,从而实现数据的共享 访问。这种方式实际上是用一个逻辑上集成的数据库代替各存在的数据库,各个组成数 据库的在很大程度上已经不是具有自治性了。从数据库的模式结构角度来看,分布式数 据库所涉及的是内部模式的问题,而不是概念模式和外部模式的问题,从实现途径的角 第二章多数据库技术 i _ | 詈暑= 暑曼曼詈暑_ _ _ 置_ 暑暑墨e 鼍鼍量董_ _ _ 詈量= ! 曼曼詈邕盲_ e 皇詈= ! ! 墨曼詈詈邕_ _ 曾詈詈詈! 詈鼍曼詈鼍- - e 詈詈曼墨皇 度来看,分布式系统主要是始于系统设计,终于分布式数据库系统的形成。一开始就统 筹考虑。它很难解决数据库的异构,异地问题。 而多数据库系统是由一组既能协调工作,又能独立自治的子数据库系统组成,他充 分考虑了各个组成数据库的自治性,各数据库由自己本地的数据库管理系统来管理。数 据库之间的数据共享由数据库间的互操作来实现。这种方式有很好的操作系统透明性, 位置透明性,操作语言透明性,它不同于分布式数据库,首先它是对已经存在的数据库 的整合,是数据库的联合体。它考虑的也不是数据库的内模式问题,而是考虑概念模式 和外模式的问题。从理论上既解决分布问题和异构问题,又保留了各个组成数据库的充 分自治性0 1 。 从位置分布特点方面看,多数据库应用也是一种分布式应用。从上面的分析可知它 们本质不同。分布式数据库库中,位于不同位置的数据是逻辑上一体的且结构关联的, 在整体上属于同一数据库系统;而在多数据库应用中的各数据库,不仅位置不同,而且 逻辑上也各自独立,互不关联。那么,能否使用分布式数据库的方法。去处理多数据库 应用,从而取代多数据库应用的概念? 回答是不行的。其主要原因不是技术方面的,而 是应用需求的原因。不同职能领域的数据库,出于安全保密、使用方便、管理,运作体制 等方面的原因。不可能实现全局规划、全局设计,统一管理,更不可能统一作为一个( 或 若干个) 分布式数据库运行。 2 2d d b m s 的划分 2 2 1 联邦数据库管理系统 依照分布式数据库系统每个节点的自治程度可以对分布式数据库系统进行分类,并 有不同的组织和管理的要求。根据o s z u1 9 9 9 ,半自治系统成为联邦数据库管理系统。 联邦数据库系统的组件在执行的时候带有显著的自治性,但是他们参与分布数据管 理,表明他们与多数据库的其他数据访问用户的交互合作性【3 】【4 】。 自治性可能是: ( 1 ) 设计的自治权一个组件有自己的设计权利 ( 2 ) 通信的自治权系统什么时候和如何相应 ( 3 ) 执行的自治权对本地命令的执行能力 华南理工大学硕士学位论文 2 2 2 多数据库管理系统 2 2 2 1 简述 相对而言,如果分布式数据库管理系统( d d b m s ) 具有全自治权,那我们称之为多数 据库管理系统( m d b m s ) 。 多数据库管理系统是一种软件,提供对于具有全自治权的结点集的管理和访问。每 个本地数据库管理系统( l d b m s ) - t 鞯不能感知其他系统。一下是简要的执行步骤: 基于全局数据模式,m d b m s 层把查询转化成标准形式:或者基于本地数据模式, 把全局概念模型转换成查诲。 本地执行完毕,把结果返回 在数据库管理系统中,分布软件层和本地数据库管理系统没有交互作用。所有的动 作由本地数据库管理系统处理( 本地数据库管理系统有全自治权) ,这样,每个结点 可以把查询看作是本地提交的【l , 3 1 。 2 2 2 2 多数据库的分类 多数据库系统可能分为同类或异类。 对于分布是数据库管理系统有三种主要的分类尺度:同类,异类的程度;自治的程度, 分布透明性的程度。 1 分布式数据库管理系统可能有同类结点或者异类结点混合组成。 异类也有多种不同级别: 1 ) 硬件不同网络,服务器缩主硬件 2 ) 操作系统的不同 3 ) 组件的数据库管理系统不同 4 ) 查询语言d m l 不同 匀编程语言不同 6 l 语义不阿一要考虑不同的节点 傍j 如,考虑一个分布式数据库系统,有5 个接点在s u ns p a r c s t a t i o n s 上运行 s o l a r i s ( u n i x ) 使用o r a c l e ? 。所有的节点使用相同的数据库模式。 另个分布式数据库系统有两个结点在s u n 上运行o r a c l e 7 ,一个结点在 w i n d o w s n t 上运行s y b a s e ,第四个结点在大型机上运行i b m 的i m s 。 2 每个站点或者结点可能有定程度的自治权( 根据第二个分类尺度) 也就是 说,可以处理本地的事务,而同时参与分布式数据库系统。在一个没有自治权的 分布式数据库系统中,所有的事务必须提交到分布并发控制器 c ) 中。这样整个 第二章多数据库技术 分布式数据库可能向应用程序( 和用户) 呈现单个系统的外貌。而很有可能,只有 特定的事务会提交到分布式c c ,其他直接提交到单个结点的数据库管理系统中。 3 第三个要考虑的尺度是分布透明性的程度( 模式集成) 1 ) 通过一个叫做模式集成的程序,可以提供分布式数据库管理系统的统一视 图,对于所有应用程序( 和用户) 呈现单一模式。这样会出现高度的模式集成。 2 ) 然而如果应用程序和用户必须指定所有数据项的位置,那么这时会考虑使 用低程度的模式集成。 3 ) 在提供这样一个集成模式时,会遇到很多问题,包括命名问题。 通常来说,分布式数据库系统可以提供更多的适应性,更高的性能和在集中式系统 中提供更高程度的独立性。然而,分布式数据库系统同样更难地设计和发展,控制和管 理。安全同样更难实现3 】1 4 1 。 2 3 多数据库系统技术 2 3 1 多数据库设计原则及其体系结构 m d b s 的设计原则主要有以下几点: 1 禁止从一个数据源到另一个数据源之间的数据转换和迁移。因为这样从空间上和从 访问效率上都是不可取的。 2 从设计自治性的角度考虑,m d b s 要求对局部数据库的软件不能作任何改动。 3 m d b s 不能妨碍l d b 原来的工作模式,即l d b 上还可以运行只使用本地资源的应用 程序,而要访问多个l d b 资源的应用则需在m d b s 上运行。 4 在m d b s 中只使用一种统一的数据库语言,用户像使用一个数据库一样使用m d b s 。 5 m d b s 必须对用户屏蔽各个l d b 的异构的操作环境,包括计算机、操作系统、网络s 协议等【1 】。 m d b s 本身是一种c l i e n t s e r v e r 结构,多个m d b s 的c l i e n t 与m d b s 交互作用,m d b s 的用户可以通过m d b s 对多个l d b 进行统一的存取操作。m d b s 管理所有的全局数据库 的控制信息,包括全局模式、提交和控制涉及不止一个l d b 的全局事务等。每一个l d b 通过一个驱动器与m d b s 连接,这个驱动器与l d b 在一个站点上,m d b s 与驱动器之间 的通讯构成一个通讯子层( c s s ,c o m m u n i c a t i o ns u b s y s m m ) 。从m d b s 的体系结构可以 看出,m d b s 对l d b 没有作任何改动,因此l d b 上的用户还可以对l d b 进行直接访问, l d b 上原来的应用程序还可以直接运行于l d b 之上。m d b s 的体系结构如下图: 华南理工大学硕士学位论文 圈固固 2 3 2 数据库集成 爵2 - 1m d b s 的体系结构图3 】 f i g u r e 2 1t h e a r c h i t e c t u r eo fm d b s 软件层负责集成多数据库管理系统( m d b m s ) 。这个过程是指数据库的集成。 数据库集成包括一些程序,通过它们,加入系统的数据库信息可以在概念地集成成 为单个一致定义的m d b m s 。换种说法,这个过程是设计一个全局的概念模式。这样。 通过全局模式、处理和至q 本地数据模式的转换,查询可以公式化,并且本地模式对于用 户是透明的。 数据库集成可能发生在两个完全不回的模式中,比如,网络模式和关系模式( 仍然极 端重要。基于网络模型,在已有模式占极大的份额) 其它重要的数据库集成发生在关系和面向对象模型。数据库集成的实质是:数据库 集成= 转换和模式集成。数据库集成通常通过两个步骤:模式转换( 或者简单的转换) 和模 式集成口”。 2 3 2 1 模式转换 模式转换是指有份参与系统的本地模式转换成一个通用的中间规范表示。比如:如 果使用网络模式和关系模式,那么应该选择一个中间数据模式,如果选择的是关系模式, 那么网络模式中公式化的数据库模式会转换成基于关系模型的一种模式。 当然,当涉及不f 可的数据模型模式时候,模式转换才是必须的。模式转换的任务是 把一个模式映射成另一种;要全为局概念模式指定一种目标数据模型;一些罕用的方法 把转换和集成步骤合在一起,但这增加了这个过程的复杂性1 3 1 , 【6 】- ”。 第二章多数据库技术 2 3 2 2 模式集成 模式集成把每个中间模式集成成为一个全局概念模式。所有中间模式基于相同的数 据模型目标模型,也就是全局概念模式的数据模型。 基于目标模型,所有本地模式转换成中间模式。模式集成的任务现在是产生全局概 念模式( c g s ) ,这是m d b m s 的用户所需要的。 模式集成综述: 1 预集成:确定关键字和定义二进制处理过程的顺序 ( 1 ) 建立起集成过程的规则,比如选择一种集成方法,然后选择模式集成的顺序 ( 比如,那种中间模式和那一种先集成) 。 ( 2 ) 确定候选关键字。在所有中间模式中,每个实体的关键字都要确定。 ( 3 ) 检测属性潜在的相同域名,确定在两个域间转换的规则( 比如,一种模式用摄 氏温度定义了t e m p e r a t u r e 属性,另一个用的是华士温度,那么在不同域种的 转换规则应该为进一步集成而预先准备) 。 2 比较:鉴定命名和结构冲突 ( 1 ) 比较步骤检测命名冲突,模式和结构冲突间的关系。 ( 2 ) 命名冲突要么是异名同构或者同名异构的问题。 两个完全相同的实体,有不同的名字,是异名同构;不同的实体,有相同 的名字,是同名异构。 例如:e n g i n e e r 和e 是异构同名的,但是他们都是指向同一个e n g i n e e r 实体。而网络模型中同用e n g i n e e r 的两个实体,一个是指e m p l o y e e ,另一个 指的是e n g i n e e r ,这就是同名异构。 3 构造:解析命名和结构冲突 ( 1 ) 模式间的关系 基于异名同构的含义,确定关系。模式间的关系有以下四种可能性: 同等;其中一个是另一个的子集;来自一些实体的组件也出现在另一些实体; 完全没有交集。 ( 2 ) 结构冲突 类型冲突:如果同一个对象在中间模式中用一种属性来表述,同时被另 一个实体表述成另一种模式。 依赖冲突:这种冲突出现在,在不同模式中,使用不同的关系模式( 比 如一对一,多对多) 来描述同样事物。 关键字冲突:当不同的候选键都可用,并且在不同得模式中选用不同的 主健。 行为冲突:隐含在建立模型的步骤中。比如,在e m p l o y e e 记录中检测 华南理工大学硕士学位论文 最后一个e m p l o y e e ,可能会产生一个空的实体d e p a r t m e n t 。 ( 3 ) 构造要消除在比较步骤中测定的冲突。 消除命名冲突:通过重命名消除命名冲突。在异构同名的情况中,等同 的实体或者属性,需要和实体的名字以及它所属的模式的名字一起扩充。 消除结构冲突:通过转换实体,属性或者它们之间的关系消除结构冲突。 解决结构冲突意味着重构一些模式以消除冲突:属性、实体:通过重建中间 关系,连接新实体和表述它的新属性,一个非健属性可以转换成一个实体: 注释:实体的健属性所需要的追加步骤 消除依赖冲突:通过选择最通用的关系来解决。 4 重构与合并:把不同的中间模式合并成全局概念模式( g c s ) ( 1 ) 所有修正的和没有冲突的模式必须首先合并成一个单独的数据库模式,其次 重柯来创建一个“最好”的模式。 ( 2 ) 合并是遵循在预集成步骤中设定的顺序。合并需要完善,比如,所有中间模 式的元件应该在合并后的模式中出现。 ( 3 ) 搜索到最小关系后,进行重构,这样冗余的关系就可以消除。 5 必须与集成机交互作用 最终,模式重组成更容易理解的形式。这个过程很大程度上是自主的,并且 这个机制忽视所有类型的易懂性,这对于集成机重建和扩充一些关系是必需的, 这样用户可以理解这个模式并规划正确的查询1 3 m 6 1 川删1 9 1 【l o 】。 2 3 3 多数据库中的查询处理 m d b s 中的查询处理主要包括查询分解、查询变换和全局优化三部分。在m d b s 中,用户可以根据全局数据模式用全局查询语言对多个结构不同的l d b 同时进行查询。 一个全局查询一般要经过3 个步骤: 1 把全局查询分解成多个子查询,每一个子查询对应一个l d b 中的数据。分解后 的子查询仍是全局查询语言表示的。 2 每一个子查询都转换成相应的l d b 的本地查询语言并传到相应的l d b 中执行。 3 子查询的结果返回并组合成最终的查询结果。 一个全局查询首先被查询分解器分解成两类查询,一类是相应于每一个l d b 模式 的子查询,称为输出模式子查询;另一类是把各个子查询结果合并成输出结果的查询语 句,称为后查询处理概貌图处理查询。 通过查询分解以后,每个子查询只对应一个l d b ,但子查询的查询语言还是全局查 询语言。如果全局查询语言和l d b 的本地查询语言不同,还要通过查询转换把全局查 询语言变换成本地查询语言3 】 9 1 【1 0 1 u 1 m ”1 。 第二章多数据库技术 2 3 4 多数据库中的事务处理 一个m d b s 是建立在多个l d b 之上的,其中的每一个l d b 都具有自治性,由一 个本地的d b m s 来管理,它的局部事务不为m d b s 所知,因此在m d b s 中保持事务的 一致性和原予性是非常困难的。 m d b s 中事务管理的主要问题就是l d b 的自治性,也就是一个l d b 的d b m s 是 否允许和在什么程度上允许m d b s 共享它的控制信息。l d b 的自治性有不同的定义方 法,自治程度抬高会导致m d b s 的全局数据一致性出现问题;自治性的程度太低则不 能满足l d b 不受m d b s 控制的要求。 定义下下3 中自治,分别对应一种数据互操作: 1 设计自治。m d b s 不能对l d b 的d b m s 进行任何改动,这是l d b 自治性的最 低要求。 2 执行自治。l d b 的d b m s 对本地执行的事务有完全的控制权,包括d b m s 可以 不受m d b s 控制地提交或退出一个事务,即使这个事务是全局事务的子事务也 不例外。 3 通信自治。不同l d b 的d b m s 之间不能进行通信合作。这使得一个l d b 不能 与其它l d b 或m d b s 共享控制信息。 一般情况下,l d b 的自治程度越高,多库系统中保持全局数据一致性就困难。m d b s 对l d b 数据的存取操作是通过事务处理来完成的。m d b s 中支持两类事务: 1 局部事务:l d b 的本地事务,由l d b 自己的d b m s 完成,只存取本地数据, 不在m d b s 的控制之下且不为m d b s 所知。 2 全局事务:在m d b s 的控制之下完成。一个全局事务可以分解为若干子事务, 每一个事务只需存取一个l d b 中的数据,在l d b 的d b m s 的控胄4 之下作为 个局部事务完成。因此在一个l d b 中有两类事务:一类是不为m d b s 所知的局 部事务;另一类是m d b s 交予l d b 执行的全局子事务。 l d b 的d b m s 有一套控制事务执行的方法,以保证在该l d b 上执行的事务的a c i d 特性( 原子性、一致性、独立性和持久性) ,因此在m d b s 中,全局事务的子事务的a c i d 特性是由l d b 上的d b m s 来保证的。由于全局事务本身也是一个事务,也要保证它的 a c i d 特性,因此在m d b s 中还有一个全局事务管理器,用以控制全局事务的并发执行, 保证全局事务的a c i d 特性。m d b s 中的事务管理的主要问题就是l d b 的自治性,也 就是一个l d b 的d b m s 是否允许和在什么程度上允许m d b s 共享它的控制信息。l d b 的自治性有不同的定义方法,若自治性程度太高会导致m d b s 的全局数据一致性出现 问题;而若自治性的程度太低则不能满足l d b 不受m d b s 控制的要求。一般情况下, l d b 的自治程度越高,m d b s 保持全局数据一致性就越困难。以保证全局事务的原子 华南理工大学硕士学位论文 性为例,在阿构的分布式系统中,原子性一般都有两段提交协议来保证( 2 p c ) ,两段提 交协议要求每一个l d b 都有预提交指令,若m d b s 中也采用2 p c 协议,则l d b 不能 自主决定提交事务,从而损失了一定程度的自治性。因此,m d b s 中的事务管理的主要 目的就是在保持l d b 自治性的前提下,尽量保证全局事务的a c i d 特性,且应该有避 免全局死锁的算法及处理各种系统错误的方法【3 】【1 4 m 1 5 】【1 6 l 舯7 8 m 1 9 】1 2 0 1 。 2 4 多数据库研究进展 2 4 1 互操作问题的解决方法 过去3 0 年中,过去文件系统、层次网络系统、关系数据库、面向对象数据库等作为 数据管理平台都曾广泛使用。不同的数据管理系统有不同的数据模式和查询语言,用户 不可能使用一个数据库那样使用多个具有不同结构的数据管理系统,这就可能涉及到不 同种类的数据管理系统,因此,我们面临着解决不同种类的数据管理系统之间的互操作 问题。解决这种互操作问题有多种方法: 2 4 1 1 数据转换和移植 把一个数据管理系统中的所有数据都转换和移植到另一个数据管理系统之中。当应 用只需要把一个数据管理系统中的所有数据移植到另一个数据管理系统中,以备以后读 取时用,或是要用一个数据管理系统完全特待另一个数据管理系统时,这中方法是可行 的。 这种方法存在着两个严重的问题: 1 一是用这种方法把系统a 中的数据转换为系统b 中的数据后。仅使得a 中的数 据对b 为可见的,但在很多情况下应用系统系统b 能感知到系统a 中数据的改变,且 系统b 的执行结过可能还要改变系统a 中的数据,在这种移植转换方法中很难实现这 种逆转换。 2 另一个问题是如果用数据管理系统b 完全替代数据管理系统a ,即把系统a 中 的数据转换到系统b 中以后不再使用系统a ,则系统a 上原有的应用程序如何转换成 在系统b 上能运行的应用程序也是一个难于解决的问题1 3 1 5 ,1 6 。 2 4 1 2 信关 另一种方法是在一对数据管理系统中设计一个成为信关的中介器。 信关的概念是什么呢,在计算机网络中,可以用信关连接使用不同协议的网络,以 1 2 - 第二章多数据库技术 实现异种网络的互通。其中信关起着一种协议转换作用。数据库中的信关( g a t e w a y ) 借用 了这个概念,数据库信关允许一个本地d b m s 用户访问另一个相同或不同平台上的 d b m s ,用户不必知道数据库所使用的存取机制。所以,数据库信关实际上相当于界面 转换器。 数据库信关的逻辑成分包含两部分:( 1 ) 客户a p i 库客户利用它向服务器提交远程 数据请求,并处理服务器的响应。( 2 ) 服务器a p i 库是客户a p i 库的镜像。客户a p i 的 子例程发出请求,而服务器a p i 库的子例程则产生对应于这些请求的事件,同时利用它 返回结果。 一般信关提供良好的界面和不同的数据源相连,前端提供s q l 语句的接口但是不 能解决数据库位置的透明性的问题。必须在每个数据库上安装一个这样的转换,数据的 格式可以通过这样的转换,从一个数据库到达另外一个数据库。例如,系统a 与系统b 之间的信关可以把系统a 的语言写的查询语言转换为对等的用系统b 的语言写的查询 语句,并把转换后的语句交予系统b 执行。但这样造成信关太多。结构复杂。很明显, 在特别复杂的多数据库的环境中并不适用。 所以这种信关也存在着严重的问题: 1 一个问题是系统的a 与系统b 之间的信关仅仅是查询语言的转换器信关不支 持事务管理。 2 另一个问题是信关对不同系统之间的不同数据结构及表示无能为力0 1 。 2 4 2 多数据库系统( m d b s :m u l t i d a t a b a s es y s t e m s ) 目前,应用最广泛也是最成功的解决异构数据库互操作问题的方法就是多数据 库系统( m d b s ) 。m d b 是在已经存在的数据库或文件系统( 称为局部数据库:l d b ,l o c a l d a t a b a s e ) 之上为用户提供一个统一的存取数据的环境。一个m d b s 是由一组独立发展 起来的l d b 组成,并在这些l d b 之上为用户建立一个统一的存取数据的层次,使得用 户像使用一个统一的数据库系统一样使用m d b s 与多数据库应用相比,对多数据库的理论研究,目前国内外处于滞后状态,特别是 对多数据库的规范化访问的研究就更少,使得应用开发处于无规范的初级阶段,所用方 法大多为就事论事的权宜之计,尚未展开针对面向标准化、规范化的方法的研究,也没 有上升到中间件的解决路线。下面就一些常见的处理方法做一概述。 1 直接数据库访问接口:直接在应用程序中,通过一些数据库访问标准接

温馨提示

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

评论

0/150

提交评论