第 9章 分布式数据库系统本章重要概念 (一)
( 1) 分布计算的三种形式:处理分布,数据分布,功能分布 。
( 2) C/S系统,工作模式,技术特征,体系结构,两层,三层,多层 C/S结构 。
( 3) DDBS的定义、特点、优点、缺点和分类;
分布式数据存储的两种形式(分片和分配)。
本章重要概念 (二)
( 4) DDB的体系结构:六层模式,分布透明性的三个层次,DDBS的组成,DDBMS的功能和组成 。
( 5) 分布式查询处理的查询代价,基于半联接的优化策略,基于联接的优化策略 。
( 6)分布式数据库的并发控制和恢复中出现的问题,以及处理机制。
前言随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上。这时集中式数据库系统表现出它的不足:数据按实际需要已在网络上分布存储,再采用集中式处理,势必造成通信开销大;应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高;集中式处理引起系统的规模和配置都不够灵活,系统的可扩充性差。在这种形势下,集中式 DB的“集中计算”概念向
“分布计算”概念发展。分布计算主要体现在客户机/服务器模式和分布式数据库体系结构两个方面。本章将分别介绍这两种技术。
9.1 集中计算与分布计算(一)
,集中计算”概念用户 终端 主机
DB
∫∫
存取请求通信线路处理结果
9.1 集中计算与分布计算(二)
,分布计算”概念
① 处理分布
② 数据分布
③ 功能分布
9.1 集中计算与分布计算(三)
客户机/服务器系统的结构用户 客户机 服务器
DB
∫ ∫
数据请求处理结果
9.2.1 C/S系统的计算模式
① C/ S结构的工作模式
② C/ S环境下应用成分的分布
③ C/ S主要技术特征
9.2.2 C/ S系统的体系结构
① 服务器
② 客户机
③ 中间件
9.2.3 C/ S结构的演变(一)
两层 C/ S结构
DB服务器
……
客户机 1
客户机 N
用户用户第一层 第二层
9.2.3 C/ S结构的演变(二)
三层 C/ S结构 DB应用服务器
……
客户机 1
客户机 N
用户 1
用户 N
第一层 第二层
DB 服务器第三层用户 WW W 浏览器 WW W 服务器 DB 服务器 DB
9.2.3 C/ S结构的演变(三)
多层 C/ S结构用户 WW W 浏览器 W e b 服务器 DB 服务器 DB中间件
9.2.4 网络服务器的类型
① DB服务器
② 文件服务器
③ 事务服务器
④ 文档服务器
⑤ Web服务器
⑥ 电子邮件服务器
⑦ 其他应用服务器
9.3 分布式数据库系统概述随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩大,以分布式为主要特征的数据库系统的研究与开发受到人们的注意。分布式数据库是数据库技术与网络技术相结合的产物,在数据库领域已形成一个分支。
分布式数据库的研究始于 20世纪 70年代中期。世界上第一个分布式数据库系统 SDD-1是由美国计算机公司( CCA)于
1979年在 DEC计算机上实现。 20世纪 90年代以来,分布式数据库系统进入商品化应用阶段,传统的关系数据库产品均发展成以计算机网络及多任务操作系统为核心的分布式数据库产品,同时分布式数据库逐步向客户机/服务器模式发展。
9.3.1 从集中式、分散式到分布式
随着数据库应用的不断发展,规模的不断扩大,逐渐感觉到集中式系统也有不便之处。如大型 DBS的设计和操作都比较复杂,系统显得不灵活并且安全性也较差。因此,采用将数据分散的方法,把数据库分成多个,建立在多台计算机上,
这种系统称为分散式系统。在这种系统中,数据库的管理、
应用程序的研制等都是分开并相互独立,它们之间不存在数据通信联系。
由于计算机网络通信的发展,有可能把分散在各处的数据库系统通过网络通信连接起来,这样形成的系统称为分布式数据库系统( DDBS)。 DDBS兼有集中式和分散式的优点。
这种系统有多台计算机组成,各计算机之间由通信网络相互连系着。
9.3.2 DDBS的定义
分布式系统是用通信网络连接起来的结点(亦称为“场地”)
的集合,每个结点都是拥有集中式数据库的计算机系统。
定义 9.1 DDBS是物理上分散逻辑上集中的数据库系统,系统中的数据分布存放在计算机网络的不同场地的计算机中,
每一场地都有自治处理(即独立处理)能力并能完成局部应用,而每一场地也参与(至少一种)全局应用,程序通过网络通信子系统执行全局应用。
定义 9.2 DDB是计算机网络环境中各场地上数据库的逻辑集合。
定义 9.3 DDBMS是 DDBS中的一组软件,它负责管理分布环境下逻辑集成数据的存取、一致性和完备性。
9.3.3 DDBS的特点和优缺点(一)
DDBS的基本特点
① 物理分布性:数据不是存储在一个场地上,而是存储在计算机网络的多个场地上。
② 逻辑整体性:数据物理分布在各个场地,但逻辑上是一个整体,它们被所有用户(全局用户)共享,并由一个
DDBMS统一管理。
③ 场地自治性:各场地上的数据由本地的 DBMS管理,具有自治处理能力,完成本场地的应用(局部应用)。
④ 场地之间协作性:各场地虽然具有高度的自治性,但是又相互协作构成一个整体。
9.3.3 DDBS的特点和优缺点(二)
DDBS的其他特点
① 数据独立性
② 集中与自治相结合的控制机制
③ 适当增加数据冗余度
④ 事务管理的分布性
9.3.3 DDBS的特点和优缺点(三)
DDBS的优点
① 具有灵活的体系结构
② 适应分布式的管理和控制机构
③ 经济性能优越
④ 系统的可靠性高、可用性好
⑤ 局部应用的响应速度快
⑥ 可扩展性好,易于集成现有的系统
9.3.3 DDBS的特点和优缺点(四)
DDBS的缺点
① 系统开销较大,主要花在通信部分 。
② 复杂的存取结构(如辅助索引、文件的链接技术),在集中式 DBS中是有效存取数据的重要技术,但在分布式系统中不一定有效。
③ 数据的安全性和保密性较难处理。
9.3.4 DDBS的分类
① 同构同质型 DDBS,各个场地都采用同一类型的数据模型
(譬如都是关系型),并且是同一型号的 DBMS。
② 同构异质型 DDBS,各个场地采用同一类型的数据模型,
但是 DBMS的型号不同,譬如 DB2,ORACLE,SYBASE、
SQL Server等。
③ 异构型 DDBS,各个场地的数据模型的型号不同,甚至类型也不同。随着计算机网络技术的发展,异种机联网问题已经得到较好的解决,此时依靠异构型 DDBS就能存取全网中各种异构局部库中的数据。
9.4.1 数据分片(一)
① 水平分片:按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集为关系的一个片段。
② 垂直分片:把一个全局关系的属性集分成若干子集,并在这些子集上作投影运算,每个投影称为垂直分片。
③ 导出分片:又称为导出水平分片,即水平分片的条件不是本关系属性的条件,而是其他关系属性的条件。
④ 混合分片:以上三种方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片,或其他形式,但他们的结果是不相同的。
9.4.1 数据分片(二)
① 完备性条件:必须把全局关系的所有数据映射到片段中,决不允许有属于全局关系的数据却不属于它的任何一个片段。
② 可重构条件:必须保证能够由同一个全局关系的各个片段来重建该全局关系。对于水平分片可用并操作重构全局关系;对于垂直分片可用联接操作重构全局关系。
③ 不相交条件:要求一个全局关系被分割后所得的各个数据片段互不重叠(对垂直分片的主键除外)。
9.4.2 数据分配
① 集中式:所有数据片段都安排在同一个场地上。
② 分割式:所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上。
③ 全复制式:数据在每个场地重复存储。也就是每个场地上都有一个完整的数据副本。
④ 混合式:这是一种介乎于分割式和全复制式之间的分配方式。
9.5 分布式数据库的体系结构全局外部级 全局外模式
……
全局外模式全局概念级全局概念模式分片级分片模式
……
分片模式 分片模式分配级分配模式分配模式分配模式
……
局部内部级局部概念级局部概念模式局部内模式局部概念模式 局部概念模式局部内模式 局部内模式局部数据库局部数据库局部数据库映象 1
分布式数据库增加部分集中式数据库原有部分映象 2
映象 3
映象 5
映象 4
9.5.1 体系结构(一)
① 全局外模式
② 全局概念模式
③ 分片模式
④ 分配模式
⑤ 局部概念模式
⑥ 局部内部式
9.5.1 体系结构(二)
R1
R2
R3
R4
R
R1 1
R2 1
S1 (场地 1 )
R1 2
R2 2
S2 (场地 2 )
R2 3
R3 3
R4 3
S3 (场地 3 )
全局关系 逻辑片段物理映象
9.5.1 体系结构(三)
① 数据分片和数据分配概念的分离,形成了“数据分布独立型”概念。
② 数据冗余的显式控制。数据在各个场地的分配情况在分配模式中一目了然,便于系统管理。
③ 局部 DBMS的独立性。这个特征也称为“局部映射透明性”。此特征允许我们在不考虑局部 DBMS专用数据模型的情况下,研究 DDB管理的有关问题。
9.5.2 分布透明性(一)
分布透明性集中式 DB
原有的结构分布式 DB
增加的结构集中式原有的结构分布式增加的结构数据库局部内模式局部概念模式分配模式分片模式全局概念模式全局外模式用户 ( 全局应用 )
数据库局部内模式局部概念模式分配模式分片模式全局概念模式全局外模式用户 全局应用映象 5,(物理数据独立性)
映象 4,局部数据模型透明性映象 3,位置透明性映象 2,分片透明性映象 1,(逻辑数据独立性)
映象,(物理数据独立性)
映象,局部数据模型透明性映象,位置透明性映象,分片透明性映象,(逻辑数据独立性)
9.5.2 分布透明性(二)
① 分片透明性
② 位置透明性
③ 局部数据模型透明性
9.5.3 分布式数据库管理系统 (一)
DDBS的组成框架全局用户
G DD G DB
局部用户全局用户局部用户计算机
G DB M S
L DB M S
计算机
G DB M S
L DB M S
计算机
L DB M S
G DB M S
L DD L DB
L DD L DB G DD G DB
网络全局用户
G DD G DB
局部用户
L DD L DB
9.5.3 分布式数据库管理系统 (二)
① 接受用户请求,并判定把它送到哪里,或必须访问哪些计算机才能满足该要求。
② 访问网络数据字典,了解如何请求和使用其中的信息。
③ 如果目标数据存储于系统的多个计算机上,就必须进行分布式处理。
④ 通信接口功能。在用户、局部 DBMS和其他计算机的 DBMS
之间进行协调。
⑤ 在一个异构型分布式处理环境中,还需提供数据和进程移植的支持。这里的异构型是指各个场地的硬件、软件之间存在着差别。
9.5.3 分布式数据库管理系统 (三)
用户查询查询分析优化算法完整性处理模块调度处理模块
L DBMS
计算机可靠性处理模块
DB
系统
DD
网络查询处理模块分布策略错误对网络的监视信息数据局部处理命令数据定位实际的数据需要的数据
9.6.3基于半联接的优化策略(一)
数据在网络中传输时,都是以整个关系(也可以是片段)传输,显然这是一种冗余的方法。在一个关系传输到另一场地后,并非每个数据都参与联接操作或都有用。因此,不参与联接的数据或无用的数据不必在网络中来回传输。这个思想引出了基于半联接的优化策略。
这个方法的基本原理是采用半联接操作,在网络中只传输参与联接的数据。
9.6.3基于半联接的优化策略(二)
假设关系 R在场地 1,关系 S在场地 2,在场地 2
需要获得 R?S的结果。如果在场地 2直接计算 R?S
的值,那么需要先把关系 R从场地 1传输到场地 2,
其执行示意图见图 9.16。显然,传输 R的数据量较大。
可以采用半联接方法计算联接操作的值。方法如下 (设 R和 S的公共属性为 B),R?S =( R?πB
( S))? S =( R? S)?S。等式右边的式子称为
“半联接程序”。
9.6.3基于半联接的优化策略(三) 传输
④ 传输
② 传输
R? S
R
场地 1 (关系 R ) 场地 2 (关系 S )场地 (关系 ) 场地 (关系 )
⑤ ( R? π
B
( S ))? S
③ R? π
B
( S )
① π
B
( S )
场地 1 (关系 R ) 场地 2 (关系 S )
⑤ ( ( ))
③ ( )
① ( )
场地 (关系 ) 场地 (关系 )
9.6.4 基于联接的优化方法(一)
两个关系在同一场地
① 嵌套循环法:顺序扫描外层关系 R,对 R的每一个元组扫描内层关系 S,查找在联接属性上一致的元组,把匹配的元组组合起来使之成为联接结果的一部分。这种方法要求扫描一次关系 R和扫描 card( R)次关系 S(可见 S的元组越少越好),以查找匹配的元组。
② 排序扫描法:先把两个关系按联接属性进行排序,然后按照联接属性值的顺序扫描这两个关系,使匹配的元组成为联接结果的一部分。这种方法对两个关系都只扫描了一次。
但增加了排序代价。
9.6.4 基于联接的优化方法(二)
两个关系在不同场地
① 整体传输:若有联接操作 R?S,R为外层关系,S为内层关系。如果传送的是内层关系 S,则在目的地必须把它存入一个临时关系中(因为 S将被多次扫描,但传输量少)。如果传送的是外层关系 R,则内层关系 S可直接使用依次到来的
R元组,而无需保存 R(但传输量大)。
② 按需传输:只传输所需联接的元组,一次一个元组,无需临时存储器。因为每次提取都要求交换一次信息,所以传输代价较高,只有在高速局部网络中才是合理的。
9.7.1 DDB中的问题
① 数据项的多拷贝问题:由于 DDB存在着冗余,有可能一个数据存储在多个场地,因此并发控制方法和恢复方法都应保证这些拷贝间的一致性。
② 单个场地的故障:当系统中一个或多个场地发生故障时,DDBMS应当继续和其他正在运行的场地一起工作。当一个场地得到恢复时,它的局部数据库必须在它与系统重连接之前保持和其他场地同步。
③ 通讯网络的故障:系统必须有能力处理一个或多个连接场地的通讯故障。
这个问题的极端情况是发生网络分割,即将网络分割成若干分区,每个 分区内的场地可以相互通讯,而不同分区内的场地不能通讯。
④ 分布式提交:如果某些场地在提交过程中发生故障时,提交用于访问存 储在多个场地数据库的事务时也会产生问题。
⑤ 分布式死锁:死锁可能会在若干场地中发生,处理死锁的技术必须要扩 充以考虑这种情况。
9.7.2 基于数据项识别拷贝的分布式并发控制
① 主场地技术
② 有备份场地的主场地技术
③ 主拷贝技术
④ 有备份场地的主拷贝技术
⑤ 发生故障时选择一个新的协调者场地技术
9.8.3 基于投票方法的分布式并发控制
在投票方法中,没有识别拷贝,而封锁请求被发送到所有包含该数据项拷贝的场地上。每个拷贝维护它自己的锁并且可以授予或拒绝封锁。如果一个请求封锁的事务被大多数的拷贝授予锁的话,它将持有该锁并告知所有的拷贝它已经获得锁。如果一个事务在给定的间隔时间段中没有获得授予它锁的大部分投票的话,它将取消它的请求并把取消决定告知所有的场地。
投票方法被认为是真正的分布式并发控制方法,因为决策的职责驻留在所有涉及到的场地上。经实验表明,投票方法在场地间产生的信息通信量比识别拷贝方法产生的要高。如果算法要考虑投票过程中可能的场地故障时,它就会变得很复杂了。
小 结(一)
,分布计算”概念突破了集中式 DBS的框架,数据分布使系统走上分布式 DB的道路,功能分布使系统走上 C/ S道路。这是 DBS的两个发展。
C/ S系统包括一个计算机网络,通常用一个局域网连结。几乎在所有情况下,客户机都是微机;服务器有时用小型机或大型机,但多数情况下也使用微机或高档微机。应用程序在客户机上处理,DBMS
和 OS的数据管理分放在服务器上。
小 结(二)
C/ S结构经历了从两层、三层到多层的演变过程。
总的趋势是使客户机越来越“瘦”,变成浏览器;
而服务器的种类越来越多,容易实现系统的组装。
C/ S系统使应用与用户更加贴近,为用户提供较好的性能和更复杂的界面。
分布式系统是在集中式系统的基础上发展而来的。
DDB是数据库技术与网络技术结合的产物。随着计算机网络技术的飞速发展,DDBS日趋成为数据库领域的主流方向。
小 结(三)
DDB具有数据分布性和逻辑整体性的特点。 DDBS
能够支持涉及多个场地的全局应用。 DDB的数据存储有数据分片和数据分配两种策略。
DDB的模式结构为理解 DDBS提供了一种通用的概念结构。分布透明性是 DDBS追求的目标。 DDBMS
是负责管理分布环境下,逻辑集成数据的存取、一致性、有效性和完备性的软件系统。
小 结(四)
DDBS中数据分布在各个场地,系统中压倒一切的性能目标是尽量减少网络中传送信息的次数和传送的数据量。分布式查询中基于半联接的优化策略是常用的技术。
对于并发控制和恢复,DDBMS环境中会出现大量在集中式 DBMS环境中碰不到的问题。
分布式的并发控制有主场地方法和主拷贝方法,再辅之于备份场地技术。
小 结(五)
分布式 DBMS 集中式 DBMS
① 存取方式 用户 →DDBMS→ 分布式网络 OS→ 网络通信 → 局部 DBMS→ 局部 OS→DB 用户 →DBMS→OS→DB
② 数据冗余性 有控制的冗余 最小的冗余
③ 数据表示级别 (四级)用户试图,全局视图,分片视图,分配视图 (三级)外部视图,概念视图,内部视图
④ 数据存放方式 复制在多个场地,模式分散化,处理程序 也分散化 集中在一个地点
⑤ DBA 分布在各场地,进行局部控制 集中在一起
⑥ 同步 由全局 DBMS和网络 OS组成 由 OS完成
⑦ 封锁 分散控制 集中控制
⑧ 实际资源 多个 CPU,多个 DBMS 一个 CPU,一个 DBMS
⑨ 操作方式 当前方式,响应方式两种 一种方式(当前方式)
⑩ 数据一致性 所有主场地的逻辑结果是一致的,但 各个场地的复制中数据可能不一致 任何时候都需要保持数据的一致性本章的重点篇幅
( 1) 两层,三层,多层 C/S结构 。 ( 教材 P365-367)
( 2) 分布式数据存储:分片和分配 。 ( 教材 P375-377)
( 3) DDB的体系结构 。 ( 教材 P378的图 9.10,P381的图 9.12)
( 4)基于半联接的执行示意图。(教材 P387的图 9.16)