高 级 数 据 库 技 术
姓
学
名 杜兆龙
号 S20130409
学 科 专 业 软件工程
学
院 计算机学院
完 成 年 月 2014.06
目录
摘要 .....................................................................................................................................................1
引言 .....................................................................................................................................................1
一、分布式数据库系统概述 ............................................................................................................ 3
(一) 关系数据库 .................................................................................................................. 3
(二) 分布式数据库系统 ...................................................................................................... 4
二、 分布式数据库系统结构 .......................................................................................................... 6
(一) 分布式系统体系结构 .................................................................................................. 6
(二) 数据库集成和对等数据库 .......................................................................................... 8
三、 分布式数据库设计 ................................................................................................................ 10
(一) 分片设计 .................................................................................................................... 10
(二) 分配设计 .................................................................................................................... 11
四、 分布式数据库查询优化与存取优化.................................................................................... 11
(一) 分布式查询优化 ........................................................................................................ 11
(二) 分布式查询的存取优化 ............................................................................................ 13
五、 分布式数据库系统事务管理、故障恢复和并发控制 ........................................................14
(一) 集中式数据库的事务管理、故障恢复和并发控制 ................................................14
(二) 分布式事务管理 ........................................................................................................ 15
(三) 分布式故障恢复 ........................................................................................................ 16
(四) 分布式并发控制 ........................................................................................................ 17
六、 结语 分布式数据库结语 ...................................................................................................... 18
七、 参考文献:............................................................................................................................ 19
1
分布式数据库系统概述
摘 要:数据库系统的发展起始于层次模型 IMS、网状模型、关系模型,然互发
展到多数模型的共存。尤其是科德在 1970 年发表的“一种大型共享数据库的关
系数据模型”奠定了关系型数据库的基础。但是随着科学技术的发展,各个行业
的需求对于数据库的要求产生了巨大的需求和推动力。同时由于下面的原因:一,
应用的需求;二硬件环境的发展。这种涉及到多个地域分布的企业和组织机构的
业务的要求,对于集中式数据库则不能满足企业的这种需要。同时在与硬件环境
上,快速发展的互联网和计算机技术提供一种技术支持。正是由于这两方面的原
因,一种对于可以分布于不同物理地址、符合现实需要、又具备计算机数据库要
求的系统成为了人们的渴望。于是分布式数据库系统应声而出,并被各国纷纷研
究和开发。本文主要对于分布式数据库系统进行一个综述性的介绍,并主要从以
下几个方面做出介绍:分布式数据库系统的概念和特性,以及分布式数据库系统
的作用和特点;分布式数据库系统的结构;分布式数据库系统的设计方法;分布
式查询优化技术;分布式事务管理和分布式恢复技术;并发控制等内容。
关键词:分布式数据库;分布式查询存取优化;分布式事务管理
引言
数据库系统的发展起始于 19 世纪 60 年代,从 IBM 的层次模型 IMS、网状
模型、关系模型,发展到多数模型共存的(同构和异构及其混合的形式共存的现
状)。尤其是三位在数据库领域获得图灵奖的得主,查尔斯.巴赫曼,埃德加.科德
和詹姆斯.格雷三人所对于数据库发展的贡献。尤其是科德在 1970 年发表的“大
型共享数据库的关系数据模型”奠定了关系型数据库的基础。随着科学技术的发
展,各个行业的需求对于数据库的要求产生了巨大的推动力,使得数据库和分布
式技术、并行计算技术、人工智能等进行有效的结合,而产生很多新的数据库技
1
术。而分布式数据库技术则起源于上世纪 70 年代中期。推动其发展的两个原因
是:一,应用的需求;二硬件环境的发展。这种涉及到多个地域分布的企业和组
织机构的业务不仅仅包含局部管理,同时对于全局的调度和管理也有很高的要
求,而集中式数据库则不能满足企业的这种需要。同时在与硬件环境上,快速发
展的互联网和计算机技术。正是由于这两方面的原因,一种对于可以分布于不同
物理地址、符合现实需要、又具备计算机数据库要求的系统出现成为了人们的渴
望。
于是从那时开始对于分布式数据库系统的研究和开发便纷纷开始。最早的系
统有美国的 SDD-1(CCA 公司开发),IBM 公司的 R 分布式数据库系统,伯克利
分校的 INGRES 系统等等。同时随着技术的发展,商业数据库 ORACKE、Sybase、
DB2 等也开始着手引入分布式数据库的技术,他们都支持基于组件和中间件的
松散耦合事务管理机制来实现分布式数据库的管理,具有高灵活性和可扩展性的
优点,并且将替代传统分布式中紧耦合性事务管理的机制。
近年来,随着 Internet 和 WEB 的蓬勃发展,WEB 系统下的分布式系统已成
为主流,并且随着云计算、物联网等新兴技术的发展,更加突出分布式数据库技
术的重要地位。分布式数据处理是该系统中必不可少的重要组成部分,它涉及到
数据的分布式存储管理、分布式数据的查询与优化、分布式事务管理、故障恢复,
以及并发控制等内容。[1]
本文主要介绍分布式数据库系统的概念和特性,以及分布式数据库系统的作
用和特点。这是第一部分内容。第二部分讲述分布式数据库系统的结构。第三部
分讲述分布式数据库系统的设计方法,其中包括分片和分配的设计。第四部分讲
解分布式查询优化技术,包括查询分解到查询局部化,再到全局的查询存储优化,
最后是局部的查询优化等内容。第五部分则是分布式事务管理技术和分布式恢复
及并发控制,事务管理包含事务的概念,事务的实现模型,执行管理的模型等。
分布式恢复则是对于故障、恢复的方法、及可靠的协议的讲述,其中会结合到集
中式数据库的内容。然后是并发控制,包含并发控制的概念,并发控制的方法,
关于锁的讲解,及死锁的管理等等。
2
一、分布式数据库系统概述
(一)关系数据库
科德在 1970 年发表的“大型共享数据库的关系数据模型”奠定了关系型数
据库的基础。虽然当时科德在其公司发表的该论文没有引起重视,但随后当该论
文在国际会议上引起共鸣时,关系数据库就已经奠定了其重要地位。Oracle 则应
势而起。
关于数据模型主要包括三部分:数据结构、数据操作、完整性约束。数据结
构主要有:层次模型、网状模型、关系模型等。而关系模型我们又可以叫做二维
表结构,或者是关系实体模型,其实他们都是等价的。现在的数据库好多都是这
种多模型共存的异构网络。
此次在数据操作上则有关于关系代数,关系演算、SQL 语言等。关系代数
则是数据库系统的内部语言,SQL 则是结构化查询语言,是数据库外部语言,
即查询语句。关系演算则是一个类似于形式化的表达方式。
在数据完整性约束则有实体完整性、参照完整性、用户自定义完整性。实体
完整性则是实体的主键不为空;参照完整性则是从表中外键引用主表中主键,主
从表必须一致于主表属性;用户自定义完整性则是用户自己定义的约束,如默认
属 性 值 等 。 同 时 在 设 计 数 据 库 是 还 有 一 些 范 式 需 要 进 行 考 虑 , 有
1NF,2NF,3NF,BCGA,5NF 等等,1NF 是实体完整性,不可再分。2NF 消除实体内
部分依赖。3NF 则是消除依赖传递问题。当然设计一般满足 3 范式即可,同时也
需要根据实际情况考虑,正所谓水无常态,火无常形,有些时候存在一些适当冗
余也是可以的。当然随着设备性能和技术发展,未来也许会满足 4 范式、5 范式
的要求。这就是规范化的理论。
对于关系数据库,它的结构和分布式数据库架构有所不同,它是三层模式,
两层映射。对应于图 1,上层是多个子模式,可以对应与全局外模式,然后是子
模式到模式的映像,接着是(全局)模式,在到内模式的映像,最后是(局部)
内模式。当然这没有全局和局部之分,因为他们都是集中式数据库,分布于一个
物理站点,当其发展到分布式数据库时,这就变成了四层模式三层映射。
3
关于对于数据库的设计我们一般都是遵循着从需求分析,到概要设计(得到
ER 模型),再到逻辑设计(构建数据模型),再到物理设计(生成对应于特定数
据库中表),最后实施阶段。因此在这一过程中我们要灵活运用设计经验和规范
化理论的内容,做到有的放矢。
子模式 1
子模式 2
子模式 n
映像
映像
模式
内模式
图 1
同时对于集中式数据库当然也涉及到查询优化、故障恢复、并发控制等内容。
集中式的这些内容对于分布式数据库的局部 DB,也就是单个站点上的处理是类
似的,同时也有一些分布式所特有的不同之处,这在分布式讲解中会谈到。
(二)分布式数据库系统
分布式数据库系统是应应用需求和硬件的环境发展而发展起来的。相对于集
中式数据库系统有很大的不同,首先在其概念上,它是物理上分布于不同站点,
逻辑上集中管理,通过计算机网络将其直接连接到一起的系统,屏蔽了物理分布
的特性(分布透明性),感觉不到异地的差异,实现无缝连接。同时对于分布式
数据库系统实行集中管理和局部控制分散管理相结合的方式。本地数据本地保存
及维护,同时又可以存取异地的数据,异地数据有全局管理(协调者)全局控制。
从定义我们可以看出,一个分布式数据库系统应该具有的特点是一下几个方面:
(1) 物理分布性,分散在多个场地,这是与集中式数据库的最大差别;
(2) 逻辑上的整体性,这边要求对于物理分布要透明,这与分散式数据库是一
4
种巨大的差别,这其中有全局数据库 GDB 和局部数据库 LDB,他们分别
对应于 GDBMS 和 LDBMS;
(3) 站点的自治性,这具有自治系统的特点,具有智能的,它与多处理及系统
的调度安排是不同的。
跟对于物理分布性和逻辑整体性我们也可以得出关于分布式数据库的一些细微
的特征:
(1) 数据对于各个站点是透明的,这包括数据分片透明、数据复制透明、数据
位置的透明;
(2) 集中与自治的结合的策略;
(3) 适当的冗余,这虽然会容易造成数据的不一致性,但是对于分布式用户查
询和检索速度会提高,提高系统性能和可靠性可用性,但不利于数据的更
新;
(4) 事务管理上的分布性。
对于分布式数据库的类型,按照局部数据库管理系统的数据模型可以分为同
构性和异构性,当然同构型又可以再分。这也是多种集中式数据库数据模型
和不同厂商开发产品不同的一种结果。但按全局控制系统的类型又可以分
为:全局集中控制型、全局控制分散型、全局控制可变型(又有主从之分)。
这种分类主要是由于全局控制的分布不同而形成的。
当然分布式系统中关键技术如数据库的设计(分片和分配涉及等)、查询优
化、事务和并发控制(故障恢复)、安全性等等都是其关键。这是由于这些,分
布式展现出独特的优势:
(1) 适合分布式管理,有效提高系统性能;
(2) 经济灵活性好;
(3) 系统可靠和可用性强。
同时分布式系统也存在一些缺点:
(1) 系统设计复杂,分片和分配、系统性能、响应速度、可用性都会彼此受到
影响。尤其分布式事务管理,故障恢复,并发控制仍然是复杂的;
(2) 系统处理和维护复杂,尤其是数据的一致性,这更需要事务和故障方面的
处理;
5
(3) 数据库安全和保密性难于控制,因为分布式特性和自治性,不同场地的处
理可能不同等等。
二、分布式数据库系统结构
(一)分布式系统体系结构
体系结构是规范系统的指南。通常我们可以用三种不同的角度来描述一个系
统的体系结构,分别是基于层次的结构、基于组件结构和基于数据模式结构的描
述方法。基于层次的结构从系统不同层次上的功能对于系统进行描述;基于组件
的描述则是从构成系统的组件及组件间的关系描述;基于数据模式的结构描述从
定义不同的数据类型结构及其关系,定义不同视图提供给相应的组件使用。而基
于数据模式的结构非常适用于数据库的架构。
基于层次的描述可以使客户端/服务器的描述,可以也是基于“中间件”的
客户端/服务器结构,图 2 是基于客户端和服务器的描述形式图。
全局请求
用户 1,用户 2,用户 n…..
AP
AP
AP
客户端
服务端
DP
DB
CM
DP
DB
图 2
DP
DB
AP 为应用处理器,完成客户端的用户查询处理和分布式数据处理的软件模
块。DP 为数据处理器,复杂进行数据管理的软件模块。CM 为通信处理器,负
6