(系统工程专业论文)三层体系结构的分布式数据库设计与Java应用.pdf_第1页
(系统工程专业论文)三层体系结构的分布式数据库设计与Java应用.pdf_第2页
(系统工程专业论文)三层体系结构的分布式数据库设计与Java应用.pdf_第3页
(系统工程专业论文)三层体系结构的分布式数据库设计与Java应用.pdf_第4页
(系统工程专业论文)三层体系结构的分布式数据库设计与Java应用.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 我们没能见识到蒸汽机时代,也没能见识到电的发明给工业带来的翻天覆地 的变化。不过,我们却很幸运的赶上了计算机时代,并且继续迈向信息时代。我 们在尽情的享受信息给我们带来的好处和欢乐的同时,也不能忘记自己应该为信 息技术尽一份绵薄之力。 信息在很大程度上依赖软件来发挥它的巨大作用。计算机的文件系统和数据 库系统以及各种各样的应用程序都担当了重要的角色。特别是数据库管理系统, 它广泛应用于公司企业、政府部门,越来越多的机构和部门会采用数据库来保存 数据。保守估计现在的企业有 7 0 %的商业数据会存储在数据库中。 信息往往是分布的。 一个地方存储的信息也许暂时可以满足部分用户的需要, 但是当有更多的用户需要使用信息时,信息就可能需要到其他的地方去获取。而 不同地点的信息如何传送、如何有效共享都是值得研究的。这就是本文对分布式 数据库进行研究的目的所在。 在数据层面对分布式数据库的研究也许是不够的。 应用也许是用户更需要的, 也就是说用户对原始数据也许不是很关心,但是对于应用程序处理后的数据非常 敏感。这样就必须对建筑在分布式数据库系统之上的应用作研究。传统的两层结 构在信息和用户不充分的情况下很好的满足了我们的要求,但是随着信息的不断 增多、数据库的不断增多以及用户数量的不断上升,这些情况的变化都使得 c l i e n t/ s e r v e r结构的应用难以应对。因此对于三层体系结构的期待也就不言而喻 了,三层结构并不比两层结构复杂多少,甚至可以说三层结构其中就包含两层结 构,但是它的可用性和灵活性以及集成性都非常的好。因此对于三层结构的研究 也是很有必要的。 最后我们研究j a v a , j a v a 是一门非常优秀的程序设计语言。当然,j a v a 决不 仅仅只是一门供我们使用的语言。j a v a 语言的可移植性,对于网络应用、数据库 应用以及分布式计算的良好支持都给我们在实际的开发中带来诸多的帮助。当然 除了j a v a ,我们也可以有其他的选择。 最后本文设计了一个简单的三层结构的分布式数据库系统,并且实现了一些 简单的分布式事务,对于更为深入研究三层结构的分布式数据库系统有一定指导 意义。 关键词三层体系结构; 分布式数据库; j a v a 华南理工大学硕十学位论文 ab s t r a c t we d i d n t e x p e r i e n c e t h e p a s t p e r i o d o f s t e a m e r , a l s o w e d i d n t s e e t h e w o r l d - s h a k i n g s c e n e o f i n d u s t r y t o w h i c h e l e c t r i c p o w e r b r o u g h t . h o w e v e r , w e r e l u c k y t o m e e t t h e c o mp u t e r c e n t u r y , a n d g o f o r w a r d t o i n f o r m a t i o n c e n t u r y . we s h o u l d c o n t r i b u t e t o i n f o r m a t i o n t e c h n o l o g y w h i l e w e a r e e n j o y i n g t h e a d v a n t a g e a n d e n t e r t a i n m e n t o f i n f o r ma t i o n . i n f o r m a t i o n e x p o s e s i t s g r e a t p o w e r t h r o u g h t h e s o f t w a r e o n w h i c h i t r e l i e s . t h e c o m p u t e r s o f t w a r e , s u c h a s f i l e s y s t e m , d a t a b a s e ma n a g e m e n t s y s t e m , a n d e t c , p l a y a n i m p o r t r o l e i n i n f o r m a t i o n t e c h n o l o g y . d b ms , i n p a r t i c u l a r l y , i s g e n e r a l l y a p p l i e d i n c o m p a n y , g o v e r n m e n t . mo r e a n d m o r e o r g a n i z a t i o n w i l l s t o r e t h e i r b u s i n e s s d a t a i n d b ms . a t a p r e s e r v e d e s t i m a t e , 7 0 p e r c e n t o f b u s i n e s s d a t a i s s t o r e d i n d b ms . i n f o r m a t i o n i s u s u a l l y d i s t r i b u t e d . t h e i n f o r m a t i o n s t o r e d i n o n e s i t e m a y t e m p o r a r i l y s u p p o r t a f e w p e o p l e i n t h a t s i t e e f f e c t i v e l y . wh e n t h e n u m b e r o f u s e r i n c r e a s e s , t h e i n f o r m a t i o n i n t h a t s i t e m a y n o t b e e n o u g h , t h a t s i t e n e e d t o g a i n t h e i n f o r m a t i o n f r o m o t h e r s i t e s . h o w t o t r a n s f e r a n d s h a r e i n f o r m a t i o n a m o n g d i f f e r e n t s i t e s i s o u r s t u d y t o p i c . i t a l s o i s t h e g o a l o f d o i n g r e s e a r c h i n t h e d i s t r i b u t e d d a t a b a s e . i t m a y n o t b e e n o u g h t o s t u d y t h e d i s t r i b u t e d d a t a b a s e f o r m t h e v i e w o f d a t a l a y e r u s e r t a k e s m o r e a t t e n t i o n o n a p p l i c a t i o n b e c a u s e u s e r i s m o r e s e n s i t i v e w i t h d a t a h a n d l e d b y a p p l i c a t i o n t h a n o r i g i n a l d a t a . s o , w e n e e d t o s t u d y t h e a p p l i c a t i o n a r c h i t e c t e d o n d i s t r i b u t e d d a t a b a s e s y s t e m . t r a d i t i o n a l c i s a r c h i t e c t u r e c a n s a t i s f y o u r r e q u e s t w h e n t h e u s e r a n d i n f o r m a t i o n i s l i t t l e . a s t h e i n f o r m a t i o n , d a t a b a s e , u s e r s i n c r e a s e , t h e t w o - t i e r a r c h i t e c t u r e c a n t d e a l w i t h t h e c h a n g i n g s i t u a t i o n . t h e t h r e e t i e r a r c h i t e c t u r e i s e x p e c t e d t o a p e r f e c t s o l u t i o n t o s o l v e t h e p r o b l e m s w h i c h t w o t i e r a r c h i t e c t u r e f a c e . t h r e e - t i e r a r c h i t e c t u r e i s a l i t t l e m o r e c o m p l e x t h a n t w o t i e r a r c h i t e c t u r e . ma y b e y o u c a n t h i n k t h r e e - t i e r a r c h i t e c t u r e e x t e n d s t w o - t i e r a r c h i t e c t u r e , b u t i t s m o r e f l e x i b l e a n d i n t e g r a t e d . s o , i t s n e c e s s a r y t o s t u d y t h e t h r e e t i e r a r c h i t e c t u r e a t l a s t , w e n e e d t o s t u d y j a v a . j a v a i s a n e x c e l l e n t c o m p u t e r p r o g r a m m i n g l a n g u a g e . 1 1 ab s t r a c t o f c o u r s e , j a v a i s n o t o n l y a l a n g u a g e w e u s e . i t c a n h e l p n e t w o r k a n d d a t a b a s e e a s i l y a n d q u i c k l y . o f c o u r s e e x c e p t f o r j a v a a s o u r t o o l . w e u s t o d e v e l o p a p p l i c a t i o n o n c a n c h o o s e o t h e r l a n g u a g e i n t h e l a s t p a r t o f t h i s a r t i c l e , a s i m p l e t h r e e - t i e r a r c h i t e c t u r e s y s t e m w h i c h c o n t a i n s d i s t r i b u t e d d a t a b a s e i s d e s i g n e d a n d a s i m p l e d i s t r i b u t e d t r a n s a c t i o n c a n b e p r o c e s s e d i n t h i s s y s t e m. ke y wo r d s t h r e e - t i e r a r c h i t e c t u r e ; d i s t r i b u t e d d a t a b a s e ; j a v a t o 华南理工大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研 究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文 不包含任何其他个人或集体己经发表或撰写的成果作品。对本文的研 究做出重要贡献的个人和集体,均己在文中以明确方式标明。本人完 全意识到本声明的法律后果由本人承担。 作 者 签 名 :玉丈 斌、日 期 : , 毕 年 月 二 ! 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权华南理工大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 保密口,在_年解密后适用本授权书。 本学位论文属于 不保密do ( 请在以上相应方框内打 “了” ) 作 者 签 名 :i - 丈访 丈日 期 : , * 年“ 月 叫日 导师签名 : -11 日 期 : o 针 年 a l? 日 第一章绪论 第一章绪论 1 . 1 研究课题的学术背景 信息技术的发展日新月异,我们的工作生活方式和十年前相比己经发生了巨 大的变化。当然这不仅仅是信息技术的功劳,这还要归功于计算机硬件的逐渐普 及和性能的不断提升,以及网络环境越来越好。 纵观企业、政府和学校,信息技术都给他们带来了经济和管理上的益处。而 谈到信息技术,数据库无疑或多或少是要涉及到。c l i e n t / s e r v e ;两层体系结构在 数据库应用中己经非常的广泛,技术也十分成熟,但是当面对越来越多的用户, 越来越复杂的分布式环境,两层体系结构己经显得力不从心。而三层体系结构给 数据库应用、分布式应用都带来了无穷的动力和希望。j a v a ,是一门语言,也是 一种平台,用它来实现三层体系结构的应用被认为是再合适不过的了。 1 . 1 . 1 分布式数据库系统的产生 分布式数据库系统 ( d i s t r i b u t e d d a t a b a s e s y s t e m ,简称d d b s )的研究始于 2 0世纪 7 0年代中期。由于企业规模的扩张、业务的扩展,导致对数据库应用需 求的不断提高。随着计算机硬件环境,特别是网络技术的发展,使分布式数据库 系统应运而生,并成为计算机技术最活跃的研究领域之一。国际上每年都召开专 门会议,研究探讨分布式数据库系统的各类问题及其解决方案。英国国家计算中 心( n a t i o n a l c o m p u t i n g c e n t e r ) 专门 对分布式数据库系统作了分析和预测, 断言: “ 分布式系统,特别是以分布式数据库为核心的系统,将成为今后计算机科学发 展的主要方向之一”【, 。 由干分布式数据库系统符合当今信息系统应用的需求,符合当今企业组织的 管理思想和管理方式,尤其是那些地域上分散而管理上又相对集中的大机构、大 公司、大集团,如全球性的或全国性的公司、银行、连锁店、保险业、各类交通 运输业,以及全国性的人、财、资源、环境管理机构和军事国防部门等等。在这 些组织中,分散在各地的部门往往独立于其他部门而进行单独的控制和管理,但 同时整个机构要对各个部门能够实施全局控制和统一协同管理。这种协同管理要 求各部门之间的信息既能灵活交流和共享,又能统一管理和使用。而且,随着应 用需求的扩大和要求的提高,人们越来越认识到集中式数据库的局限性,迫切需 华南理工大学硕士学位论文 要把这些子部门的信息通过网络连接起来,组成一个分布式数据库 一个既有各部门独立处理又适合全局范围应用的分布式数据库系统。 或重新建立 1 . 1 . 2 分布式数据库系统的发展 分布式数据库系统是数据库系统和计算机网络两种技术相结合的产物。世界 上第一个分布式数据库系统s d d - 1 ( s y s t e m o f d i s t r i b u t e d d a t a b a s e )是由 美国计 算机公司 ( c c a)于 1 9 7 6 年至 1 9 7 8 年设计,并与 1 9 7 9 年在 d e c - 1 0和 d e c - 2 0 计算机上实现。 2 0世纪 8 0年代,分布式数据库系统进入成长阶段。一方面因为计算机功能 逐渐增强而成本不断下降,使得各行各业都购置了计算机,从而有利于数据的分 散处理;另一方面也因为计算机网络技术的发展,降低了数据传输的费用。特别 是小型计算机和超级小型计算机的出现和计算机局域网的广泛应用,为分布式数 据库系统的研制和实现提供了必要的条件。事实上,无论是军事上还是民用上, 分布式数据库技术研究都有着深刻的应用背景。因此,各国在d d b s上都投入了 大量的人力、财力和物力,美国、西欧、日本等相继提出规模宏大的d d b s 研制 计划,例如: . 德国的斯图加特大学研制的p o r e l系统,历时 1 1 年,投资4 5 0 万马克。 . 美国 i b m 公司的 s a n j o s e 研究室研制的r * ( r * = r , r r , r r r ,表 示任意数目的r )和s y s t e m r e . 美国加州大学b e r k e l e y 分校研制的i n g r e s 和荷兰阿姆斯特丹大学研制 的扩展i n g r e s ,在u n i x / p d p机上实现。 . 法国 i n r i a 研制的 s i r i u s - d e l t a 系统和 i ma g 研究中心研制的 mi c r o b e系统。 我国对分布式数据库系统的研究大约在 2 0 世纪8 0 年代初期开始,一些科研 单位和高等学校先后建立和实现了几个各具特色的分布式数据库系统。如由中国 科学院数学研究所设计,该所和上海科学技术大学、华东师范大学合作实现的 c - p r o e l ,武汉大学研制的 wd d b s和 wo o d d b s ,东北大学研制的 d mu / f o 系统等等。他们的工作对我国分布式数据库技术的理论研究和应用开发起到了积 极的推动作用。 1 . 1 . 3 c l i e n t / s e r v e r 两层体系结构 两层体系结构是指大家非常熟悉的客户机/ 服务器结构。客户机/ 服务器 ( c l i e n t / s e r v e r ) 这个词汇最早在 2 0 世纪 8 0年代, 用来表示在一个网络中不同计 第一章绪论 算机之间的角色关系。 直到 8 0 年代末期, 客户机/ 服务器模型才真正被世人接受。 这里主要是指客户机/ 服务器的软件体系结构, 此结构描述的是两个程序之间的关 系,即提出请求的那个应用程序被称为客户机,另一个响应客户请求的应用程序 被称为服务器。 客户机朋 及 务器软件体系结构常常被称为c / s或两层软件体系结构。c / s软件 体系结构是一个功能强大的、以消息为基础的、模块化的结构,这个结构和大型 机上集中式的分时共享计算比较而言,可以提高可用性、灵活性、交互性和可测 量性。 服务的请求者就是客户机,而服务的提供者就是服务器。如果客户机程序和 服务器程序同在一台机器上,那么这台机器既是客户机又是服务器。 以数据库管理系统 ( d b ms )作为服务器的两层体系结构应用已相当广泛, 而大型机和文件服务器的时代离我们越来越远。在两层体系结构中,用户界面通 常位于用户的桌面环境,而数据库管理服务通常位于一个功能强大能服务于很多 客户的计算机主机中。 在一个局域网的工作组中, 如果有0 - 1 0 0 个人的时候, 客 户机/ 服务器的两层体系结构是分布式计算的一种非常理想的方案。 但是,当用户 数量增至 1 0 0人以上时,性能开始变得糟糕起来。这个限制是由于服务器和每个 用户保持一种持续性 ( k e e p - a l i v e ) 的连接所造成的, 即用户和服务器的连接不管 用户是否发送请求都保持连接。第二个限制就是,在两层结构上开发的应用程序 可维护性和可移植性都比较差。可维护性差是因为如果数据库服务器端进行了改 变,或者业务逻辑发生了变化,则所有在客户端安装的软件都需要更改,这给管 理和维护人员带来很大的麻烦幻 。可移植性是因为客户机程序在访问数据库时必 须采用数据库专有的接口,而每种数据库的接口又不尽相同,因此当需要更换使 用其他的数据库时,客户机程序必须做出相应的改动,否则无法访问数据库。 1 . 1 .4 三层软件体系结构 三层软件体系结构的出现正好可以解决二层结构面临的困境。在三层体系结 构中,一个 “ 中间层”被添加到了客户层和服务器层之间,中间层可以有多种实 现的方法,如事务处理监控器、消息服务器、we b服务器、应用服务器等。中间 层可以实施队列管理、程序执行、数据库访问等操作。比方说队列管理,客户端 把请求递交给中间层后,中间层将对请求排序并开始向数据库发出请求并把数据 库返回的结果再传递回客户端。此外,中间层可以对队列安排计划和设置客户端 的优先级。 传统的c / s结构是基于 “ 肥客户机”下的两层结构应用软件,客户端软件一 般由应用程序及相应的数据库连接程序组成,服务器软件一般是某种数据库管理 华南理工大学硕士学位论文 系统。前面提到它面临一个问题是系统的可维护性和可移植性都比较差,主要是 应用程序主要集中在客户端,因此要管理维护和升级客户端的软件是一件很麻烦 的事情,而三层体系结构采用 “ 瘦客户机”的形式,客户端需要很少的软件,甚 至在基于w e b 服务器的三层结构中,客户端只需要浏览器就可以了,不需要安装 任何其他的软件。而业务逻辑和应用程序集中放置在中间层服务器上就可以了。 这样在中间层做的修改,所有的客户端马上便可以使用新的应用程序。 在实际的应用过程中,中间层部件通常可以分为两个或两个以上的层次,因 此这样的模型也可以被称为多层或n层体系结构, 本论文主要涉及三层体系结构。 由于中间层次复杂多变,因此三层结构通常比c / s结构要复杂,但是更适合于多 用户的分布式计算环境。 1 . 1 . 5 j a v a 与三层体系分布式数据库应用的完美结合 j a v a 中文翻译为爪哇, j a v a 原本其实是印度尼西亚的一个岛国, 盛产咖啡豆, 而且 j a v a 的咖啡豆是非常有名的。我想大多数人恐怕并不知道j a v a 的原始含义, 只知道 j a v a是一门计算机程序语言。料想 j a v a之父就是因为喝了桌上摆放的爪 哇咖啡,由此产生灵感给他发明的语言也起名为j a v a 。因此 j a v a 语言就这样诞生 了。 j a v a 最初用于开发电视机的机顶盒程序,没有获得成功。后来转而开发了一 个w e b 浏览器, 因为在浏览器中嵌入a p p l e t 程序可以 展示生动的小动画, 而使j a v a 引起了不小的轰动, j a v a 也从此开始踏入了它的辉煌之旅。 也许看了上面的描述,你觉得j a v a 可能是一个好玩的东西。不但如此,如今 的 j a v a ,功能变得非常之强大,几乎在计算机的各个领域都有用武之地。特别是 在开发与网络、数据库、分布式计算有关的应用中更是难有对手匹敌。在国内, j a v a 的开发不是很多见, 但是在国外已经相当的普及。 以j a v a 为核心而衍生的j s p 技术在国外的电子商务中已经成为无可厚非的首选。j a v a 在服务器端的程序开发 也占据了绝对主流。因此无论中间层是采用w e b 服务器、消息服务器、还是应用 服务器,j a v a 都可以很好的帮我们实现三层体系结构的应用程序开发。 j a v a确实非常强大,内容也十分丰富,但是使用 j a v a并不困难,如果用过 c 十 十 语言,你会发现j a v a 简单多了。j a v a 开发数据库应用程序非常简单快速。并 且有了j d b c和 j n d i 等标准接口,开发出来的数据库程序有优良的可用性、可 靠性、可维护性和可移植性。和j a v a 相关的大家可能最熟悉的口号 “ w r i t e o n c e . r u n a n y w h e r e( 编写一次,随处运行) ”和 “ n e t w o r k i s c o m p u t e r ( 网络就是计算 机) ” ,这些口号都给整个世界带来了技术和概念上的革新,而且正在变为现实。 第一章绪论 1 . 2 理论及实际意义 为什么要研究分布式数据库、三层体系结构、以及j a v a 在三层结构的分布式 数据库系统中的应用呢?是不是因为这些方面的研究比较热门,而我只不过是凑 个热闹。这方面的原因肯定是有的,这些领域比较热门自然有它的原因,现实社 会的需求便是我们研究的动力。因此,对于上述所讲的研究,本文并不会只局限 于理论上的探讨,还会做一些实际的应用。 对分布式数据库进行研究,可以更好的满足政府、企业、大型机构组织对于 分布式信息共享、处理以及管理上的需要。越来越多的数据分散在各个地方,如 果要把这些数据集中起来统一管理,即使可以做到,但是在时间上和效率上不是 一个可行的办法。对于分布式数据库的研究显得也比较迫切,也可以说是信息化 建设当中比较重要且比较困难的部分。 在计算机的发展过程中,软件体系结构 ( 或者说计算模式)在不断的发生变 化。 集中主机运算模式在各个阶段都起了非常重要的作用。目前, 很多关键运算, 例如,银行核心业务、航空订票等还必须依靠主机的高可靠性来维持关键任务的 不间断运作。但以廉价的p c机为代表的分布式客户机/ 服务器计算模式带来了比 集中式主机更多的好处,因此发展十分的快速,应用十分普及。但是随着企业规 模不断扩大,发现分散运算的企业服务器数量达到令人吃惊的地步,由此带来的 复杂的管理模式,运算运营成本的失控,关键应用无法实现,各个子系统之间互 不往来都给企业发展产生了障碍。幸运的是,三层体系结构出现了,它成了企业 的救命稻草。中国电信,是中国发展最迅速的企业之一,在快速发展以及市场竞 争之下,明确倡导利用三层体系结构来实现本地电信业务计费帐务系统。 j a v a 在国外很流行,这是事实。在国内,j a v a 也很快会流行起来。我们研究 j a v a当然不能只因为流行。j a v a 是一门非常优秀的计算机程序设计语言,很适合 做各种应用,特别是和网络、w e b 、数据库、分布式相关的应用,更是拿手好戏。 当然 j a v a 也不是万能的, 在客户端的用户界面、 对运行速度要求非常苛刻的情况 下, j a v a 不是太适合。 1 . 3 主要研究内容 前面已经讲述, 本文将对分布式数据库、 三层体系结构以及j a v a 在三层结构 的分布式数据中的库应用这三个部分进行研究,因此本文计划分成下面几个部分 逐一讲述: . 分布式数据库系统概述 华南理工大学硕士学位论文 分布式数据库系统的架构与设计 分布式查询和事务管理 三层体系结构的研究 j a v a 开发数据库应用 系统的设计与实现 结论 : 第二章分布式数据库系统概述 第二章分布式数据库系统概述 引言 分布式数据库和两个方面的技术是密切相关的:数据库技术和网络技术。数 据库对数据进行集中统一的管理,因此应用程序在处理数据时可以保证数据的一 致性和完整性,并且可以有效的减少数据冗余。而网络技术使得数据被分散到各 处,这似乎和数据库系统集中管理数据的宗旨背道而驰。看上去似乎存在冲突的 两种技术,综合起来却可以成为比两种单独的技术更为强大的技术,这让人一下 子明白不过来。 要理解这个困惑的关键在于:数据库最首要的目标是集成而不是集中化。不 要简单的认为集成就是集中化, 而集中化就是集成。 没有集中化也可以实现集成, 而这就是分布式数据库技术想获得的目的。 2 . 1 分布式数据处理 分布式处理 ( 或者叫分布式计算)可能是最近十多年来在计算机科学领域中 使用最为频繁的词汇之一,因此也导致此词汇被滥用。分布式处理就曾在这些不 同的领域里被使用过:多处理器系统,分布式数据处理和计算机网络。这个词汇 被人们滥用以致有人戏称分布式处理为“ 正在寻找定义和名称的一个概念” 。 这样 的状况确实会给我们带来很多不便,以致我们无法准确的理解分布式处理。 本文也不打算给分布式处理下一个精确定义,而是为了引出分布式数据库系 统概念的需要,对分布式处理做一些描述。 首先,何为分布式? 分布式大概会有以下几种方式:一、处理逻辑的分布式,在分布式计算系统 中处理逻辑和处理元素是分布式的;二、功能的分布式,一个计算机系统的不同 功能可能被分解到不同的硬件和软件上;三、数据的分布式,各种应用程序要使 用的数据可能被分散到各处;四、控制的分布式,控制不同任务的执行被分散管 理而不是由一个计算机系统集中管理。 其次,为何要分布式? 分布式处理可以很好符合当今企业在组织结构上广泛分布的需要,并且分布 式系统更加可靠,响应也更加快速。更重要的是,如今许多计算机应用天生本就 华南理工大学硕士学位论文 应该是分布式的, 而不能是集中式的。 i n t e r n e t 上的电子商务,像新闻选购或医学 成像这样的媒体应用,制造业控制系统等都是分布式的应用【3 , 。 不管如何,分布式确实能帮助我们解决许多大型复杂的问题,就如同使用变 化的划分一征服 ( d i v i d e - a n d - c o n q u e r )规则来解决问题一样。假如支持分布式处 理的必要软件可以开发出来,那么只要把问题划分成更小的模块,并把这些问题 交给不同的软件组来完成就可以简单的解决分布式处理问题了。 采取这样的方法在经济上有两个基本的好处。一、分布式计算通过优化控制 让多个处理器同时工作,来实现一种让尽可能多的计算机发挥其作用的经济的方 法,这个需要分布式处理和并行处理。二、由小型计算机的组合来解决问题,这 样可以降低软件开发成本, 大家知道硬件的价格一直在下降而软件却一直在涨价。 2 . 2 什么是分布式数据库系统 我们简单的定义分布式数据库 ( d i s t r i b u t e d d a t a b a s e s y s t e m )为分布在计算 机网络上多个逻辑相关的数据库。分布式数据库管理系统 ( d i s t r i b u t e d d b ms ) 是 对分布式数据库进行管理的软件系统并且使数据的分布对于用户是透明的。逻辑 相关和分布在计算机网络上是分布式数据库系统的两大特性。本文会采用 d d b s 简写代表分布式数据库系统,d b ms代表数据库管理系统。 d d b s不是分布在网络节点上可以独立进行存储的文件集合。要成为 一 个 d d b s ,不仅仅文件要逻辑相关,还要提供通用的接口以便用户访问。我们注意 到, 现今非常流行的w e b技术, 提供一种方式把数据半结构化的存储在 w e b页面 中。我们说,这种技术有点类似于 d b ms的数据访问,但不是真正的d d b s 。不 过,在大多数三层体系结构中,w e b 和数据库会有比较密切的合作关系。 我们不会把多处理器的系统称为 d d b s 。有些人建议数据在物理上不一定要 是分布的,也就是说数据库都放在同一机器上,这样有一些道理,不过很多情况 数据分布存储会更好。本文主要讨论的是存在于不同计算机上通过网络进行连接 的分布式数据库系统,这些计算机之间倒不一定要分开很远,即使在一个房间里 面也是可以的。 若所有的数据库在网络的一个节点上,如图2 - 1 所示,这样的系统也不能称 为分布式数据库系统, 因为这样的数据库管理和集中式数据库的管理没什么两样。 数据库被一个计算机系统集中管理并且所有的请求都被路由到这个节点。 很明显, 存在于网络之中的系统并不足以成为一个 d d b s , 我们所说的分布式数据库系统, 数据库是存在于网络中的多个节点上,数据是分散的而不是集中的。 第止章分布式数据库系统概述 图 2 - 1计算机网络中的集中数据库 f i g . 2 - 1 c e n t r a l d a t a b a s e s i n c o m p u t e r n e t w o r k 2 . 3 分布式数据库的类型 分布式数据库可以分为两种:同构分布式数据库和异构分布式数据库, 。 在同构分布式数据库系统中,所有站点的数据库管理系统软件是相同的,彼 此之间互知的,并且能够统一一致的协调处理用户请求。在这样一个系统中,若 需要更换模式或数据库管理系统软件,本地站点必须听从调配。本地软件必须能 够和其他站点交换事务信息,以便能够跨站点处理事务。 异构的分布式数据库与同构的大不相同。不同站点可能会使用不同的模式, 不同的数据库管理系统软件。彼此之间未必互知,他们也许只能提供有限的协同 事务处理能力。模式的不同对于查询处理总会是一个大问题,同时软件的不同也 成为分布式事务处理 ( 需要访问多个站点)的障碍。 2 . 4 分布式数据库系统的四个优点 d d b s有许多优点,从社会的分散经营的客观要求到能够获得更好的经济效 益,所有这些我们可以归纳为 d d b s能为我们带来的四个方面的好处,也就是 d d b s能提供给我们的业务保证。 2 .4 . 1 透明管理分布的数据和复制的数据 透明在这里的含义是把系统的高层语义和低层实现问题相分离。换句话说, 一个透明的系统对用户隐藏了具体实现的细节。 一个完全透明的d b ms的好处在 华南理工大学硕士学位论文 于高度的支持复杂应用程序的开发。很显然,我们想让所有的d b ms( 不论集中 的或分布的)具有完全的透明性。 让我们来分析一个例子,假如有一个公司在北京、上海、广州、深圳都有分 公司。这四个分公司都有各自的计算机系统运行公司的业务。假定:北京总公司 拥有一个中央数据库,数据库里面包括雇员、项目、薪水、项目及员工安排的数 据以及其他相关数据,又假定用的数据库是关系数据库。那么这些数据可能会存 在e m p l o y e e ( i d , n a m e , t i t l e ) , p r o j e c t ( i d , n a m e , b u g d e t ) , s a l a r y ( t i t l e , s a l ) , a s g ( e i d , p i d , d u r , r e s p ) 这四张表里面。如果我们要去查询在某个项目 上工作超过 1 2 个月的员工名字和他的薪水,由于数据全部存放在中央数据库中, 因此可以用一条s q l语句来实现: s e l e c t e . n a me a s n a m e , s . s a l a s s a l a r y f r o m e m p l o y e e e i n n e r j o i n s a l a r y s o n s . t i t l e= i nne r j oi n as g on as g. e i d =e . e . ti t l e i d w he re as g . dur 1 2 然而,公司的业务如果是基于分布式环境的话,中央的数据库很可能是不存 在的,取而代之的是分布在各个公司的数据库。也就是说,上面所说的四个表也 许会在北京、上海、广州、深圳的各个分公司的数据库里存在,在这种情况 下, 如果还能简单的用上面的s q l查询语句来实现, 我想我们就可以实现数据分布的 透明性了。这也正是我们要努力实现的目标。 再进一步来说,出于系统的稳定性和性能的考虑,每个分公司可能会复制其 他分公司的数据到本地,就比如说上海的分公司,它不仅仅存储本公司的员工、 项目等数据,可能还会把北京公司部分或全部数据复制过来。这样的话,上海的 用户 ( 可能是用户也可能是应用程序)要访问北京的数据就可以在本地进行访问 了,而无需通过网络传输把请求发送给北京的数据库服务器。 完全的透明访问就意味着用户仍然可以使用上面的s q l查询, 无需关心区域 划分、位置、数据是原始的还是复制的,这些全部交给系统解决。 2 .4 .2 分布式事务的可靠性 分布式数据库系统一旦有了复制备份的组件,就显得更加稳定可靠了。一个 节点瘫痪了,或者多个节点不运转了,都不会使得整个系统崩溃。至多部分数据 可能无法获得,但是用户还是可以访问分布式数据库中的其他部分的数据。 第二章 分布式数据库系统概述 我们知道事务是一致的可靠计算的基本单位,它包括一连串的数据库操作, 并且整个过程具有原子性。当分布式数据库中有许多事务在并发运行时,数据库 系统要能保持正确的状态,即使事务处理失败了,也要能保证数据库的一致性。 所以,分布式数据库要提供完整透明性就应该保证并发的用户事务 ( 当然事务应 该是正确的) 不会破坏这些数据库的一致性即使在某个站点失败的时候也是如此。 让我们来继续看看上面讨论的例子。 假如, 现在需要给所有的员工加 1 0 %的 薪水。 涉及到更新操作, 需要把s q l 语句 ( 或者程序代码) 封装在事务中来完成。 如果事务在执行过程中失败了,我们希望数据库能够判断什么地方开始失败了然 后进行恢复,继续完成它的操作。与此同时,假如有其他的用户在运行一个查询 公司员工平均薪水的程序,这样就会产生错误。因此我们希望系统能够同步这两 个程序的运行。 分布式事务会分别在每个站点上执行并且访问当地的数据库。上面加薪水的 事务就会在北京、上海、广州、深圳的分公司执行。有了完全支持分布式事务的 数据库,用户程序就可以依赖于此分布式数据库来确保他们的请求被正确的执行 而无论系统中发生了什么。分布式事务是透明实现的,用户无需知道事务到底在 哪些数据库中执行了。 提供分布式事务支持需要完成许多工作,如分布式并发控制,分布式可靠性 协议 ( 特别是两阶段提交一2 p c )还有分布式恢复协议等等。 2 . 4 . 3 改善性能 分布式数据库对于性能的改善突出表现为下面两点: t .分布式数据库对概念数据库进行分割,使得数据能够尽可能的存放于需 要使用它的地方 ( 或者可以叫做数据本地化) 。 这样使得每个需要处理数据的站点 可以只处理划分的部分,可以降低站点的负荷。本地化的数据也可以减少远程访 问的延迟特别是对于数据库分布于广域网中的情况。 2 .分布式系统内在的平行性在系统内部查询时可以被充分的利用。因为, 一个查询在分布式系统中执行时,会被分解为一系列的在各个站点上的子查询, 同时查询各个站点的本地数据库,这显然可以大大提高速度。 第一点涉及到分布式计算的过载问题。假如数据必须存在于远程站点上并且 必须通过远程处理来访问数据,在这种情况下,把对于数据的管理分布到各个站 点要比移动大量的数据好的多。 这个问题最近也成了争论的一个焦点。 有人认为, 随着高速高带宽网络的普及,分布数据和分布数据管理就没有什么意义,因为把 数据集中起来存在一个中央数据库,通过高速网络来进行访问更简单。这个论点 确实挺诱人,但是它忘记了分布式数据库的关键。首先,在当今的许多应用中, 华南理工大学硕士学位论文 数据必须是分布的,这个事实是我们改变不了的,所以我们只能去讨论这些数据 如何处理以及在哪里被处理。而且更为重要的是这个论点没有区分带宽和延时。 延时在分布式环境中是固有的并且通过网络发送数据也有物理限制。比如,卫星 连接把一个地面的数据传送到另一个地面需要 1 / 2秒的时间,这个时间和卫星离 地面的距离有关,我们无法去改善这 1 / 2秒的时间。虽然卫星每秒可以传播几 g 字节甚至更多的数据, 但是 1 1 2秒的延迟对于某些应用来说,是绝对接受不了的。 因此我们说数据分布某些情况下是必须的,一般来说也是很合理的。 平行性也很重要。假如用户访问分布式数据库只是为了查询,那么内部查询 的平行性也就是从诸多数据库中拷贝数据然后返回用户。然而,许多数据库访问 不仅仅是只读的,还混合了更新操作,这就需要分布式数据库系统完成联合的并 发控制和提交协议。 有些商业系统采用一个比较有趣的方法来协调查询和更新的性能问题。系统 中有数据库的两个备份。 一个备份专门用于查询 ( 叫做查询数据库) , 另一个备份 用于更新( 叫做生产数据库) 。 在正常的间隙, 生产数据库就被拷贝到查询数据库。 这种方法并没有消除生产数据库对于并发控制和可靠性协议的需要,而且它还提 高了查询性能因为查询可以不需要理会更新操作而独立执行。 另外,有些数据库采取了管理上的策略来对付事务处理的过载问题。一些装 置在某些时刻只开放数据的查询操作,更新操作被批量缓存了。然后在适当的时 刻就关闭查询功能,这时缓存的更新操作就开始执行。 本文只是简单提到分布式数据库的性能问题,至于如何衡量不在本文的研究 范围之 内。 2 . 4 . 4 系统扩展更容易 在分布式环境中,可以容纳很多数据库。一般来讲,系统整个瘫痪的概率非 常小。系统扩展也仅需要在网络中添加处理和存储设备即可实现。当然,系统扩 展后功能上不太可能获得线性的增长,但是可以看到明显的改善。 分布式系统扩展容易的一个方面表现在经济上的可行性。要组建一个同等性 能的系统,用多台小型机的花费比用一台大型机要便宜许多。在 2 0 世纪6 0 年代 到7 0年代早期,通常认为花费两倍的钱可以买到四倍性能的机器。 这就是g r o s h 定律。随着小型机,特别是微型计算机的出现,这个定律就不再有效了。 不过我们并没有说大型机就此退出历史舞台了。还是有很多应用适合在大型 机上运行的。事实上,在最近这些年,我们发现全球化大型机的复苏。本文想提 醒的是,对于更多的应用来说,用一些小的设备来组成一个分布式系统会是一个 经济

温馨提示

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

评论

0/150

提交评论