第一章分布库概述10.ppt
分布式数据库,分布式数据库,教师:申德荣电话:83691218办公室:主楼 407 e_mail:S,分布式数据库系统课程介绍,分布式数据库,1.课程名称 分布式数据库系统2.学时:323.教材:Principles of Distributed Database Systems M.Tame Ozsu&Patrick Valduriez Prentice-Hall,1999 2002.6 影印版(清华大学出版社),分布式数据库系统课程介绍,分布式数据库,4.参考教材分布式数据库系统及其应用 科学出版社 邵佩英分布式数据库 科学出版社 郑振楣 于戈 5.先修课 本科数据库原理、计算机网络 6.考试 40%:作业+测验 60%:考试,主要内容,分布式数据库,第一章 概论 第二章 分布式数据库系统体系结构 第三章 分布式数据库的设计第四章 全局查询处理和优化 第五章 分布查询的存取优化第六章 分布式事务管理第七章 分布式恢复第八章 分布式并发控制第九章 典型的分布式系统介绍,引言及准备知识分布库系统的基本概念分布库系统的作用和特点主要问题,系统结构功能结构模式结构软件结构分布式数据库系统分类字典信息的组织,分片的定义水平分片的设计垂直分片的设计分片的表示方法分配设计基于复制技术的数据分片,基本概念查询优化的基础全局优化的一般规则全局查询的分解和变换片段查询的优化,基本概念存取优化的理论基础半联接优化方法SDD-1系统优化技术枚举法优化技术,事务的基本概念分布式事务分布式事务的提交协议分布式事务管理的实现两段提交协议(2PC)的分类,基本概念集中式数据库的故障恢复方法分布式事务的恢复非阻塞分布式事务提交协议,基本概念基于锁的并发控制方法两段封锁协议(2PL)并发控制理论基础分布库并发控制方法其它典型的并发控制方法,第一章 概论,分布式数据库,引言及准备知识分布库系统的基本概念分布库系统的作用和特点主要问题分布式数据库系统介绍,第一章 概论 引言及准备知识,分布式数据库,数据库领域的发展历程 1960s-IBM IMS(层次模型的数据库管理系统)-DBTG(美国数据库任务组)提议的network data model 1970s-E.F.Codd RDB model Pioneering systems:INGRES,System R 1980s-Booming of RDBs-Federated,Multi-databse-DDB-OODB,第一章 概论 引言及准备知识,分布式数据库,数据库领域的发展历程 1990s-Merge of RDB and OODB-Internet Fame-P2P model 2000s-XML DB-Web data processing-Semantic Web-Data Integration,第一章 概论1.1引言及准备知识,分布式数据库,数据库领域的发展历程 Status of Commercial DDB-Server side P2P Support Horizontal fragmentation and 2PC Trend for Data Processing-data intensive scalable computing-cloud computing-non-relational data model,et al.分布式数据库的基本原理是分布式系统的基础了解:基本概念、问题描述、关键技术问题、算法、系统的设计与实现,第一章 概论 1.1 引言及准备知识,分布式数据库,分布数据库管理系统兴起于70年代中期,推动其发展来自两方面:一方面是应用需求,另一方面是硬件环境的发展。如:全球及全国范围内的航空/铁路/旅游订票系统、银行通存通兑系统、水陆空联运系统、跨国公司管理系统、连锁配送管理系统等等。这些应用都涉及地理上分布的团体、组织的局部业务管理和系统全局管理,采用成熟的集中式数据库管理系统已无法实现应用需求。在硬件环境上提供了功能强大的计算机和成熟的广域范围公用数据网及局域范围局域网的硬件环境支持。,第一章 概论1.1 引言及准备知识,分布式数据库系统(Distributed Database Management System,DDBMS)是地理上分散而逻辑上集中的数据库系统。即通过计算机网络将地理上分散的各局域结点连接起来共同组成一个逻辑上统一的大数据库系统。因此可以说:分布式数据库系统是计算机网络技术和数据库技术的结合的产物。分布式数据库系统与集中数据库系统一样,包含两个重要部分:分布式数据库和分布式数据库管理系统。,分布式数据库,基本概念 数据库(DB)从用户使用数据库的角度出发,可定义如下:数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述、存储,具有较小的冗余度、较高的数据独立性和易于扩展性,并可为各种用户共享。数据库设计是对一个给定的应用环境(现实世界)设计最优的数据模型,然后,按模型建立数据库。见图1.1。,分布式数据库,第一章 概论1.1 引言及准备知识,数据库管理系统(DBMS)数据库管理系统(DBMS)是人们用于管理和操作数据库的软件产品。为有效地管理和操作数据库,研制出数据库管理系统(Database Management System),使用户不必涉及数据的结构描述及实际存储,方便、最优地操作数据库。其模型见图1.2。,分布式数据库,第一章 概论1.1 引言及准备知识,数据库管理系统(DBMS),数据库管理系统可描述为用户接口、查询处理、查询优化、存储管理四个基本模块和事务管理、并发控制、恢复管理三个辅助模块组成。,图1.2 数据库管理系统模型,分布式数据库,第一章 概论1.1 引言及准备知识,数据库系统数据库系统=DB+DBMS 模式 现实世界的信息抽象到数据库存储的数据是一个逐步抽象的过程。美国国家标准协会(ANSI)和标准需求计划委员会(SPARC)根据数据的抽象级别定义了三层模式参考模型。,分布式数据库,第一章 概论1.1 引言及准备知识,三层模式,分布式数据库,第一章 概论1.1 引言及准备知识,模式-概念模式:,RELATION EMP KEY=ENO ATTRIBUTE=ENO:CHAR(9)ENAME:CHAR(15)TITLE:CHAR(10),RELATION PAY KEY=TITLE ATTRIBUTE=TITLE:CHAR(10)SAL:NUMBER(5),分布式数据库,第一章 概论1.1 引言及准备知识,INTERNAL_RELA EMPLINDEX ON E#CALL EMINXFIELD=HEADER:BYTE(1)E#:BYTE(9)ENAME:BYTE(15)TITLE:BYTE(10),分布式数据库,第一章 概论1.1 引言及准备知识,模式-内部模式:,CREATE VIEW PAYROLL(EMP_ENO,EMP_NAME,SAL)AS SELECT EMP.ENO,EMP.NAME,PAY.SALFROM EMP,PAYWHERE EMP.TITLE=PAY.TITLE,分布式数据库,第一章 概论1.1 引言及准备知识,模式-外部模式:,基础知识 介绍关系模型、关系代数和SQL语言知识。关系模型 是数据库数据模型的三种模型(层次数据模型、网状数据模型和关系数据模型)之一。关系是二维表,关系也称表。表中的一行称关系的一个元组,表中的一列称关系的一个属性。关系代数关系是一个集合,关系的元组是集合的元素。关系代数包括5个集合运算和3个特殊关系运算。,分布式数据库,第一章 概论1.1 引言及准备知识,关系代数 假设关系R和S,则集合运算为:并(UNION)运算:表示RUS或R+S。两个关系的并运算是将两个关系中的所有元组构成一个新关系。交(INTERSECT)运算:表示RS。两个关系的交运算的结果是由两个关系中公共元组组成一个新的关系。差(DIFFERENCE)运算:表示R-S。两个关系的差运算结果是由属于一个关系R,且不属于另一个关系S的元组构成的新关系。乘(PRODUCT)运算:表示RS。结果是两个关系中所有元组组成一个乘积关系。若R有m个属性,S有n个属性,则RS由(m+n)个属性组成关系;若R有i个元组,S有j个元组,则RS由(ij)个元组组成关系。除(DIVIDE)运算:表示RS。两个关系的除运算结果是满足关系S的R关系的子集。,第一章 概论1.1 引言及准备知识,关系代数,关系运算为:选择(SELECT)运算:表示(R)。选择是从指定的关系中选择满足条件的元组构成一个新的关系。投影(PROJECT)运算:表示A(R)。投影是从指定的关系中选择某些属性的所有值组成的新关系。连接(JOIN)运算:表示RS。连接是将两个关系按条件连接在一起,形成一个新关系。也可多个关系连接在一起。,分布式数据库,第一章 概论1.1 引言及准备知识,关系代数举例,分布式数据库,第一章 概论1.1 引言及准备知识,关系代数举例,第一章 概论1.1 引言及准备知识,第一章 概论1.1 引言及准备知识,关系代数举例,第一章 概论1.1 引言及准备知识,关系代数举例,是一种非过程性语言。提供了数据定义(建立数据库和表结构)、数据操纵(输入、修改、删除和更新、数据查询)、数据控制等数据库操作命令,较好地满足数据库语言的要求。由于国际标准化组织指定了SQL标准,具有可移植性,SQL又提供了灵活而强大的查询功能方便复杂的查询操作,使SQL为广大用户所采用。具体SQL命令略。,分布式数据库,第一章 概论1.1 引言及准备知识,SQL(Structured Query Language),第一章 概论 1.2分布库系统的基本概念,节点/场地,分布式数据库系统是地理上分散而逻辑上集中的数据库系统。管理分布式数据库的软件称分布式数据库管理系统。分布式系统通常是由计算机网络将各地理上分散的逻辑单位连接起来。被连接的逻辑单位称为节点(node)或场地(site)。节点/场地可是单独一台计算机也可是局域网组成。,分布式数据库,集中数据库系统,所有数据驻留在同一场地上。如图1.4:我们称传统的数据库系统为集中式数据库系统(DB)。网络节点上的集中数据库系统,分布式数据库,第一章 概论 1.2分布库系统的基本概念,分布式数据库(DDB),分布式数据库是分布在一个计算机网络上的多个逻辑相关的数据库的集合。也就是说,分布式数据库是一组结构化的数据集合,逻辑上属于同一系统,物理上分布在计算机网络的各个不同节点上。如图1.5所示。,分布式数据库,第一章 概论 1.2分布库系统的基本概念,分布式数据库管理系统(DDBMS),分布式数据库系统由分布式数据库(DDB)和分布式数据库管理系统(DDBMS)组成。分布式数据库管理系统是分布式数据库系统的一组软件。负责管理分布式数据库的数据管理和操作。由于分布式数据库管理系统基于分布环境下实现,必保证逻辑数据的一致性、完整性等,因此,其复杂度远高于集中数据库管理系统。,分布式数据库,第一章 概论 1.2分布库系统的基本概念,分布式数据库 用户视图,分布式数据库,第一章 概论 1.2分布库系统的基本概念,分布式数据库 举例,分布式数据库,第一章 概论 1.2分布库系统的基本概念,第一章 概论 1.2分布库系统的基本概念,分布式数据库 举例,分布式数据库的特性 数据透明性 场地自治性 数据透明性:基于分布库的划分层次:全局外层(用户层)、全局 概念层、局部概念层和局部内层。可知:应用程序与系统实际数据组织相分离,即数据具有独立性或透明性。具体体现为分布透明性、复制透明性和分片透明性。,分布式数据库,第一章 概论 1.2分布库系统的基本概念,数据透明性,分布透明性:全局用户看到的是全局数据模型的描述,用户象使用集中数据库一样,不需考虑数据的存储场地和操作的执行场地。复制透明性:分布数据库支持有控制的数据冗余,即数据可重复存储在不同的场地上,提高系统的可用性和可靠性,加强系统处理的并行性。分片透明性:分片是将一个关系分成几个子关系之中的一个子关系。根据实际需求,一个分片可能存储在不同的场地上(实际存储在场地上称分段)。,分布式数据库,第一章 概论 1.2分布库系统的基本概念,数据透明性,逻辑层是用户语义层,物理层是具体实现细节。逻辑层的语义与物理层的实现分离开来,对高层系统和用户隐蔽了实现细节。即应用程序无须考虑数据分片细节,对分片的调用(分片到分段的映射)由系统自动完成。,分布式数据库,第一章 概论 1.2分布库系统的基本概念,场地自治性,在分布式数据库系统中,为保证局部场地独立自主能力,分布场地具有自治性。多个场地或结点的局部数据库在逻辑上集成为一个整体,并为分布式数据库系统的所有用户使用,这种应用称全局应用,其用户称全局用户。分布式数据库系统也允许用户只使用本地的局部数据库,该应用称局部应用,其用户为局部用户。这种局部用户独立于全局用户的特性称局部数据库的自治性,也称场地自治性。具体体现为:设计自治性:局部数据库管理系统(DBMS)能独立决定它自己局部库的设计。通信自治性:局部数据库管理系统(DBMS)能独立决定是否和如何与其他场地的DBMSs通信。执行自治性:局部数据库管理系统(DBMS)能独立决定以何种方式执行局部操作。,分布式数据库,第一章 概论 1.2分布库系统的基本概念,局部用户与全局用户,第一章 概论 1.2分布库系统的基本概念,什么不是分布式数据库系统,松耦合/紧耦合的多处理器系统网络节点上的集中式数据库系统多数据库系统?网格数据库?数据库网格?P2P数据库系统?数据库集成系统?联邦数据库系统?,分布式数据库,第一章 概论 1.2分布库系统的基本概念,分布式的多处理器系统,集中式管理系统存在一个场地上;分布式管理系统分布在网络上的多个场地上。并行系统根据三要素P(处理机)、M(内存)、D(磁盘)组成方式不同,有三种体系结构,其系统结构如下所示。,分布式数据库,第一章 概论 1.2分布库系统的基本概念,共享内存系统(Shared-Memery Architecture),分布式数据库,第一章 概论 1.2分布库系统的基本概念,共享磁盘系统(Shared-Disk Architecture),无共享系统(Shared-Nothing Architecture),分布式数据库,第一章 概论 1.2分布库系统的基本概念,最基本不同是操作模式。多处理器系统是对称的,由一定数量的处理器、内存组件组成,由一个或多个同样的操作系统严格控制每一个处理器的任务。而分布计算系统是异构操作系统以及硬件环境。,第一章 概论-1.2分布库系统的基本概念,分布式数据库系统既不是多处理机系统也不是基于服务器的系统例:一个全国范围的加工制造公司的分布系统(1)每一地域的分公司保存自己公司的雇员信息(employees)。(2)研发部门(R&D facility)维护其研发项目信息。(3)加工工厂保存工程信息并可访问研发场地的研发信息和仓库数据(warehouse)。(4).总部保存区域的市场销售信息,并可访问工厂和仓库的帐目数据(inventory)。,分布式数据库,第一章 概论-1.2分布库系统的基本概念,例:一个全国范围的加工制造公司的分布系统,分布式数据库,特点:数据分布在各个场地上,如公司的雇员(employee)和库房的帐目信息(inventory)。查询涉及多个场地,如查询年龄小于45岁的雇员,涉及所有的场地雇员信息。,第一章 概论-1.2分布库系统的基本概念,DDB 与 C/S DB的区别分布数据与集中数据(Distributed data versus centralized data)集中的功能和分布的功能(Centralized function versus distributed function),分布式数据库,第一章 概论 1.3分布库系统的作用和特点,作用分布式数据库系统是地理上(或物理上)分散而逻辑上集中的数据库系统。适合于分散型组织结构的任何信息系统。如:航空公司订票系统、陆、海、空军事指挥系统、CIMS制造业、银行通存通兑系统和连锁配送系统等等。以上每一系统都涉及分散在不同地理位置上数据的一致性、完整性及有效性,是集中式数据库无法满足的。在此推动下,研制出分布式数据库系统,有效地适应了地理上分散的、网络环境下的、逻辑上统一的分布式系统的需求。,特点,分布式数据库系统是在集中式数据库和计算机网络技术基础上发展起来的,同时提出了许多新观点、新方法和实现的新技术,有效地提高了分布系统的性能。因此,分布式数据库系统具有许多集中库系统所不具备的优点。但由于分布库系统复杂,有些技术的实现还不完善,如:恢复开销庞大,导致系统效率严重下降;难于达到完全透明等。,分布式数据库,第一章 概论 1.3分布库系统的作用和特点,优点,提高系统性能,如:吞吐率和响应速度提高。可利用现有设备和系统,降低投资。系统允许存储副本,提高可靠性、可用性和并行执行度。根据实际需要,可增加或减少某一场地。系统具有可扩展性。系统资源和数据分布在物理上不同场地上,为系统所有用户共享。,分布式数据库,第一章 概论 1.3分布库系统的作用和特点,不足,经验不足,系统不很完善。系统复杂。维护开销大。需分布控制。安全问题。,分布式数据库,第一章 概论 1.3分布库系统的作用和特点,分布库系统复杂因素,数据复制场地故障分布式事务处理,分布式数据库,第一章 概论 1.3分布库系统的作用和特点,分布式数据库设计,分布式数据库设计中需要考虑下面几个问题:如何合理分布数据于各个场地上;如何设定复制型和非复制型数据;如何实现目录管理。,分布式数据库,第一章 概论 1.4主要问题,查询处理,事务到数据操作命令的转换问题;以最小代价(访问时间)执行查询策略的优化问题。并发控制对多个用户并发访问的同步问题;事务的一致性和隔离性问题;解决和预防死锁问题。,分布式数据库,第一章 概论 1.4主要问题,可靠性,系统故障恢复问题;事务的原子性和耐久性实现问题。安全性与完整性在安全性与完整性方面,要解决:用户授权和认证问题;访问权限控制问题;数据完整性约束问题。,分布式数据库,第一章 概论 1.4主要问题,相互关系,分布式数据库,第一章 概论 1.4主要问题,早期的一些DDBS原型 SDD-1系统:70年代后期到80年代初完成,由美国国防部委托美国计算机公司(CCA)研制的第一个原型同构型的关系数据模型(时间戳并发控制),ARPANET网运行。R*系统:80年代初,由美国IBM公司的San Jose研究室设计开发的原型。是System R关系数据库系统在分布环境中的扩充。采用两段锁和两阶段提交技术,不支持分片和副本。,支持水平、垂直分片,以及数据复制;时戳、半联接等的提出;,第一章 概论 1.5 分布式数据库系统介绍,Distributed INGRES分布式INGRES是INGRES系统的进一步研究成果,由美国加利福尼亚大学伯克利分校研发。该系统支持QUEL查询语言。支持对关系水平分片,但不支持数据副本。采用基于锁的并发控制方法。目录分为全局目录和局部目录。法国SIRIUS计划开发的几个DDBS原型:计划1976年创建 SIRIUS-DELTA系统,法国信息与自动化技术研究所(INRIA)1977研制的同型的DDBS,于1981年提出异构型版本(封锁与死锁预测,有完善的恢复机制)。是当时世界上著名的四大分布式数据库样板系统之一。,支持关系模型,支持水平、垂直分片。,第一章 概论 1.5 分布式数据库系统介绍,法国SIRIUS计划开发的几个DDBS原型:计划1976年创建MICROBE系统是在SIRIUS-DELTA系统基础上,吸收其他系统优点,于20世纪80年代初推出的在微机局域网上的DDBS,采用关系数据模型,同型的DDBS,是高级的分布执行系统。是世界上最先对请求进行动态分布式的分解定位与并行处理的算法。即分布式查询优化是动态执行的。POLYPHEME系统,1979年公布的异构型版本。是利用现有计算机网络和存在于各节点上数据库实现分布式数据库系统的杰出代表,是欧洲第一个投入运行的DDBS。(无并发控制)。,第一章 概论 1.5 分布式数据库系统介绍,VDN系统。德国柏林大学1977-1979开发的关系数据模型,同型的DDBS。支持关系的水平分片和副本,采用封锁和预防死锁。POREL系统。德国斯图加特大学1975-1981开发的关系数据模型,同型的DDBS。支持关系的水平分片和副本,采用封锁和预防死锁,共用系统的并发控制、恢复及存取机制。未真正在网上运行。,第一章 概论 1.5 分布式数据库系统介绍,分布式数据库系统的发展 20世纪80年代以来:相继推出了扩充的分布式DBMS。标志着分布式数据库系统步入实用阶段。这一时期商品化的产品如下:分布式 Ingres(D-Ingres)。加州大学伯克利分校1986年推出的,是Ingres关系数据库系统的分布式版本。支持关系的水平分片,但不支持副本,采用封锁机制。SQL*Star。ORACLE公司1986推出的,是异质型的DDBS.1993年公布了OracleV7.1,1997年推出商品化软件V8.0。,第一章 概论 1.5 分布式数据库系统介绍,分布式数据库系统的发展20世纪80年代以来,这一时期商品化的产品如下:Sybase SQL Server。SYSBASE1987年推出的。Informix-Online.INFORMIX 公司20世纪90年代推出。C-POREL.1990年由中国科学院数学所等单位开发集成的。仍未推出真正完全透明的DDBMS,第一章 概论 1.5 分布式数据库系统介绍,Oracle 分布式数据库Oracle支持异构的分布式数据库系统,即在系统中存在有非Oracle数据库。Oracle数据库服务器通过连接于一个代理(agent)的异构服务(Heterogeneous Services)来访问非Oracle数据库。异构服务(Heterogeneous Services(HS)是集成于Oracle服务器内的组件,是Oracle 透明网关产品套件中的使能技术。HS为Oracle网关产品以及其它的异构访问工具提供了通用的体系结构和管理机制。数据库链(database links)是一个指针,定义从一个Oracle数据库服务器到另一个Oracle数据库服务器的单向通信路径。,第一章 概论 1.6 现代分布式数据库产品分布特性,DB2分布式数据库 数据分区特性(Data Partitioning Feature,DPF),用于将数据库分成多个数据库分区。每个数据库分区有它自己的一组计算资源,包括 CPU 和存储。当处理一个查询时,请求也相应地被划分成多个部分,以便让各个数据库分区各自处理其负责的那些行。DPF可通过增加数据库分区来提高处理能力。DB2 Connect 由编程接口(被实现为 JDBC、SQLJ、ODBC、DB2 CLI、OLE DB、.NET 和 Embedded SQL 驱动程序)和一个通信基础设施组成。DB2 Connect附带了一个内建的基础级联邦数据库功能,当在 服务器上部署了 DB2 Connect 服务时,就可以创建一个联邦数据库。应用程序就可以连接到这个联邦数据库,把请求路由到真正的数据源。,第一章 概论 1.6 现代分布式数据库产品分布特性,SYBASE 数据库 SYBASE数据库采用基于组件的中间件为分布异构环境提供全局数据访问和事务管理控制。SYBASE复制服务器(Sybase Replication Server)采用基于事务的复制技术,可在分布环境下实现多厂商数据库间的数据复制。OmniCONNECT是支持异构、分布数据库系统全局透明访问和数据集成的数据库网关。OmniCONNENT的特性之一是使用了全局存储过程,以一致的方式访问多个数据源。DirectCONNECT产品是用于与非Sybase数据源建立联系的访问服务器,是SYBASE的中间件模块,用于实现客户与企业数据源的连接。它支持以DB-Library及ODBC应用程序接口(API)编写的客户应用。,第一章 概论 1.6 现代分布式数据库产品分布特性,SQL Server 数据库 Microsoft 分布式事务处理协调器(MS DTC)是一个事务管理器,它允许客户端应用程序在一个事务中包含多个不同的数据源。MS DTC 服务协调正确完成分布式事务,以确保所有服务器上的全部更新为永久性的,或在发生错误时删除所有更新。OLE DB 实现从多异类数据源中访问数据。这些数据源可以存储于一台或多台计算机。分布式查询使用 OLE DB 作为基本接口,SQL Server可以像引用 SQL Server 表一样引用 OLE DB 访问接口中的行集。,第一章 概论 1.6 现代分布式数据库产品分布特性,Fundamental References,M.T.zsu and P.Valduriez.Principles of Distributed Database Systems,2nd edition.Prentice-Hall,1999.M.T.zsu and P.Valduriez.“Distributed and Parallel Database Systems”,In Handbook of Computer Science and Engineering,A.Tucker(ed.),CRC Press,1997,pages 10931111(Chapter 48).M.T.zsu and P.Valduriez.“Distributed Database Systems:Where Are We Now?”Computer,August 1991,24(8).M.T.zsu.“The Push/Pull Effect-Can Distributed Database Technology Meet The Challenges of New Applications?”Database Programming&Design,April 1997.,