分布式数据库.docx
- 文档编号:11267586
- 上传时间:2023-02-26
- 格式:DOCX
- 页数:14
- 大小:116.02KB
分布式数据库.docx
《分布式数据库.docx》由会员分享,可在线阅读,更多相关《分布式数据库.docx(14页珍藏版)》请在冰豆网上搜索。
分布式数据库
分布式空间数据库1
1分布式数据库的特性1
1.1分层控制1
1.2数据独立性2
1.3数据冗余2
1.4复杂的物理结构与存取效率2
1.5完整性、可恢复性和并发控制2
2分布式数据库的参考体系结构3
3分布式空间数据库分段4
3.1空间数据划分的原则4
3.2分布式空间数据分段的类型5
3.3空间数据关系的分段操作方法7
4分布式空间数据库的数据分配8
4.1数据分配类型及其评估8
4.2数据分配的一般准则9
4.3数据分配的方法9
5本章小结10
分布式空间数据库
分布式空间数据库和分布式数据库有其内在的联系,要研究分布式空间数据库首先必须研究分布式空间数据库和分布式数据库的相似和不同之处。
当不考虑空间对象的几何分布特性时,即把空间数据等同于一般的描述性属性,那么分布式空间数据库和分布式数据库一样。
可是,空间数据的管理是分区域来进行管理的,即同一空间对象出现在不同管理区域时,其几何数据在几个管理区域中均同时出现,对该空间对象进行空间计算时就可能产生不同的结果.
1分布式数据库的特性
分布式数据库(Bray,1982;郑振媚、于戈、郭敏1998)不只是简单地把集中式数据库分布开来,因为分布式数据库系统的设计还可以提供与传统的集中式数据库不同的特点。
传统数据库方法的特点是:
集中控制,数据独立,减少冗余.然而,分布式数据库依靠复杂的物理结构以提高存取效率,并且还具有完整性,可恢复性,并发控制,私用性,和安全性。
1.1分层控制
在分布式数据库中,并不强调集中控制的思想(Bernstein,1979)。
对整个企业或单位的信息资源提供集中的控制是引入数据库的最强有力的推动因素之一,实际上数据库就是从每个应用具有自己私用文件的那种信息系统演进而来的。
一般来说,分布式数据库具有分层控制的结构,也就是说,由全局数据库管理员来担负管理整个数据库的中央职责,而由若干本地数据库管理员来分别负责管理各自的本地数据库.本地数据库管理员可以具有很高的自治权,甚至可以完全不要全局教据库管理员,而由本地数据库管理员他们自己来进行站点之间的协调。
通常把这个特性叫作站点自治性。
各分布式数据库在站点自治性的程度上可以有很大的不同:
从不需要任何集中的数据库管理员的站点完全自治,到几乎完全是集中控制。
1.2数据独立性
数据独立的意思是数据的实际组织对应用程序员是透明的。
数据独立的主要优点是当数据的物理组织改变时不会影响到应用程序。
在分布式数据库中,数据独立性要在通常的数据独立性概念中增加一个新的问题,即分布透明性。
所谓分布透明性,可以认为数据库不是分布的那样来编写程序。
因此,把数据从一个站点移至另一站点不会影响程序的正确性,但是执行的速度会受到影响。
在传统的数据库中获得数据独立性的方法是采用多层的体系结构,每层具有不同的数据描述,然后在它们之间进行转换。
为此发展出概念模式、存贮模式和外部模式等一些概念。
与此相似,在分布式数据库中是靠引入新的层次和模式来得到分布透明性的。
1.3数据冗余
在传统的数据库中,要尽可能地减少冗余度,这有两个原因:
第一,同一份逻辑数据的几个拷贝存在不一致性问题,如果只有一份拷贝就自然避免了这一问题;第二,消除了冗余数据也就节省了存贮空间。
减少冗余的方法是共享数据,也就是说,允许几个应用访问同一些文件和记录。
但是,在分布式数据库中,希望数据有冗余。
第一,如果在需要那些数据的各站点都有拷贝的话,就可以提高应用的“本地性”:
其次,系统的可用性得到提高,因为如果数据有冗余的话,那么一个站点出故障不会妨碍其他站点中应用的执行。
一般来说,传统数据库中反对冗余的理由也同样存在,因此,确定最佳的冗余度需要进行相当复杂的权衡与评价。
可以笼统地说,重复一个数据项带来的方便程度随着应用执行的读取访问与更新访问之比的增加而增加。
因为一个数据项如果有几份拷贝,读取时只要对一份拷贝进行即可,而更新时则必须对所有拷贝连贯地执行更新才行。
1.4复杂的物理结构与存取效率
象二级索引、文件之间的链接等复杂的存取结构是传统数据库的一个主要问题。
数据库管理系统(DBMS)最重要的部分就是支持这些复杂的结构,其目的是为了提高存取数据的效率。
在分布式数据库中,复杂的存取结构并不是提高存取效率的正确方法。
因此,当存取效率是分布式数据库的一个主要问题时,物理结构不是一个切中要害的技术问题。
采用站点之间的物理结构的方法并不能提高分布式数据库的存取效率,因为这种结构很难建立及维持,并且分布式数据库中记录级的“航行”(navigate)是不方便的。
1.5完整性、可恢复性和并发控制
在数据库中,完整性、可恢复性和并发控制虽然是各不相同的问题,但是关系却非常密切。
在很大程度上,这些问题的解决办法是通过事务(冯玉才,1984)来解决的。
所谓事务(transaction)是一个不可分割的执行单位,叫做原子单位(atomicunit),也就是说,它是一个这样的操作序列。
要么完整地执行,要么完全不执行。
事务的不可分割是获得数据库完整性的一种方法,因为它保证使数据库从一个确定的状态变换至另一状态的全部动作要么都被执行,要么保留数据库原来确定的状态不变。
所谓恢复,在很大程度上是处理故障时保证事务不可分割性的问题的.在分布式数据库中这个问题特别重要,因为如前例所示,事务执行中所涉及到的某些站点可能出故障.并发控制的任务是在事务的并发执行时确保事务的不可分割性。
这个问题可以看作是典型的同步问题。
在分布式数据库中,和在所有分布式系统中一样,同步问题要比在集中式系统中困难.在传统的数据库中,具有集中控制权的数据管理员能够保证只让有权的人来存取数据。
并发控制决定DDBMS(DistributedDatabaseManagementSystem)能够提供多大的分布透明性.分布透明性指应用程序与数据的分布无关,从概念上来说等效于集中式数据库中的数据独立性。
2分布式数据库的参考体系结构
分布式数据库定义了一分层的参考结构如图3-1-1.利用这种结构就能容易地决定分布透明性的不同级别。
分布式数据库的参考体系结构图表示了分布式数据库的一种参考体系结构,它不是在所有的分布式数据库中都明显地实现的。
但是,为了了解分布式数据库的组成,这种分层概念是有用的。
因此,我们将对这个参考结构的所有组成部分进行分析和了解。
1-1-1分布式数据库数据结构
图1-1-1的顶层是全局模式,它把数据库看作完全没有分布那样来定义分布式数据库中包含的全部数据。
为此,可以完全用非分布式数据库中的方法来定义全局模式。
但是,定义全局模式中所用的数据模式应该方便于定义至分布式数据库其他各层的映射。
每个全局关系可以分割为若干不重迭的部分,称之为段(fragments)。
可以有儿种不同的方法来进行这种分割。
全局关系和段之间的映射在分段模式(fragmentationschema)中定义.这种映射是一对多的。
段由一带有索引(段索引)的全局关系名来表示;例如,R、表示是全局关系R的第i段。
段为全局关系的逻辑组成部分,在物理上位于网络的一个或多个站点中。
分配模式(allocationschema)定义了段在哪个站点或哪些站点。
注意,分配模式中定义的映射类型决定了此分布式数据库是冗余的:
前者情况的映射为一对多,而后者情况的映射为一对一。
在同一站点.1中相应于同一全局关系R的所有各段构成了全局关系R的站点,1的物理映象。
因此,在物理映象和一个对(pair)(全局关系,站点)之间有一个一对一的映射。
物理映象可以用一全局关系名和一站点索引来表示。
为了使它们与段有所区别,我们将使用一上角标;例如,Rj表示全局关系R在站点j处的物理映象。
玛两个物理映象相同时,我们认为一个物理映象是另一个物理映象的拷贝。
在图1-1-1的参考结构中,顶上三层中对象之间的关系与站点无关,与本地DBMS的数据模型也无关。
在低一层,需要把物理映象映射至由本地DBMS来操作的对象,这种映射叫做本地映射模式,它与本地DBMS的类型有关。
所以,在异构系统中,在不同站点具有不同类型的本地映射。
分布式数据库的这个参考体系结构,提供了非常一般的概念以帮助了解分布式数据库。
提出这种结构的三个最重要的目的是:
把数据分段和分配分离,进行冗余的控制,以及独立于本地DBMS
[1]把数据分段的概念与数据分配的概念分离开来。
这种分离使得我们能区别分布透明性的不同级别,即分段透明性(fragmentationtransparency)和位置透明性(locationtransparency).分段透明性是最高程度的透明性,用户或应用程序员在全局关系上进行工作。
位置透明性是较低程度的透明性,要求用户或应用程度员在段上而不是全局关系上进行工作;但是他们并不知道这些段在什么位置。
把分段和分配的概念分离开来.在分布式数据库的设计中是非常方便的,因为这把数据中的有关分段部分的决定与最优分配的问题区别开来。
[2]冗余的明确控制。
参考结构在段级提供了冗余的明确控制。
作为物理映象基本模块的不相交段的定义使得我们能明确地指出此重迭部分:
重复的段Ra。
我们将看到,对冗余的明确控制在分布式数据库管理的某些方面是很有用的。
[3]与本地DBMS独立无关。
这个特点叫做本地映射透明性(localmappingtransparency),它允许在研究分布式数据库管理的某些问题时不用考虑本地DBMS的具体数据模型。
显然,在匀质系统中,有可能采用和本地DBII}S相同的数据模型来定义站点独立的模式,因此减小了这种映射的复杂性.
另一种与位置透明性密切相关的透明性叫做重复透明性(replicationtransparency),它的意思是用户不知道段的重复情况。
显然,重复透明性蕴含在位置透明性之中;但是在某些情况下也有可能用户没有任何位置透明性但却有重复透明性(用户使用一个具体的拷贝,而系统对其他的拷贝进行相应的操作)。
3分布式空间数据库分段
3.1空间数据划分的原则
空间数据划分是指将空间数据全局关系划分成相应的逻辑片断(逻辑关系)。
划分是对空间数据全局关系的一种分段操作.
空间数据划分所遵循的依据是根据应用需要,首先按空间数据全局关系的外部特征进行划分,然后再由其内部特征来检查划分的正确性。
空间数据全局关系的外部特征是指用户从其应用角度看到的那部分模式。
按外部特征划分是指按构成空间全局关系的属性群集特征和区域进行逻辑划分。
比如对营销数据库中的销售市场关系可以按销售的区域将销售市场关系划分成若干子片断。
这类划分是按关系中数据项集的特征和区域进行的划分.
在各种分段法中都可以这样来定义一个段,用关系语言的表达式来定义,此表达式以全局关系为操作数而以产生的段作为结果。
例如,如果有一全局关系包含了雇员的数据,那么显然,只包含在部门D,工作的雇员数据的段可以用对全局关系的选择操作来定义.但是,在定义分段时必须遵从某些规则:
[1〕完整性条件。
必须把全局关系的全部数据映射至那些段中;
[2]重构性条件。
必须能够从段重新构成全局关系。
[3〕不相交性(disjointness)条件.段间不相交会可以在分配层上明确地控制数据的重复性.
此条件主要只对水平分段有用,垂直分段有时允许违反此条件。
3.2分布式空间数据分段的类型
把全局关系分解成段有两种不同的分法,即水平分段和垂直分段。
我们首先分别考虑这两种分段类型,然后把这两种组合起来得到更复杂的分段法。
[1]水平分段
水平分段就是把全局关系的元组分割成一些子集;其定义为把每个段表示为对全局关系执行选择操作。
例如:
全局关系为SUPPLIER(SNUM,NAME.CITY),则水平分段可用定义为:
如果“SF”和“LA”是CITY属性仅有的可能值,那么上述分段满足完整性条件。
重构条件很易被验证,因为总能通过下述操作来重构SUPPLIER全局关系:
不相交性条件显然是可验证的。
我们把定义段的选择操作中的谓语叫做段的限定语(qualification)。
例如,在上例中限定语为:
为了满足完整性条件,我们可以把上例一般化,即全部段的限定语集合必须是完整的,至少有允许值的集合。
通过并集操作总是能满足重构条件的,而不相交条件要求限定语之间是互斥的。
[2]诱导水平分段
某些场合中,一个关系的水平分段不能依据它本身属性的性质,而要从另一关系的水平分段推导出来。
例如,考虑一全局关系SUPPLY(SNUM,PNUM,DEPTNUM,QUAN)
其中SNUM是供应者号。
把这个关系分段是有意义的,这样可以使一个段只包含在某一城市中供应者的元组。
但是“城市”不是SUPPLY关系的一个属性,而是上面例子中考虑的SUPPLIER关系的一个属性。
所以我们需要自然连接操作来决定SUPPLY中相应于指定城市中的供应者的元组。
因此,SUPPLY的导出分段定义如下:
自然连接操作的作用是从SUPPLY中选择满足SUPPLIER,或SUPPLIERz和SUPPLY之间的结合条件
的元组,因此,可决定出分别与不同城市的供应者有关的SUPPLY的元组。
全局关系SUPPLY的重新构造可以通过并集操作来完成,如在讨论SUPPLIER时一样。
当一全局关系R有一导出分段时,其段的限定语不能表示为使用R中属性的谓语:
元组t是否属于R中指定段R;的条件是在另外S的某段S。
中存在一元组t’,并且t和t’满足此导出分段的自然连接式子的要求.考虑上面的例子,我们给出这个条件(事实上它应包含一存在的限定符)的一种简单表示式如下:
上述限定语的意思是说,对于SUPPLY,(SUPPLYz)的任何元组,存在一供应者,它在城市SF(城市LA)中并具有相同的供应者号.
上述分段的完整性要求在SUPPLY关系中没有任何一个供应者号不包含在SUPPLIER关系之中。
这是对数据库的一个典型而合理的完整性约束,通常称为访问完整性约束(referentialintegrityconstraint)。
如果SUPPLY关系的一个元组不对应于SUPPL工ER关系的两个元组(它们属于两个不同的段)的话,就满足不相交条件.在本例情况下这个条件是很容易验证的,因为供应者号是SUPPLIER关系的唯一的键;但是,一般情况下很难证明是否满足这个条件。
[3]垂直分段
一全局关系的垂直分段是把它的属性再分成若干组;把此全局关系投影在每组上就得到段.当分布式数据库中每组属性包含具有公共地理性质的数据时,这种分段就很有用。
如果每个属性被映射至这些段的至少一个属性中的话,这个分段就是正确的;此外,还必须能把这峰毅连接在一起以重新构成原来的关系。
例如,考虑一全局关系EMP(EMPNUM,NAME,SAL,TAX,MGRNUM,DEPTNUM)
这个关系的一种垂直分段可定义为:
例如,这个分段可反映一个把工资与税收分别管理的单位。
关系氏P的重构可这样得到:
因为EMPNUM是ESP的一个键。
一般来说,使全局关系的一个键包含在每个段中是保证能通过结合操作来重构的最简单的方法。
另一个提供重构性能的方法是产生元组标识符,它可用作为系统控制键.这对于避免大量键发生重复是很方便的;再者,元组标识符是不能由用户来修改的。
[4]混合分段
将水平分段与垂直分段进行混合使用的一种分段方式。
3.3空间数据关系的分段操作方法
空间数据是一类在应用中具有查询操作需求的复杂数据。
因此,本文采用的数据模型引入了面向对象技术和开放式关系数据库技术,即采用对象关系数据库管理系统(ORDBMS)对空间数据进行管理。
由于引入了对象的概念,空间数据可以得到更加自然的表达,并且实现了非空间属性与空间属性同存于同一标准数据表中。
这就避免了以往非空间属性与空间属性分开存放的情况,使得针对空间数据的操作更加自然便利和高效,空间数据库的开放性更加显著。
更重要的是,采用ORDBMS对空间数据进行管理,使得我们可以利用关系数据库中在分布式数据管理领域中的成熟理论和技术.实现空间数据的分布管理。
对象关系分布式空间数据库是由一组关系组成。
这组关系在逻辑上对用户是可见的,而实际上被划分成若干子关系。
这些子关系可被分别存储在系统中由计算机网络连接的相应节点上,是基本关系。
空间数据全局关系模式用以描述空间数据关系的结构及语义约束。
它在某个特定区域的取值即
关系r。
现给出分布式空间数据全局关系模式的定义,它由一个多元组表示:
R(U,G,Range,DU,DG,Dom,F,Q,S)
其中。
R是关系名:
U是构成R的有限非空间属性集;G是构成R的有限空间属性;DU是U中属性的值域:
DG是G中属性的值域;Do。
是属性列到域中所有映射的集合;Range是使G有意义的空间区域:
F是属性间的一组函数依赖:
Q是关系所满足的限定条件,是一谓词;5是关系的分布结构。
当全局关系模式划分为子模式,Range不成为影响其划分的要素时,Range为无限区域,否则Range为有限区域。
关系r是相对于全局关系模式R(U,G,Range,DU,DG,Dom,F,Q,S)按分布结构组织起来的从属性集U和属性G分别到值域DU和值域DG上所有满足Q的映射的集合。
其中每个元素称为元组值。
每个关系有主键KcU。
关系一般对应于空间数据库中的层。
所有空间数据关系的当前值即当前的空间数据库,反映着现实空间世界的当前状态。
空间数据全局关系模式按一定谓词Q划分为局部模式(子模式)。
对应着子关系。
为集中讨论空间数据分布,可将空间数据全局关系模式简化为:
R(U,G,Range,Q,S)
空间数据全局关系的外部特征与关系属性有关又与空间数据的区域Range有关。
关系基本可以分为两类:
一类描述实体;另一类描述关联。
因此基于关系的划分也可以分为两大类。
一类是基于关系本身(实体)的划分,称为独立划分。
它包括空间数据水平分段、空间数据垂直分段和空间数据混合分段。
另一类是基于关联的划分,称为相关划分。
它包括空间数据诱导分段。
结合对空间数据区域Range的讨论,空间数据全局关系模式R(U,G,Range,Q,S)也有各类不同的分段模式:
基于区域的裁剪分段、基于区域的合并分段、基于区域的裁剪后合并分段、基于非几何属性和区域的裁剪分段、基于非几何属性和区域的合并分段、基于非几何属性和区域的裁剪后合并分段以及基于等高线的区域裁剪后合并分段。
4分布式空间数据库的数据分配
分布式空间数据库中全局关系经逻辑划分后,对于其分配常有四种类型:
集中型、分割型、全复制型和复合型。
对于这四种分配类型,一般性评估原则有四个因素:
存储代价、可靠性、检索代价、更新代价。
其中存储代价与可靠性是需综合平衡的,检索代价与更新代价也是一对矛盾因素。
4.1数据分配类型及其评估
(1)集中型.
数据虽经划分,但所有逻辑片段完全集中在一个场地上,仍然像一个集中式数据库一样。
分布式空间数据库只存储在一个场地上,相当于一个集中式数据库没有片段间的通讯问题.对于存储代价没有额外开销;对于可靠性,则往往某一故障使整个系统无法使用,所以系统可靠性差;对于检索代价,由于外场地的查询都必须经通讯到分布式空间数据库存储的唯一场地上检索,因此引起检索代价的猛增:
但由于没有副本,就没有全系统(全网络)的同步更新开销,从某种角度讲同步更新代价往往远高于远程检索通讯代价。
(2)分割型。
数据被划分后,所有逻辑片段各自分配在一个场地上,所有场地上分配的只是全局关系的一个子关系。
分布式空间数据库被划分成不相交的子集各自分配在一个场地上。
这对于特定的专用系统也许是有效的。
从评估讲,其存储代价没有增加:
可靠性比集中型好,当某一故障发生只会影响系统的某一场地(或某一子集)不会形成全系统崩溃;对于检索,这种分配往往是只有局部私用,不存在共享,所以只有局部检索,没有通讯代价问题;对于更新,因为没有副本,不存在副本同步更新开销.
(3)全复制型.
数据被划分后,所有逻辑片段在每个场地上均重复设置.
将分布式空间数据库划分后的多个逻辑片段重复设置在所有场地上,相当于每个场地都有一个分布式空间数据库的副本.这样,存储代价急剧上升,可靠性极好,因为每个场地上都有副本,某个场地故障决不会影响其它场地;检索代价也低,每个场地的应用都无需通讯,都是局部存取,但是由于有副本存在,当某个局部检索的副本中的数据恰好是另一个场地应用正在更新的数据,虽然各自操作都可以进行,但从维护分布式空间数据库的完整性和一致性考虑,必须有副本一致性维护机制,当所采用的更新同步机制不同,则其检索代价也就不同。
(4)复合型。
数据被划分后的逻辑片段根据需要分配.共享的片段在需要共享场地上重复设里,高度私用的片段只设置在所需要的场地上。
混合型的数据分配实际上是对上述三种分配的综合设置,对于系统中共享的逻辑片段应考虑设置副本;对于更新代价与检索代价的评估,主要依据应用中更新/检索比确定。
比值小,即大多数(或主要)满足检索,很少更新,则尽量设置副本;当更新较频繁,即比值大,则应尽量集中管理,以减少副本同步更新代价。
4.2数据分配的一般准则
从以上可归纳出数据分配的一般准则:
(1)处理局部性.数据分配时应尽量考虑提高局部处理能力减少远程访问次数。
(2)数据的可用性和可靠性。
尽量提高只读应用的可靠性和全系统的可用性,充分发挥分布式空间数据库的优点。
(3)工作负载分布的均匀性。
使系统各场地的负载均匀,尽量提高系统并行处理能力,这有时会与处理的局部性发生矛盾。
一般来说,这些准则不可能全部满足,可以以一个目标为主,其它目标为其约束条件来考虑使数据分配较合理。
4.3数据分配的方法
在分布式空间数据库设计中,对于数据分配的研究早期基于“文件分配”模型,把划分的逻辑片段当作“单个文件”来考虑。
但是,目前仍认为这样考虑尚有不足之处,表现在:
(1)片段与单个文件不尽相同,片段有相同的结构,有一定的语义。
(2)全局关系可以划分成许多片段,而单个文件的分析模型不能包括多种因素变化时的计算。
(3)在文件系统中,只考虑“远程存取”访问的因素,而分布式空间数据库中划分段时,涉及到应用要使用的情况很复杂。
所以,当前这方面的研究还没有一种“标准”,也没有较满意的解决办法,特别对于必须对各种应用的划分与分配进行大量的性能测试和“应用”优化。
为此,我们给出一些通用的经验出发的一些简单计算方法,以供参考。
从分配的一般准则出发,在分布式空间数据库中数据的分配强调局部自治,即以尽量减少远程存取为主。
这样,数据的分配可简化为冗余分配和非冗余分配两种。
(1)非冗余分配。
这是较容易的分配方法,即将每一种分配方案(非冗余)都进行计算,然后选择一个收益最好的方案。
我们称之为“最佳”法。
这种方法的不足之处是没有考虑给定场地上的两个相关片段间的影响。
(2)冗余分配。
冗余分配较复杂,因为涉及到查询或更新时选择哪一个副本的问题。
同时每个片段的冗余度也是一个变量。
当前有两种方法:
[1]选择所有收益场地法在全部场地上内选择一组场地,当片段的一个副本分配在这一组场地时,其收益高于所费用的代价,则该副本就放置在这一组场地上;
[2]添加副本法先用“最佳”法决定非冗余分配方案,然后增加副本,使其仍能收益,再添加副本直到无收益为止。
这两种方法都存在一些不足。
第一种方法没有考虑同一个片段的不同副本分配时的相互影响;而第二种方法是一种典型的启发式方法.不过从总的代价因素来考虑,增加副本数与提高系统的可靠性之间不是线性关系.从经验数据看副本数为2或3时,其收益较理想。
5本章小结
本章研究了分布式数据库的分层控制、数据独立性、数据冗余、完整性、可恢复性和并发控制等特性,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 数据库