分布式数据库习题第一章1.1请用自己的语言定义下列分布式数据库系统中的术语:全局/局部数据全局数据是指参与全局应用,可被多个站点上的应用访问的数据;局部数据是指只提供本站点的局部应用所需要的数据。全局/局部用户(应用)在分布式数据库系统中,一个用户或一个应用如果只访问他注册的那个站点上的数据称为局部用户(应用)。如果访问涉及两个或两个以上站点中的数据,称为全局用户(应用)。全局/局部DBMS全局数据库系统是协调全局事务的,协调各局部DBMS以完成全局应用,保证数据库的全局一致性,执行并发控制,实现更新同步,提供全局恢复功能的数据库管理系统。局部数据库管理系统位于局部场地上,是为建立和管理局部数据库,提供场地自治能力,执行局部应用及全局查询的子查询的数据库管理系统。全局/局部DB全局数据库(GDB)是指从整个系统角度出发,由全局数据库管理系统进行管理的数据库,它由各个局部数据库逻辑组合而成;局部数据库(LDB)是指从各个站点的角度出发,由局部数据库管理系统进行管理的数据库,它由全局数据库的某种逻辑分割而成。全局外模式是全局应用的用户视图,是全局概念模式的子集,也称全局视图。全局概念模式描述分布式数据库中全局数据的逻辑结构和数据特性,是分布式数据库的全局概念视图。分片模式描述全局数据的逻辑划分。每一个全局关系可以分为若干不相交的部分,每一部分称为一个片段,分片模式定义片段以及全局关系到片段的映像。分配模式分配模式定义片段的存放结点。根据选定的数据分布策略,定义各片段的物理存放站点,即定义片段映像的类型,确定分布式数据库是冗余的还是非冗余的,以及冗余的程度。局部概念模式是全局概念模式的子集,对每个站点来说,在该站点上全部物理映像的集合就称为该站点上的局部概念模式。1.2采用分布式数据库系统的主要原因是什么?分布式数据库系统适合于单位分散的部门,允许各个部门将其常用的数据存储在本地,实施就地存放本地使用,从而提高响应速度,降低通信费用。采用分布式数据库的原因主要有两方面:(1)集中式数据库系统的不足:数据按实际需要已经在网络上分布存储,如果再采用集中式处理,势必造成附加成本和通信开销;应用程序集中在一台计算机上运行,一旦该计算机发生故障,将会影响整个系统的运行,可靠性不高;集中式处理导致系统的规模和配置都不够灵活,系统的可扩展性较差。(2)分布式数据库系统的优点:具有灵活的体系结构;适应分布式的管理和控制机构;经济性能优越;系统的可靠性高、可用性好;局部应用的响应速度快;可扩展性好,易于集成现有系统。1.3分布式数据库系统可分为那些类?(1)按局部数据库数据管理系统的数据模型分类:同构型DDBS(包括两种:同构同质型。同构异质型),异构型DDBS(2)按分布式数据库系统的全局控制系统类型分类:全局控制集中型DDBS,全局控制分散型DDBS,全局控制可变型DDBS1.5分布式DBMS具有哪些集中式DBMS不具备的功能?(1)物理分布性:分布式数据库中的数据不是存储在一个站点上,而是分散存储在由计算机网络联结起来的多个站点上。(2)逻辑整体性:分布式数据库中的数据物理上是分散在各个站点中的,但这些分散的数据逻辑上却是一个整体。(3)站点自治性:站点自治性也称场地自治性,各站点上的数据由本地的DBMS管理,具有资质处理能力,完成本站点的应用(本地应用)。(4)集中与自治相结合的控制机制:同一站点上的用户可共享本站点上局部数据库中的数据,以完成局部应用;分布式数据库系统上的用户都可共享在分布式数据库系统的各个站点上存储的数据,以完成全局应用。(5)适当增加数据冗余度:在集中式数据库中,尽量减少冗余度是系统目标之一。而在分布式系统中却通过冗余数据提高系统的可靠性、可用性和改善系统性能。(6)事务管理的分布性:数据的分布性必然造成事务执行和管理的分布性。即,一个全局事务的执行可分解为在若干个站点上子事务(局部事务)的执行。1.6请用自己的语言解析“什么时候需要进行数据分片和数据复制”。数据分片:全局数据库是由各个局部数据库逻辑组合而成,数据库中的一个关系描述了某些数据之间的逻辑相关性,但不同站点的用户需要该关系中的元组可能不同。这就需要对这个关系进行分割,并将分割后的片段存放在相应的站点上。数据复制:当一个分布式数据库中用户数量较大,地理分布较广,而且需要实时地访问相同数据时可以采用数据复制技术,它通过将这些共享数据复制到位于不同地点的多个数据库中,从而实现数据的本地访问,减少了网络符合,并提高了数据访问的性能,而且通过对数据库中的数据定期同步的更新,从而确保了所有的用户使用同样的、最新的数据。1.7在分布式数据库系统中,为什么要对数据进行分片?什么是关系的片段?关系的片段有哪些主要类型?对数据分片的目的是产生一个对全局数据合适的划分方案,使用这种方案得到的片段作为分布式数据库中数据的分配和存储单位时,不但能够减少应用中的操作量,而且能够对于应用具有最大可能的本地性,即使得各片段位于其使用最多的站点。关系的片段:对数据库管理系统中的关系进行分割,将分割后得到的各部分元组,就称为该关系的逻辑片段。关系的片段主要类型有:(1)水平片段:按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集为关系的一个片段。也是通过对一全局对象的实例(或元组)进行选择得到的子集构。(2)垂直片段:把一个全局关系的属性集分成若干子集,并在这些子集上做投影运算,每个投影为垂直分片。也是通过将全局对象在其属性子集上进行投影得到的。(3)混合分片:将水平分片与垂直分片方式综合使用则为混合分片。第二章2.1概述分布式数据库系统的创建方法、方法特点和适用范围。分布式数据库系统的创建方法即分布式数据库系统的实现方法,大致可分为两种:组合法和重构法。(1)采用组合法创建分布式数据库系统组合法也称集成法,这是一种自底向上(bottom—up)的创建方法。它是利用现有的计算机网络和独立存在于各个站点上的现存数据库系统,通过建立一个分布式协调管理系统,将它们集成为一个统一的分布式数据库系统。特点:这种方法由于是利用现存的网络和现存的数据库系统,仅仅需要建立一个分布式协调管理系统。因此,相对来说,如果该系统不是很大的话,其工作量可能会比较小,实现的周期会短些,花费的人力、物力会少些,用户也比较容易接受,因为它有利于保护现有的投资。适用范围:采用组合法的分布式数据库系统往往是异构或同构异质的分布式数据库系统。(2)采用重构法创建分布式数据库系统重构法是根据系统的实现环境和用户需求,按分布式数据库系统的设计思想和方法,采用统一的观点,从总体设计做起,包括各站点上的数据库系统,重新建立一个分布式数据库系统。特点:这种方法的优点在于,可以按照统一的思想来考虑分布式数据库系统中的各种问题,有效地解决分布式数据库系统的数据一致性、完整性和可靠性。但是花费的人力、物力会比较多,研制周期也比较长,系统建设的代价会比较大。在实际应用中,究竟应该采用哪种方法,要根据具体情况做具体分析后决定。适用范围:采用重构法创建的分布式数据库系统,通常是同构异质,甚至是同构同质的分布式数据库系统。2.2分布式数据库设计的主要目标是什么?分布式数据库设计的目标除包括集中式数据库设计中的目标外,还要包括以下几点:(1)分布式数据库的本地性或近地性分布式数据库系统中最重要的目标(至少在使用广域网的情况下,以及某些使用局域网的情况下)是尽量减少对网络的利用,即尽可能减少站点之间的通信次数和通信量。所以,分布式数据库设计中的一个主要原则是使数据和应用实现最大程度的本地性。本地性的优点不仅仅减少了远程访问的次数,而且简化了对该应用执行的控制。(2)控制数据的适当冗余控制数据的适当冗余是分布式数据库系统设计的又一个目标。分布式系统在可用性和可靠性方面优于非分布式系统,其原因之一是因为分布式数据库系统中存在数据的适当冗余。(3)工作负荷分布分布式计算机系统的一个重要特征是把工作负荷分布在网络中的各个站点上。分布工作负荷的目的是充分利用每个站点计算机的能力和资源,以提高应用执行的平行程度,从而提高系统的性能。(4)存储的能力和费用数据库的分布会受到各站点的存储能力的影响。在网络中可以有专门用于存储数据的站点,也可以有完全不支持大容量存储的站点。上述的设计目标都要达到是非常困难的,因为这会使优化模型变得非常复杂。因此,可以将上面的某些特征考虑为约束条件而不是目标。2.3概述分布式数据库设计的关键问题及其解决方法。作为数据库系统设计的核心部分是数据库设计,数据库设计的主要问题是模式(也称概念模式,描述数据库应用所使用的全部数据)和内模式(也称物理模式,描述概念模式映射到存储区域,并确定合适的存取方法)的设计。这两个问题在分布式数据库中变为全局模式设计和每个站点的局部数据库设计的问题,其中的关键是数据库的全局模式应如何划分:并映射到合适站点上。这就产生了分布数据库设计所特有的两个新问题:数据的分片设计和片段的位置分配设计。分布式数据库的分布设计要求确定数据的分片和片段的分配。分片是指把一全局对象(实体或关系)细分成若干逻辑片段的过程;分配是指把各片段映射到一个或多个站点的过程,片段是最合适的数据分配单位。2.6数据分片应遵守哪些基本原则?数据分片有哪些基本类型和方法?分片方法,必须遵守如下规则:若R={R1,R2,…,Rn}满足:1)完整性(completeness)条件:如果a∈R,则必有a∈Ri,i=l,2,…,n2)可重构(reconstructed)条件:R=∪Ri,(水平分片)或R=∞Ri,(垂直分片)3)不相交(disjoint)条件:Ri∩Rj=φ,i≠j,i,j:=1,2,…,n(水平分片)Ri∩Rj=主键属性,i,j=1,2,…,n(垂直分片)有两种基本的数据分片方法:(1)使用水平分片方法得到水平片段,水平片段是通过对一全局对象的实例(或元组)进行选择得到的子集构成。水平分片是对全局关系执行“选择”操作,把具有相同性质的元组进行分组,构成若干个不相交的子集。水平分片的方法可归为初级分片(primaryfragmentation)和导出分片(derivationfragmentation)两类。(2)使用垂直分片方法得到垂直片段,垂直片段是通过将全局对象在其属性子集上进行投影得到的。一个全局关系的垂直分片是通过“投影”操作把它的属性分成若干组。确定一全局关系R的垂直分片需要根据应用以“同样方式”(例如具有相同的使用频率)访问的属性来进行分组。这里把垂直分片问题和垂直群集(vetticalclustering)问题区分开来,垂直分片的组必须只焦基个键属性上重叠,其他属性不可重叠,而垂直群集的组在其他属性上也可以重叠。通过交替水平分片与垂直分片,可以产生混合分片。2.7为什么说在关系型分布式数据库中使用导出式水平分片,使关系之间的连接变得更加容易?试举一例。全局关系的导出式水平分片不是以其自身的属性性质为基础,而是从另一个关系的属性性质或水平片段推导出来的。采用导出分片可使片段与片段之间的“连接”(join)变得更容易。例:设全局关系SC(S#.C#,SCORE)S(S#,SNAME,AGE,SEX)若要将SC划分为男生的各门课成绩和女生的各门课成绩。这就不可能从SC本身的属性性质来执行选择,必须从关系S的属性性质或水平片段来导出。definefragmentSC1asselectSC.S#,C#,SCOREfromSC,SwhereSC.S#=S.S#andSEX=’M’definefragmentSC2asselectSC.S#,C#,SCOREfromSC,SwhereSC.S#=S.S#andSEX=’F’如果S已经进行水平分片,分为SF、和SM,分别为男生全体和女生全体,则上述的片段定义可以基于片段SF和SM导出:definefragmentSC1asselect*fromSCwhereS#in(selectSF.S#fromSF)definefragmentSC2asSelect*fromSCw