[信息与通信]专题四一分布式数据库.ppt_第1页
[信息与通信]专题四一分布式数据库.ppt_第2页
[信息与通信]专题四一分布式数据库.ppt_第3页
[信息与通信]专题四一分布式数据库.ppt_第4页
[信息与通信]专题四一分布式数据库.ppt_第5页
已阅读5页,还剩142页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布式数据库系统 Distributed Database System (DDBS),- 2008- ,数据库系统,数据与信息 信息数据处理 数据库:以一定的组织方式存储在一起的、能为多用户共享的、与应用程序彼此独立的相互关联的数据集合。 一个完整的数据库系统计算机系统 数据库数据库管理系统 应用程序集合 数据库管理人员,数据库的体系结构,应用程序A 应用程序B 应用程序C 外模式1 外模式2 外模式3 模 式 内模式 数据库,减少数据冗余 数据共享 数据独立性,模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。在数据库中提供两级映象功能,即外模式/模式映象和模式/内模式映象。对于每一个外模式,数据库系统都有一个外模式/模式映象,它定义了该外模式与模式之间的对应关系。这些映象定义通常包括在各自外模式的描述中,当模式改变时,由数据库管理员对各个外模式/模式的映象做相应改变,可以使外模式保持不变,从而应用程序不必修改,保证了数据的逻辑独立性。数据库中只有一个模式,也只有一个内模式,所以模式/内模式映象是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变了,由数据库管理员对模式内模式映象做响应改变,可以使模式保持不变,从而保证了数据的物理独立性。,通俗一点,外模式(external schema) 用户与数据库系统之间的接口,对用户来说可以使用数据操纵语言 ,例如通过select看到一个表的数据。 内模式(internal schema) 数据库在物理存储方面的描述,定义所有的内部记录类型、索引和文件的组织方式以及数据控制方面的细节,具体怎么存储数据,备份等。 采用 数据定义语言DDL 。,数据模型,三个世界:现实世界、概念世界、机器世界 概念数据模型:ER模型 结构数据模型:层次数据模型 网状数据模型 关系数据模型 面向对象数据模型,实体关系模型(E-R模型),E-R图包括三个要素:实体、属性、实体之间的联系。 Sno Sname Cno Cname Student SC Course Grade,Back,层次模型,层次模型是将现实世界的实体集彼此之间抽象成一种自上而下的层次关系。例如一个学校的组织情况,如图: 学 校 年级 教研室 学生 教师,Back,网状模型,对于现实世界的另外一些问题,它们就不符合层次模型的关系,层次模型就不能正确有效地反映。例如在讨论学校中教师、学生和开设课程这类问题时,可以构造出如图所示模型。 学生 教师 课程,Back,关系模型,在关系模型中,现实世界的数据组织成一些二维表格,称为关系,用户对数据的操作抽象为对关系的操作。 学号 姓名 性别 学号 课程号 成绩 课程号 课程名,Back,面向对象模型,最基本的概念是对象(Object)和类(Class) 类Student 类Course Sno Cno Sname Cname Sex Teacher,关系数据模型,基本概念 关系:一个关系就是一张二维表,每个关系要有一个关系名, 一个关系可以存储为一个文件。 元组:表中的一行称为元组。 属性:表中的一列称为属性。 域:属性的取值范围。 关键字:属性或属性组合,其值能唯一地标识一个元组。 元数:关系模式中属性的数目。 主键 外键 候选键 ?,关系数据模型,主键 外键 候选键 主键(primary key):一张表(关系)的一个列(属性)或多个列可以作为主键,但是前提是让这个列作主键,这个列就能保证该列下的各个行(元组)的值不能相同,比如说你用姓名属性作主键的话,那么这个主键就不一定可以,如果有两个人是同样的名字的话,就不能做到该属性下的各个元组数据的值不同,如果用阿拉伯数字作主键就是一个很好的选择。 外键(foreign key):一张表(关系)的列(属性)它同时存在表1和表2中,它不是表1的主键,而是表2的主键,就可以说他是表1的外键。 候选键(Candidate Key):能唯一标识表(关系)中行(元组)的列(属性),则称该属性为候选键,也称 候选关键字 或 候选码;由此来看候选键可以不只一个,主键同时也是候选键。,关系数据模型,关系模型的特点: 、关系必须规范化:规范化指关系模型中的每一个关系模式都必须满足一定的要求。 、模型概念单一。 、集合操作:操作对象和结果都是元组的集合,即关系。,数据完整性,实体完整性 域完整性 引用完整性 用户定义完整性,实体完整性指表中行的完整性。要求表中的所有行都有唯一的标识符,称为主关键字。主关键字是否可以修改,或整个列是否可以被删除,取决于主关键字与其他表之间要求的完整性。 实体完整性规则规定基本关系的所有主关键字对应的主属性都不能取空值,例如,学生选课的关系选课(学号,课程号,成绩)中,学号和课程号共同组成为主关键字,则学号和课程号两个属性都不能为空。因为没有学号的成绩或没有课程号的成绩都是不存在的。,域完整性是指给定列的输入有效性。要求表中指定列的数据具有正确的数据类型、格式和有效的数据范围。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过 CHECK 约束和规则)或可能值的范围。域完整性通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则来实现。,引用完整性指被引用表中的主关键字和引用表中的外部主关键字之间的关系。如被引用行是否可以被删除等。 在现实生活中的实体之间总是存在着某种联系,在关系模型中实体与实体之间的联系都是用关系来描述的,这样就存在关系与关系之间的引用。例如,有学生实体和班级两个实体集合: 学生(学号,姓名,性别,年龄,班级编号)其中学号为主码。 班级(班级编号,学生数量,班主任姓名),其中班级编号为主码。 这两个关系之间存在着属性的引用,即学生关系引用了班级关系的主关键字“班级编号”,显然,学生关系中的“班级编号”值必须是在班级表中确实存在的班级的班级编号,即班级关系中有该班级的记录。这说明学生关系中某个属性的取值要参照班级关系的属性取值。 在这种情况下,“班级编号“不是学生关系的主关键字,但是却是班级关系的主码,则称“班级编号“是学生关系的外关键字。,用户定义完整性使得可以定义不属于其它任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性。,建立和使用约束的目的是保证数据的完整性,约束是SQL Server强制实行的应用规则,他能够限制用户存放到表中数据的格式和可能值。约束作为数据库定义的一部分在CREATE TABLE语句中声明,所以又称做声明完整性约束。约束独立于表结构,可以在不改变表结构情况下,通过ALTER TABLE语句来添加或者删除。在删除一个表时,该表所带的所有约束定义也被随之删除。,PRIMARY KEY约束 在数据库的每个表中,经常有通过一列或者多个列,唯一的标识表中的每一行。就好像我们平时使用的身份证,能够唯一的标识每个人一样。这样的一列或者多个列,被称为主键,通过主键,可以强制表的实体完整性。 每一个表中只有一个PRIMARY KEY约束,更简单的说,他是通过建立唯一索引保证指定列的实体完整性。在使用PRIMARY KEY约束时,该列的空值属性必须定义为NOT NULL,也就是说拥有主键的那一列,不能为空。 由于PRIMARY KEY约束确保唯一数据,所以经常用来定义标识列。标识列就是表中已经指派了标识属性的列。标识属性生成唯一数字。 为什么非要在一个表里面建立主键? 建立主键不仅可以保证表内数据的完整性,而且在为表建立主键的同时,Microsoft SQL Server能够通过为主键创建唯一索引强制数据的唯一性。,DEFAULT约束 使用DEFAULT约束,如果用户在插入新行是没有显示为列提供数据,系统会将默认支赋给该列。例如,在一个表的payterms列中,可以让数据库服务器在用户没有输入时填上”?”或者”fill in later”。,CHECK约束 CHECK约束的主要作用是限制输入到一列或多列中的可能值,从而保证SQL Server数据库中数据的域完整性。例如,可以在建立用户使用库时,强制用户的密码在10位以上。每个标允许建立多个CHECK约束。在CHECK约束中可以包含搜索条件,但不能包含子查询。 同样,我们可以为表中的每个列建立约束,每个列可以拥有多个CHECK约束,但是如果使用CREATE TABLE语句,只能为每个列建立一个CHECK约束。如果CHECK约束被应用于多列时,他必须被定义为表级CHECK约束。 在表达式中,可以输入搜索条件,条件中可以包括AND或者OR一类的连接词。列级CHECK约束只能参照被约束列,而表级CHECK约束则只能参照表中列,它不能参照其他表中列。 例如,我们使用下面的语句在TB_CHECK_CONSTRAINT表中新加入一列ZIP_CODE及其相应的CHECK约束: ALTER Table TB_CHECK_CONSTRAINT ADD ZIP_CODE char(6) null CONSTRAINT CH_ZIP_CODE check (ZIP_CODE like 0-9 0-9 0-9 0-9 0-9 0-9),UNIQUE约束 该约束应用于表中的非主键列,UNIQUE约束保证一列或者多列的实体完整性,确保这些列不会输入重复的值。例如,表中UserName列为主键,但是其中还包括身份证号码列,由于所有身份证号码不可能出现重复,所以可以在此列上建立UNIQUE约束,确保不会输入重复的身份证号码。 它与PRIMARY KEY约束的不同之处在于,UNIQUE约束可以建立在多个列之上,而PRIMARY KEY约束在一个表中只能有一个。,FOREIGN KEY约束 FOREIGN KEY约束为表中的一列或者多列数据提供数据完整性参照。通常是与PRIMARY KEY约束或者UNIQUE约束同时使用的。 例如,在BookStores表中的author_id列以及title_id列分别参照了Authors表中的author_id列以及Titles表的title_id列。在向BookStores表中插入新行或修改其中的数据时,这两列的数据值必须在Authors表和Titles表中已经存在,否则将不能执行插入或者修改操作。,关系模型对关系的限定,每个关系仅有一种关系模式 每个关系模式中属性的个数是固定的,并必须命名,在同一个关系模式中,属性必须是不同的 每个属性是不可分解的 在关系中元组的顺序(即行序)是无关紧要的 在关系中列的顺序也是无关紧要的 关系中不允许出现重复元组,关系模式上的约束条件,有两类限制: 每个属性的取值限制属性的值域规定 不同属性之间的相互制约各种依赖关系 (函数依赖、多值依赖) 函数依赖:假设给定 X 属性的值,就知道 Y的值,那么 X 函数决定 Y 如果R的两个元组在属性A1 ,A2 , ,An 上一致,则它们在另一个属性B上也一致,那么 A1,A2,An函数决定B,记作A1A2AnB 多值依赖:设R(U)是属性集U上的一个关系。X、Y、Z是U的子集,且Z=U-X-Y。关系R(U)中多值依赖XY成立,当且仅当对R(U)的任一元组r,给定一对(x,z)值,有一组y的值,这组值仅仅取决于x值,而与z值无关。 对给定X的值,则Y的取值与Z的取值无关,关系运算,关系的基本运算有两类: 传统的集合运算:并()、差()、交()和广义的笛卡尔积() 专门的关系运算:投影()、选择、连接和除() 关系运算的表示 关系代数: 、 、 、 、 关系演算: t|R(t) ti uj 运算符,量词(、) SQL语言:SELECT 、INSERT、 UPDATE、 DELETE CREATE 、GRANT(授权),关系数据库设计理论,数据库设计如何把现实世界表示成数据库模式 关系数据库理论指导产生一个具有确定的、好 的数据库模式的理论体系,例:供应商与零件,Sno Sname Status Scity Pno Pname color Weight Pcity 供应商 SP 零件 QTY 关系模式: 1.S-SP-P(Sno ,Sname,Status,Scity,Pno,Pname,color,Weight,Pcity, QTY) 2. S (Sno ,Sname,Status,Scity) P (Pno,Pname,color,Weight,Pcity) SP(Sno , Pno, QTY),如何找到一个好的 数据库模式?,关系数据库理论包括:,数据依赖 范式 模式设计方法,数据依赖,现实世界的许多事实限定了关系模式所有可能的关系必须满足一定的完整性约束条件,这些约束条件或者通过对属性取值范围的限定或者属性值间的相互关联反映出来 数据依赖:通过一个关系中属性间值的相等与否体现出来的数据间的相互关系 函数依赖:当Sno确定后,Sname、Sage的值也被唯一确定 变量x确定,f(x)唯一确定 Sno Sname , Sno Sage,函数依赖,设R(U)是属性集U上的关系模式,X与Y是U的子集,若对于R(U)的任意一个当前值r,如果r中的任意两个元组t和s,都有tx=sx,则有ty=sy,则称“x函数决定y”或“y函数依赖于x” 函数依赖:语义范畴的概念,只能根据语义来确定一个函数依赖。 如:Sname Sage 只在没有同名的条件下成立,函数依赖的分类,最基本的函数依赖是主键决定关系模式中的非码属性 student(Sno,Sname,Sage,Ssex) 分类 1.平凡函数依赖与非平凡函数依赖 关系R(U),X,YU,对于R的任何一个当前值r都有X Y成立,则X Y是一个平凡函数依赖 显然,若YX,则X Y是一个平凡函数依赖 若X Y ,YX,则称X Y是非平凡函数依赖,函数依赖的分类,2.完全函数依赖与部分函数 关系R(U), X Y ,且任何X X, X Y都不成立,则称X Y是一个完全函数依赖,简称函数依赖 反之,若X Y成立,则称X Y是部分函数依赖 3.传递函数依赖 关系R(A,B,C),若A B, B C,则AC成立 关系R(U), X,Y,Z U,若X Y , Y Z , 则X Z 传递依赖于X,关系模式规范化理论,规范化过程:通过对关系模式的分解,把低一级的关系模式分解为若干高一级模式,逐步消除关系模式中不合适的数据依赖,使模式达到某种程度,即“一个关系表示一事或一物” 关系数据库中的关系满足一定的要求,满足不同程度要求的为不同范式,范式,INF: 若关系模式R的每个属性都是不可分解的,则R1NF 2NF:若R1NF,且每个非码属性都完全函数依赖于码属性, 则R2NF 3NF:若R2NF,且每个非码属性是传递函数依赖于候选码, 则R3NF BCNF:若R3NF,且没有一个非码属性是部分函数依赖或传递函数依赖于码属性, 即每个非平凡函数依赖的左边必须包含键码,则RBCNF 4NF:若R3NF,且没有非平凡多值依赖,关系模式的分解,1.分解具有“无损连接性”(Lossless Join) 2.分解要“保持函数依赖” (Preserve Function Dependency) 例: 1.S-SP-P(Sno ,Sname,Status,Scity,Pno,Pname,color,Weight,Pcity, QTY) 2. S (Sno ,Sname,Status,Scity) P (Pno,Pname,color,Weight,Pcity) SP(Sno , Pno, QTY),数据库设计,需求分析 概念设计 逻辑设计 物理设计 数据库实施 数据库运行、维护,事务处理技术,事务(Transaction)用户定义的一个数据库操作序列,是数据库应用程序的基本逻辑单元。这些操作要么全做要么全不做,是一个不可分割的工作单元。 事务与程序:两个概念,一个程序中包含多个事务 事务的开始与结束由用户显式控制,定义事务的语句有: BEGIN TRANSACTION 事务开始 COMMIT 提交事务的所有操作,即所有更新写回物 理数据库,事务正常结束 ROLLBACK 回滚,撤销事务中所有对数据库的操作, 滚回到事务开始时的状态。,事务的特性-ACID,原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(Consistency) 事务的执行结果必须是使数据库丛一个一致性状态变到另一个一致性状态。当数据库只包含成功事务提交的结果,就说数据库处于一致性状态。 隔离性(Isolation) 一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 持续性(Durability),也称永久性(Permanence) 一个事务一旦提交,它对数据库中数据的改变是永久的,接下来的操作或故障对其执行结果没有任何影响。,事务处理技术,保证事务ACID特性是事务处理的重要任务 破坏事务ACID特性的因素: (1)多个事务并行运行时,不同事务的操作交叉执行; DBMS必须保证多个事务的交叉运行不影响并行事务的原子特性 (2)事务在运行过程中被强行停止 DBMS必须保证被强行终止的事务对数据库和其他事务没有任何影响 事务处理技术 数据库恢复技术 恢复机制(DBMS) 并发控制技术并发控制机制(DBMS),恢复机制,故障 事务内部故障 系统故障 介质故障 计算机病毒 恢复的实现技术 数据转储 建立后备副本 登录日志文件 当系统运行过程中发生故障,利用数据库后备副本和日志文件将数据库恢复到故障前的某一个一致性状态。不同故障其恢复策略和方法不一样。,并发控制,并发操作带来的数据不一致性包括三类: 丢失修改 不可重复读 读“脏”数据 并发控制的主要技术-封锁(Locking) 封锁协议 并发调度的可串行性 两段锁协议(2PL协议)保证并发调度可串行性的封锁协议 时标方法 乐观方法 保证调度的正确性,数据库安全性,数据库安全性控制 用户标识与鉴别 (用户名、口令) 存取控制 (定义用户权限、合法权限检查) 视图机制 审计 数据加密,第一章 分布式数据库系统概述,一、什么是分布式数据库系统 二、分布式数据库系统的特点 三、分布式数据库系统的体系结构 四、分布式数据库及其模式结构 五、数据的独立性与分布透明性 六、分布式数据库系统的优点与问题,分布式数据库系统的定义,相对于集中式数据库而言,分布式数据库的数据存放在网络中的两个以上的节点上。每一节点都有独立处理能力。节点间可以通过网络通讯传送数据,以协同完成跨节点的处理任务。 相对于网络中多个独立数据库而言,分布式数据库在逻辑上属于一个系统,有一个集中控制机构。 “集中控制“ 即指分布式数据库管理系统。,分布式数据库系统的定义,分布式数据库系统:物理上分散而逻辑上集中的数据库系统 物理上分散:指各站点分散在不同的地方,大可为不同国家,小可为同一建筑物的不同位置。 -物理分布性 逻辑上集中:指各站点之间不是互不相关的,它们是一个逻辑整体,并由一个统一的分布式数据库管理系统进行管理。 -逻辑整体性 英国国家计算中心断言:分布式系统,特别是以分布式数据库 作为该系统的核心,将成为今后计算机科学发展的主要方向之一。,分布式数据库系统已经成为信息处理学科的重要领域,正在迅速发展之中,原因基于以下几点:,1、它可以解决组织机构分散而数据需要相互联系的问题。比如银行系统,总行与各分行处于不同的城市或城市中的各个地区,在业务上它们需要处理各自的数据,也需要彼此之间的交换和处理,这就需要分布式的系统。 2、如果一个组织机构需要增加新的相对自主的组织单位来扩充机构,则分布式数据库系统可以在对当前机构影响最小的情况下进行扩充。 3、均衡负载的需要。数据的分解采用使局部应用达到最大,这使得各处理机之间的相互干扰降到最低。负载在各处理机之间分担,可以避免临界瓶颈。 4、当现有机构中已存在几个数据库系统,而且实现全局应用的必要性增加时,就可以由这些数据库自下而上构成分布式数据库系统。 5、相等规模的分布式数据库系统在出现故障的几率上不会比集中式数据库系统低,但由于其故障的影响仅限于局部数据应用,因此就整个系统来讲它的可靠性是比较高的。,二 分布式数据库系统的特点,1. 物理分布性 2. 逻辑整体性 3. 站点自治性(场地自治性):各站点上的数据由本地的DBMS管理,具有自治处理能力,完成本站点的应用(局部应用) 4. 数据独立性 集中式数据库系统中, 数据独立性:数据的逻辑独立性与数据的物理独立性 (用户程序与数据的逻辑结构与数据的存储结构无关) 分布式数据库系统中, 数据独立性:数据的逻辑独立性与数据的物理独立性 数据分布独立性 (分布透明性Distribution Transparency),5. 集中与自自治相结合的控制机制: 数据共享有两个层次: 局部共享:同一站点上的用户可共享本站点上局部数据库的数据, 以完成局部应用 全局共享:分布式数据库系统上的用户都可共享在DDBMS的各个 站点上存储的数据,以完成全局应用 6. 适当增加数据冗余度: 通过冗余数据提高系统的可靠性、可用性和改善系统性能 但数据冗余同样会带来冗余副本之间数据不一致的问题 -增加数据冗余度方便了检索,提高了系统的查询速度、可用性和 可靠性,但不利于更新,增加了系统维护的代价。 7. 事务管理的分布性:数据的分布性必然造成事务执行和管理的分布性。 全局事务的执行 若干个站点子事务(局部事务)的执行 - 事务的原子性、一致性、可串行性、隔离性和永久性、事务的恢复 考虑分布性,小结,分布式数据库系统是在集中式数据库系统技术的基础上发展起来的,但不是简单地把集中式数据库分散地实现,具有自己的性质和特征。 数据独立性、数据共享和减少冗余度、查询优化、并发控制、事务管理、完整性、安全性和恢复等在分布数据库系统都有不同的且更加丰富的内容.,分布式数据库的一个理想目标: - Chris.J.Date在1987年的VLDB会议上提出的12条准则,基本原则: 分布式系统应当看上去好像完全的非分布式系统一样。分布式结构只是系统的内部结构,而外部表现应该完全像一个集中式数据库一样。所有分布式的特征都封闭在系统内部(不透露给用户)。具体化为: 场地自治性(Local Autonomy) 非集中式管理(NoReliance On Central Site) 高可靠性(Contiuous Operation) (连续运行) 位置独立性(Location Transparency and Location Independence) 数据分割独立性(Fragmentation Independence) 数据复制独立性(Replication Independence) 分布式查询处理(Distributed Query Processing) 分布式事务管理(Distributed Transaction Management) 硬件独立性(Hardware Independence) 操作系统独立性 (Operating System Independence) 网络独立性(Network Independence) 数据库管理系统独立性(DBMS Independence),场地自治性(Local Autonomy),分布式数据库由中央控制部件和各个局部数据库(local database)组成. 每个局部数据库有相当程度的自治能力,实际上就是一个集中式数据库,可以独立运行应用程序. 虽然有些数据为整个系统所共享,但在安全性,数据完整性,存储结构等方面,仍然不因中央控制的介入而受影响. 如果一个节点上的应用程序要调用本地节点上的数据,就要通过中央控制的调度实现,不应影响本地应用程序的执行. 自下而上(或后于各局部数据库)而构建的分布式数据库,各局部数据库原处于正常运行状态。节点自治意味着分布式系统建立后,已有的这些应用程序不受影响地继续运行。,场地自治性(Local Autonomy),这一准则看似简单,其实不能完全实现,如下述情况可能会使自治能力有所削弱: .在集成时,原来本节点的数据被移到了其它节点,或在其它节点上建立了副本。这时本地应用程序对这些数据的使用和维护,多少要受到那些节点当时状态的制约。 如在那些节点上是否有程序正在使用或修改它们。 .数据虽没有转移,但原来的独立关系现在变成了某个全局关系的一个分片。从分布透明性要求出发,有可能要修改应用程序。 有些数据的完整性条件迁涉到多个节点,如主表在其它节点上的外键。含有外键的表的插入等操作要检查外键的引用完整性,依赖于存放主表的节点是否处于可用状态。,非集中式管理(NoReliance On Central Site),指所有节点在功能上等同,这是使系统健壮的重要决策。 任一节点失效,其它节点仍然可支持系统继续工作,受影响的只是要使用失效节点的那些进程,也不会因中央节点的过分忙碌而使它成为效率瓶颈。 -此准则限制了系统所用算法的选择,如数据字典不能集中放在一个节点上,而应合理分片后,分别存放(可重复)到所有节点上。 根据本准则,分布式算法必须不依赖于中央控制,但不排除某一具体的算法选一个节点作控制用。 -每一节点的作用都是局部的,不能对全局施加影响。,高可靠性(Contiuous Operation),硬件或软件的局部更新不影响系统的运行。 增加或撤消分片,增加或撤消一个复本等,在运行状态下动态地进行。 -分布式数据库系统常常要支持一些不能中断的业务运作。如铁路或航空售票,银行业务,网络管理,军事应用等。这类业务操作的中断会造成较大的业务损失,因此系统必须始终处在运行状态。 如果网络故障也可以局部化而不影响全局,则在分布式系统中,连续运行准则是有可能实现的。如果说一个节点的瘫痪是不能避免的,则所有节点都失效的可能性到底还是极小的。(西方不亮东方亮),位置透明性(Location Transparency Independence),位置透明性:全局关系分割为分片后,要把分片定位到各个节点上,使每一分片至少有一个节点地址。如果应用程序中不必包括数据的节点地址,称为系统的位置透明性,应用程序中只提供要访问的关系名或分片名,节点地址由系统从数据字典中查出。具有位置透明性的系统,分片在节点间有移动时只要改变数据字典中的登录数据,不影响应用程序的可用性。 实现位置透明时,数据字典中要有分片的地址信息,系统对数据操纵语句要作多复本处理:修改语句要自动地修改所有复本,查询语句要选择最合适的复本。,数据分割独立性(Fragmentation Independence) (分片透明性),分布式关系数据库中的一个关系根据应用需要常常被分割成分片存放在许多节点上。 分片透明性:要求这种分割方法的改变不会影响应用程序的有效性。即:应用中不应出现与分片方法有关的痕迹。为此应用程序以全局关系作为操作对象,然后根据查询条件由系统确定查询结果所在的一个或几个分片。反之,没有分片独立性的系统中,应用程序对各个分片操作没有全局关系的概念。 实现分片透明性时,系统应该把用户提供的在全局关系上操作的语句转换成对合适的分片的操作。,数据复制独立性(Replication Independence),复本是指一个分片在许多节点上重复存放。 -在分布式环境中,为了减少通信量常有意地把同一数据在不同节点上重复存放. 好处:1) 减少远程通讯:在有复本的节点上读取复本中的数据,比没有复本的系统少一次远程通讯 2) 提高系统可靠性:一个分片的多个复本中只要有一个可用,即使其它复本都损坏,仍然可支持系统正常工作。 本准则要求这种复本的配制是系统的一种内部行为,与应用程序无关-数据复制独立性(复本透明性),复本的维护代价,多占存储空间,更重要的是使更新(插入,修改,删除)操作复杂化。 有两种复本的维护模式: - 一种是要求得同一数据的复本任何时候都是一致的。 实现方法:二阶段提交(2PC)协议,在确认所有复本都一致时才提交; -另一种模式是数据复制:先对其中一个称为主复本的复本作更新,完成后即提交。其它复本的更新由主复本节点负责在一定时间内完成,在这段时间内各复本的内容是不一致的。 造成复本不一致的另一种故障是由于通信线路故障而把网络分裂成为互不可通信的几个分块. 这种网络分割引起一系列问题: 一是某数据的复本都在一个分块中使其它分块中的节点不能访问,二是同一数据在不同分块中的复本可能作了不同的修改. - 为降低网络分块的可能性,在网络设计中要保持足够多的通信线使得它不易轻易地被分割. 如把网连成环形,则即使有一条边断路网络仍是连通的. (怎样使N个节点的网络有两条边断开仍是连通的?),分布式查询处理(Distributed Query Processing),集中式数据库中的查询优化方法:设置索引,倒排文件 等增加文件结构复杂化的方法,是局部优化 分布式查询是指要使用多个节点的查询。( 通信时间占数据访问时间的主要部分) -提高效率的主要方法是合理按排访问计划以减少通信量和增加各节点上的操作平行度,数据在各节点上的分配,复本设置,是全局优化 -查询的处理有两个层次:第一层次是全局的,如节点间通讯策略等; 第二层次是节点内部的局部处理,是集中式数据库的研究内容。 -分布式查询优化主要是指第一层次的优化,第二层次的优化由局部数据库执行。,分布式事务管理(Distributed Transaction Management),分布式数据库中一个事务可以作用在几个节点上,因而撤回和提交也与多个节点有关。一个事务是撤回还是提交不能只看一个节点的执行情况来决定,而要看该事务所涉及到的所有节点上的读写操作是否都顺利完成,这一判定算法即是2PC协议。专为维护分布式事务的原子性而设计的。 分布式事务管理的另一任务的并发控制。系统运行时,属于多个事务的操作混杂执行时,要使每个事务不受其它事务操作穿插执行的影响,事务的执行结果好像没有其它事务的干扰一样。称为事务的可串行性。并发控制的目标是维护事务的可串行性。 分布式事务与多个节点有关,并发控制也必须是分布式的。,网络独立性,对分布式数据库系统来说,网络仅仅是通讯工具,只要求在可接受的延迟时间内把数据正确地送到目的节点。至于使用什么介质传送,使用什么协议,怎样组织报文等事项都不关心。一般情况下,同一系统使用一种网络是自然的选择,但也不强制规定。 网络独立性主要取决于操作系统。但DBMS也要有适应各种网络协议的能力。,硬件独立性,指各节点可以使用不同类型的硬件平台,如主机等,不依赖于特定的机器特征,也不局限于单一厂商.用户不能觉察这些硬件的类型。硬件设备的升级和扩充不影响已有应用程序的可用性。由于各节点所承担的业务需求有大小,使用不同规格的主机是很自然的。在应用程序对硬件独立的条件下,同一套源程序可以在不同主机上编译并运行。故硬件独立性的实现依赖于操作系统和所用程序语言的可移植性。,操作系统独立性,不同的主机必然使用不同的操作系统。所以硬件独立性也必然要求操作系统独立性。上文已说明这取决于DBMS源程序所用程序语言的可移植性。即DBMS的源程序在不同的操作系统中编译,生成在相应操作系统下的可执行代码。,DBMS独立性,允许各局部数据库运行不同的DBMS,可以采用不同厂商不同版本的DBMS,通过公共标准接口实现互操作. 要实现各DBMS之间的转换机制,称为全局-局部映照 其作用:数据模式转换,把全局DB MS格式表示的数据转换成局部DBMS格式表示及其逆转换; 应用程序转换,把对全局模式的操作转换成对局部模式的操作。 例: 设全局模式使用Sybase,局部DBMS是Oracle。全局-局部映照程序要用Oracle写并在Oracle下运行。它接收用Sybase写的数据操纵语句,转换成一段Oracle程序并执行。如果是查询语句还要把查询结果从Oracle格式转换成Sybase格式。这样从全局用户看来,该局部数据库好像是Sybase数据库一样。 从实现难度看,把DBMS限制在支持标准SQL的关系DBMS中选择是合理的。选择非关系的DBMS(如IMS)这种转换也许还不能实现,就我国的情况看还未必是必要的。,三、分布式数据库系统的体系结构,集中式数据库系统 =硬件+软件(OS,Compiler,App.) +DB+DBMS+DBA+用户 分布式数据库系统 =硬件+软件(OS,Compiler,App.) +DB(全局DB ,局部DB ) +DBMS (全局DBMS ,局部DBMS ) +DBA (全局DBA ,局部DBA ) +用户(全局用户,局部用户),全局用户 CM CM 全局用户 GDBMS GDBMS GDD GDB LDBMS LDBMS GDD GDB 局部用户 LDD LDD 局部用户 LDB 网络 LDB 同构(homogeneous) 异构(heterogeneous) 数据字典(DD) 全局用户 CM 局部用户 GDBMS LDBMS GDD GDB LDD LDB,分布式数据库系统的体系结构,DDBMS的功能,DDBMS=GDBMS+LDBMS GDBMS 是分布式数据库系统的核心 LDBMS DDBMS 负责实现分布式数据库的建立、查询、更新、复制、维护等功能,包括提供: 分布透明性 查询优化 协调全局事务的执行 协调各局部DBMS共同完成全局应用 保证数据库的全局一致性 执行并发控制,实现更新同步和全局恢复等。 -显然,分布式数据库管理系统很复杂,异构更复杂。,DDBMS的组成 -四个基本功能模块,根据分布式数据库系统的特点,保证分布式数据库的共享性、可用性、安全性、完整性、分布透明性等方面的实现,一个分布式数据库管理系统一般包括四个基本功能模块: 查询处理模块 完整性处理模块 调度处理模块 可靠性处理模块,DDBMS功能结构(p16-17页),需要的数据 数据 定位 DD 实际的数据 分布策略 局部处理命令 LDBMS 错误 数据 对网络的监视信息 DB CM 网络,查询分析,优化算法,完整性 处理模块,调度处理模块,可靠性 处理模块,用户查询,查询处理模块,由于在分布式数据库系统中,数据分布于整个网络的各个站点中,数据在网络上传输要花费很大的代价。 -如何减少查询处理的代价,是查询处理模块的任务。 查询分析-必须在执行查询前先进行分析,弄清该查询需要哪些数据,这些数据都存储在哪里,若有多个副本,选用哪个或哪些副本能使查询代价最小。 优化处理-采用最佳优化算法,以减少传输费用,提高传输效率。 查询处理模块由查询分析和优化处理两部分组成。,Back,完整性处理模块,主要负责维护数据库的完整性和一致性,检查完整性规则,处理多副本数据的同步更新。 数据定位,并产生查询处理的策略:由于在分布式数据库系统中,数据可能会有多个副本分布在网络的不同站点中,所以当查询处理模块分析出查询所需要的数据后,完整性处理模块与查询处理模块一起,进一步确定将哪个版本(正本或某个副本)的数据提供给该查询使用,并指出该数据版本的存放站点。,Back,调度处理模块,一旦确定了查询处理的策略,就要进行一些局部处理和数据传输,这时,调度处理模块负责: 向有关站点发布命令,使相应站点的DBMS 执行局部处理。 与通信管理软件配合,以便在相应站点之间进行必要的数据传输。 完成查询并把结果传送回发出该查询的站点,Back,可靠性处理模块,负责监视系统的各个部分是否有故障出现 当故障修复后,负责将该部分重新并入系统,使之继续有效运行,保持数据库的一致状态。,Back,分布式数据库管理系统的参考模型,主要构成: 处理器:是一个可执行的软件,负责执行一个或多个任务 DDBMS看作是一系列的处理器,每个处理器直 接与其上或其下的 处理器相接口,每个处理器在由底层处理器提供的服务基础上进行 增值。 模式:描述数据库的某个方面,用来指挥处理器的行动 全局数据库控制和通信子系统:每个站点有一个用户处理器和数据处理器,整个系统有一个全局数据库控制和通信子系统来支持通信和控制分布式的执行。,分布式数据库管理系统的一种参考模型(18页),用 户 用 户 用户命令 用户结果 用户命令 用户结果 用户处理器1 用户处理器n 规范化命令 规范化数据 规范化命令 规范化数据 全局数据库控制和通讯系统 规范化命令 规范化数据 规范化命令 规范化数据 数据处理器1 数据处理器n 数据库1 数据库n,用户处理器,功能: 用户命令(DML) 翻译 规范化命令(更适合机器处理) 数据(来自数据处理器) 翻译 用户理解的格式,用户处理器(19页) 分成若干个子处理器,支持数据独立性和语义完整性,用户命令 用户结果 用户命令 外部模式 用户结果 翻译器 格式化器 规范化命令 约束实施器 概念模式 规范化命令 规范化数据,Back,数据处理器(20页左右交换) 负责存取数据库的数据,支持程序与数据独立性、并发独立性和事务的原子性,规范化命令 规范化数据 概念模式 程序 规范化命令 规范化结果 与 翻译器 格式化器 数据 内部模式 独立性 物理命令 物理数据 运行时支持 处理器 并发独立性 事务的原子性 数据库,Back,模式层次,三级模式: 外部模式 (一个或多个,每个包含了数据库的一部分描述,供用户使用) 映射 概念模式(包含了整个数据库的逻辑描述,供DBA和用户使用) 映射 内部模式包含了物理数据结构的描述,表示物理数据的存放位置和格式) 外部模式、概念模式及其映射,指导用户命令翻译器把用户命令转换成规范化命令 指导用户结果格式器把规范化数据翻译成用户数据模型要求的格式 概念模式中的语义完整性约束,指导约束实施器执行约束检查 概念模式、内部模式及其映射,指导规范化命令翻译器最佳访问路径和把规范化命令转换成相应的物理命令,指导规范化结果格式器把物理数据翻译成规范化数据,全局数据库控制和通信子系统(P22) 负责通信和控制分布式的执行,由多个处理器组成,规范化数据 规范化命令 规范化数据 规范化命令 合并器 分并 分解器 合并器 分并 分解器 模式 模式 分布式执行 分布式执行 策略 策略 分布式执行监视器 通信子系统 本地执行监视器 规范化命令 规范化数据 规范化数据 规范化命令,Back,分解器 由一个或几个数据处理器组成,主要任务: 来自用户处理器的请求翻译成一个由若干命令组成的分布式执行策略 分布式执行策略 请求命令分解成几个子命令 子命令的执行顺序 若有数据副本,访问副本的选择 检索只要选择一个副本,而更新时则全部副本都要选择,Back,分布式执行监视器,负责分布式执行策略的正确执行以及保证分布式环境中事务的原子性。 负责提供复制独立性和分布式并发控制 需要数据分布和复制的一个全局视图来完成,Back,通信子系统,提供站点之间的信息传送。每个站点都有一个通信处理器,与此通信子系统相接口。,Back,本地执行监视器,负责在本地数据处理器中,执行该分布式执行策略中的与本站点有关的部分。当执行策略的某一部分在该数据处理器中完成执行,或出现故障时就由它来通知全局执行监视器,Back,合并器,任务: 在提交给用户处理器之前,把分布式执行策略访问不同站点所得到的结果数据组合起来。 分解器、合并器和分布式执行监视器物理上可以在一个用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论