《分布式数据库总结.docx》由会员分享,可在线阅读,更多相关《分布式数据库总结.docx(21页珍藏版)》请在三一办公上搜索。
1、分布式数据库总结第一章 分布式数据库系统概述 一、分布式数据库的发展 1、分布式数据库的发展: 集中式数据库管理系统的局限性:a.通讯瓶颈;b.响应速度。 推动分布式数据库发展的动力:a.应用需求;b.硬件环境的发展。 二、分布式数据库系统的定义: 分布式数据库系统,通俗地说,是物理上分散而逻辑上集中的数据库系统。分布式数据库系统使用计算机网络将地理位置分散而管理和控制又需要不同程度集中的多个逻辑单位连接起来,共同组成一个统一的数据库系统。 三、分布式数据库系统的特点: a.物理分布性:数据不是存放在一个站点上 b.逻辑整体性:是与分散式数据库系统的区别 c.站点自治性:是与多处理机系统的区别
2、 d.数据分布透明性 e.集中与自治相结合的控制机制 f.存在适当的数据冗余度 g.事务管理的分布性 四、分布式数据库系统的分类 按局部数据库管理系统的数据模型分类:同构性DDBS和异构性(heterogeneous)DDBS 按分布式数据库系统的全局控制系统类型分类:全局控制集中型DDBS,全局控制分散型DDBS,全局控制可变型DDBS。 五、分布式数据库中数据的独立性和分布透明性 所谓数据独立性是指用户或用户程序使用分布式数据库如同使用集中式数据库那样,不必关心全局数据的分布情况,包括全局数据的逻辑分片情况、逻辑片段站点位置的分配情况,以及各站点上数据库的数据模型等。也就是说,全局数据的逻
3、辑分片、片段的物理位置分配,各站点数据库的数据模型等情况对用户和用户程序透明。所以,在分布式数据库中分布独立性也称为分布透明性。 六、分布式数据库系统的体系结构、组成成分 集中式数据库管理系统结构: a. DBb. DBMS(集中式数据库管理系统) c. DBA(数据库管理员) 分布式数据库管理系统结构: a. LDB b. GDB c. LDBMS (局部数据库管理系统) d. GDBMS (全局数据库管理系统) e. LDBA f. GDBA (全局数据库管理员) 七、分布式数据库系统的特性: 1. 数据透明性:a.分布透明性 b. 分片透明性 c. 复制透明性 2. 场地自治性:a. 设
4、计自治性 b. 通信自治性 c. 执行自治性 八、分布式数据库系统的优点: 分布式数据库系统是在集中式数据库系统的基础上发展来的,比较分布式数据库系统与集中式数据库系统,可以发现分布是数据库系统具有下列优点: 1.更适合分布式的管理与控制。分布式数据库系统的结构更适合具有地理分布特性的组织或机构使用,允许分布在不同区域、不同级别的各个部门对其自身的数据实行局部控制。例如:实现全局数据在本地录入、查询、维护,这时由于计算机资源靠近用户,可以降低通信代价,提高响应速度,而涉及其他场地数据库中的数据只是少量的,从而可以大大减少网络上的信息传输量;同时,局部数据的安全性也可以做得更好。 2.具有灵活的
5、体系结构。集中式数据库系统强调的是集中式控制,物理数据库是存放在一个场地上的,由一个DBMS集中管理。多个用户只可以通过近程或远程终端在多用户操作系统支持下运行该DBMS来共享集中是数据库中的数据。而分布式数据库系统的场地局部DBMS的自治性,使得大部分的局部事务管理和控制都能就地解决,只有在涉及其他场地的数据时才需要通过网络作为全局事务来管理。分布式DBMS可以设计成具有不同程度的自治性,从具有充分的场地自治到几乎是完全集中式的控制。 3.系统经济,可靠性高,可用性好。与一个大型计算机支持一个大型的集中式数据库在加一些进程和远程终端相比,由超级微型计算机或超级小型计算机支持的分布式数据库系统
6、往往具有更高的性价比和实施灵活性。分布式系统比集中式系统具有更高的可靠性和更好的可用性。如由于数据分布在多个场地并有许多复制数据,在个别场地或个别通信链路发生故障时,不致于导致整个系统的崩溃,而且系统的局部故障不会引起全局失控。 4.在一定条件下响应速度加快。如果存取的数据在本地数据库中,那末就可以由用户所在的计算机来执行,速度就快。 5.可扩展性好,易于集成现有系统,也易于扩充。 对于一个企业或组织,可以采用分布式数据库技术在以建立的若干数据库的基础上开发全局应用,对原有的局部数据库系统作某些改动,形成一个分布式系统。这比重建一个大型数据库系统要简单,既省时间,又省财力、物力。也可以通过增加
7、场地数的办法,迅速扩充已有的分布式数据库系统。 九、分布式数据库系统的缺点: 1.通信开销较大,故障率高。例如,在网络通信传输速度不高时,系统的响应速度慢,与通信县官的因素往往导致系统故障,同时系统本身的复杂性也容易导致较高的故障率。当故障发生后系统恢复也比较复杂,可靠性有待提高。 2.数据的存取结构复杂。一般来说,在分布时数据库中存取数据,比在集中时数据库中存取数据更复杂,开销更大。 3.数据的安全性和保密性较难控制。在具有高度场地自治的分布时数据库中,不同场地的局部数据库管理员可以采用不同的安全措施,但是无法保证全局数据都是安全的。安全性问题式分布式系统固有的问题。因为分布式系统式通过通信
8、网络来实现分布控制的,而通信网络本身却在保护数据的安全性和保密性方面存在弱点,数据很容易被窃取。 4.分布式数据库的设计、场地划分及数据在不同场地的分配比较复杂。数据的划分及分配对系统的性能、响应速度及可用性等具有极大的影响。不同场地的通信速度与局部数据库系统的存取部件的存取速度相比,是非常慢的。通信系统有较高的延迟,在CPU上处理通信信息的代价很高。分布式数据库系统中要注意解决分布式数据库的设计、查询处理和优化、事务管理及并发控制和目录管理等问题。 第二章 分布式数据库系统的结构 通常从三种不同的角度来描述一个系统的体系结构,分别为基于层次结构、基于组件结构和基于数据模型结构的描述方法。基于
9、层次结构的描述方法是依据系统不同层次的功能描述系统的构成。基于组件结构的描述方法是定义系统的构成组件及组件间的关系。基于数据模式结构的描述方法是定义不同的数据类别结构及其相互关系,定义不同的视图提供给相应的组件应用。 一、分布式数据库系统的物理结构和逻辑结构 场地m 场地1 网络 场地4 场地2 场地3 分布式数据库的物理结构 全局用户 LDBMS1 LDBMSn DDBMS DB1 二、DDBS 的体系结构 DBn 分布式式数据库的逻辑结构 系统的体系结构指按组件、组件功能以及它们的交互作用定义系统的结构(Structure) DDBS的组件结构 1.应用处理器功能: a.用户接口:检查用户
10、身份,接受用户命令,如:SQL命令。 b.语义数据控制器: 视图管理、安全控制、语义完整性控制。这些约束定义在字典中。 c.全局查询处理器:将用户命令翻译成数据库命令;生成全局查询的分布执行计划;收集局部执行结果并返回给用户。 d.全局执行监控器:按调度命令访问数据库;控制数据库缓存管理器;返回局部执行结果;保证子事务执行的正确性。 d.局部事务管理器:以局部子事务为单位调度执行,保证子事务执行的正确性。e.局部调度管理器:负责局部场地上的并发控制,按可串行化调度和执行数据操作。 三、模式结构 我国分布式数据库系统标准草案中给定的抽象为四层的模式结构:全局外层、全局概念层、局部概念层和局部内层
11、。模式与模式之间是映射关系。 1.全局模式或外模式:全局外模式即全局用户视图,是分布式数据库的全局用户对分布式数据库的最高层抽象。全局用户使用视图时,不必关心数据的分片和具体的物理分配细节。 2.全局概念模式: 全局概念模式即全局概念视图,是分布式 数据库的整体抽象,包含了全部数据特性和逻辑结构。像集中式数据库中的概念模式一样,是对数据库全体的描述。全局概念模式再经过分片模式和分配模式映射到局部模式。 3.分片模式是描述全局数据的逻辑划分视图。即全局数据逻辑结构根据某种条件的划分,将全局数据逻辑结构划分为局部数据逻辑结构。每一个逻辑划分成一个分片。在关系数据库中,一个关系中的一个子关系称该关系
12、的一个片段。 4.分配模式是描述局部数据逻辑的局部物理结构,即划分后的分片的物理分配视图。 5.局部概念视图:局部概念模式为局部概念视图,是全局概念模式的子集。局部概念模式用于描述局部场地上的局部数据逻辑结构。当全局数据模型与局部数据模型不同时,还涉及数据模型转换等内容。 6.局部内模式定义局部物理视图,是对物理数据库的描述,类似集中数据库的内层。 7.分布式数据库的四层结构及模式定义描述了分布式数据库是一组用网络联结的局部数据库的逻辑集合。它将数据库分为全局数据库和局部数据库。全局数据库到局部数据库由映射模式描述。全局数据库是虚拟的,由全局概念层描述。局部数据库是全局数据库的内层,由局部概念
13、层和局部内层描述。全局用户只关心全局外层定义的数据库用户视图,其内部数据模型的转换、场地分配节等由系统自动实现。 四、 DDB 和 数据库集成系统 通常,分布式数据库系统是自上而下地设计数据库,可灵活地进行分片和分配设计。用户可得益于其“集中控制”和数据库系统具有的数据处理能力。但分布式数据库系统具有数据库组件数量的限制,通常不多于数十个数据库组件。 数据集成系统通过约束数据管理能力,可将数据库组件数量扩展到数百个。在数据集成系统中,通常数据和数据库已存在,是遵循自下而上地集成各局部场地上的数据。 多数据库系统 MDBS 是在己经存在的数据库系统 (称为局部数据库系统:LDBs) 之上为用户提
14、供一个统一的存取数据的环境。 P2P数据库系统(P2PDBS) 对等型 模型(又称P2P 模型)是一种新型的体系结构模型,面向大范围的多数据资源点的松散耦合。 特点: a.每个点均可贡献数据,系统资源具有丰富性、多样性; b.可直接访问数据源中的数据资源,即时得到最新鲜的数据,不同于如数据仓库等集中的数据资源仓; c.采用自组织原则,具有健壮性; d.每个点可随时加入和退出,系统具有分散性、可扩展性; e.以Web上的资源为Peer点,系统部署简单,不需要复杂的框架部署实现。 五、分布式数据库系统分类 分布式数据库系统的分类很多。为全面、系统地对分布式数据库系统进行分类,采用分布式数据库的三个
15、特性组成的三维空间图来描述分布式数据库的类型。 三个基本特性: 1.分布性是指系统的各组成单元是否位于同一场地上。 分布式数据库系统是物理上分散、逻辑上统一的系统,即具有分布性。而集中式数据库系统集中在一个场地上,所以不具有分布性。 2.异构性是指系统的各组成单元是否相同,不同为异构,相同为同构。异构主要: a.数据异构性:指数据在格式上、语法和语义上存在不同。 b.数据系统异构性:指各个场地上的局部数据库系统是否相同。如:均采用ORACLE数据库系统的同构数据系统。或某些场地采用SYBASE数据库系统,某些场地采用INFORMIX系统的异构数据库系统。 c.平台异构性:指计算机系统是否相同。
16、如:均为微机系统组成的平台同构系统或由VAX或ALPHA系统等异构平台组成的系统。 3.自治性是指每个场地的独立自主能力。自治性通常由设计自治性、通讯自治性和执行自治性三方面来描述。根据系统的自治性,可分为集中式系统、联邦式系统和多数据库系统。 a.集中式系统即为传统的数据库系统。 b.联邦式系统:实现需要交互的所有数据库对之间的一对一连接。 c.多数据库系统:是指若干相关数据库的集合。各个数据库可以存在同一场地,也可分布多个场地。对多数据库系统进行管理的软件称多数据库管理系统,多数据库管理系统是对一组自治的数据库进行管理,并提供透明访问。 第三章 分布式数据库设计 在系统设计中,最基本问题就
17、是分布式数据库的分布问题,即如何对分布式数据库进行逻辑划分和实际物理分配。数据的逻辑划分称数据分片。 一、 两种设计策略 分布式数据库系统设计的基本策略:从顶向下的设计处理或者从下向上的设计处理。 Top_Down: 适于新设计一个数据库系统。 Bottom-UP: 已存在许多数据库系统,并将它们集成为一个数据库。典型的数据集成的研究。 二、分布式数据库的设计目标 1.分布式数据库的本地性或近地性 2.控制数据的适当冗余 3.工作负荷分布 4.存储的能力和费用 三、数据划分原则及分片方法 分片操作原则: 数据划分的基本思路:首先按DDB 外部特征划分数据,然后根据DDB 的内部特征,提出应遵守
18、的基本原则以检验数据划分的正确性。 外部特征是指构成DDB 的属性群集特性,包括属性值集和数据项集等。 内部特征是指DDB 的组成性质。 基本原则:当对DDB 划分后,仍应保持DDB 原有的特质,所以划分后的各逻 辑关系之间应遵守下列原则: 完整性原则、重构性原则、不相交原则 分片操作 水平分片: 水平分片是将关系按行横向以某些条件划分成元组的子集,每个子集含有一定的逻辑意义,称逻辑片段。 水平分片实际上是关系的选择操作。即属性=“值”的具体条件的子关系Ri,因 此片段可用q(R)表示。 垂直分片: 垂直分片是将关系按列纵向以属性组划分成若干片段。在垂直分片时,为了保证片段的重构性,应将“键属
19、性”属于各个片段中。 关系的垂直分片实际上是对指定属性集上的投影操作。所以,R 关系的垂直分片片段是 R 的部分属性组合子关系 Ri,可用Ai(R)表示,其中 KAi。 混合分片: 混合分片是水平分片和垂直分片的内部混合。 混合分片是水平分片和垂直分片的混合操作,即对关系的选择和投影。当要重构 混合分片的各片段,可按相应次序做合并操作和联接操作。 分片的基本原则: 完备性原则:要把所有的数据映射到各个片断中 可重构原则:关系分片后的各个片断可重构整个关系 不相交原则:关系分片后的各个片断不能重叠 第四章 分布式查询处理和优化 一、分布式环境下查询分为三种类型 : 局部查询:查询本站点上存放的数
20、据 远程查询:查询在网络上的另一个站点上存放的数据 全局查询:查询涉及多个站点上存放的数据 二、 查询优化的目标 集中式查询优化 目的:为每个用户查询寻求总代价最小的执行策略 总代价QC = I/O代价+CPU代价 总代价最小意味着使查询的响应时间最短 三、优化内容 优化内容体现如下几点: 1.执行运算的次序。 2.执行每种运算的方法。如上例,不同方法代价不同。 3.所访问的副本场地。如:选择就近的场地,节约传输代价。 4.执行运算的场地的选择。使总的传输代价或总代价最低。 综合考虑,确定出一种执行代价最小的查询执行策略。 四、影响查询处理效率的因素有:网络传输代价、局部I/O代价及CPU使用
21、情况代价等,但主要由网络通信代价和局部I/O代价来衡量。不同的分布式数据库系统可能对评估查询处理的传输代价和I/O代价的侧重不同。 为提高查询的效率,在查询处理过程中还要进行优化处理。 查询优化就是确定出一种执行代价最小的查询执行策略或寻找相对较优的操作执行步骤。一般可采用多级优化。本章介绍全局查询的处理与优化。 五、查询处理层次 全局查询优化 1.找接近于最优的执行策略; 2.找片段查询中最佳的操作顺序,包括通信操作。 3.需要实时定义代价函数。 4.局部查询优化 集中的系统算法. 1.INGRES 动态优化 2.System R 基于穷举法的静态优化 第五章 分布式查询的存取优化 一、分布
22、执行过程实际上就是从查询场地发出查询命令、从数据源获取数据、确定最佳的执行场地和返回执行结果的过程。 查询场地:指发出查询命令和存储最终查询结果的场地。查询场地也称最终结果文件。 源数据场地:指查询命令需要访问的数据副本所在的场地,可能涉及到一个或一个以上的场地。源数据场地也称源数据文件。 执行场地:指查询操作执行所在的场地。执行场地可以和查询场地或源数据场地处于同一场地,也可不处于同一场地。执行场地也称中间结果文件。 二、分布查询的存取优化的目标 对于远程网,主要考虑通信开销,使通信代价最小。 对于局域网,需同时考虑通信代价和本地处理代价,使综合代价最小。 三、优化的内容 优化是在片段查询的
23、基础上进行的实际物理副本查询操作的优化。具体如下: 输入:片段查询表达式 输出:分布执行计划 内容: 1.确定片段查询需访问的物理副本。通常:a.本场地上的物理副本优先;b.若二元运算存在尽量选择本场地上的二元运算;c.数据最小的物理关系应被优先选中;d.网络通信代价小的应优先选中 2.确定片段查询表达式操作执行的最优顺序。包括从叶到根的执行和同一层叶子上表达式执行的先后,特别是对查询树上的并操作和联接操作的执行次序的确定,其代价差别很大。 3.选择执行每个操作的方法。如:尽量将同一场地上的、同一物理副本的全部操作组合在一起统一考虑完成。 四、查询代价模型 主要指传输代价、I/O代价和CPU代
24、价Total cost = Ccom+CIO+Ccpu 传输代价 费用和延迟。其中费用起决定作用。 传输费用是指使通信中的整个传输开销,即传输的数据量。 模型为:CCOM=C0+C1*X 其中:C0:场地间传输数据的启动所需的固定费用,简称启动代价; C1:网络单位传输数据费用,简称单位传输代价; X:需传输的数据量。 五、 半联接优化方法 对联接操作的优化有两种趋势,一种为采用半联接技术,减少联接操作的操作数,以降低传输费用;另一种为采用全联接技术,主要考虑局部代价。一个系统需根据其目标综合确定其优化算法。 半联接的作用 采用半联接技术的优化目标是减少联接操作的操作数,以降低传输费用。 六、
25、枚举法是基于直接联接的实现方法。 常见的直接连接算法主要有: 1.嵌套循环连接算法(nest-loop) 2.归并排序连接算法 3.哈希连接算法 4.基于索引的连接算法 七、集中式系统中的查询优化算法 分布式查询优化技术是在集中式查询优化技术基础上的扩展,其中增加了对通信代价的评估,主要介绍四种优化方法,核心是: INGRES和System R 1.INGRES dynamic optimization 2.System R static optimization based on exhaustive search 3.考虑代价的动态规划方法 4.PostgreSQL的遗传算法 第六章 分布
26、式事物管理 一、事务的定义 任何数据库应用最终都将转换为一系列对数据库进行存取的操作系列; 为了保证数据库的正确性及操作的有效性,将数据库应用中全部或部分操作序列的执行定义为事务; 一个事务所包含的所有操作,要么全做,要么全不做,是一个不可分割的整体; 二、事务的基本模型 一个事务由三部分组成: a.开始标识begin_transaction b.数据库操作 c.结束标识commit或abort commit:表示提交,即成功完成事务中的所有数据库操作,将操作结果永久化,使数据库状态从事务执行前的状态改变到事务执行后的状态; abort:表示废弃,即在事务执行过程中发生了某种故障,使得事务中的
27、操作不能继续执行,系统需要将该事务中已完成的操作全部撤销,使数据库保持事务执行前的状态; 三、事务的基本性质 原子性(atomicity) 事务所包含的操作要么全做,要么全不做。 由于输入错误、系统过载、死锁等导致的事务废弃而需要进行的事务的原子性维护,称为事务恢复。 由于系统崩溃而导致的事务废弃或者提交结果的丢失而需要进行的原子性维护处理,称为故障恢复。 一致性(consistency) 假如数据库的状态满足所有的完整性约束,则称该数据库是一致的。事务的一致性,是事务执行的结果必须是使数据库从一个一致性状态变化到另一个一致性状态,而不会停留在某种不一致的中间状态上 隔离性(isolation
28、) 当多个事务的操作交叉执行时,若不加控制,一个事务的操作及所使用的数据可能会对其它事务造成影响。事务的隔离性是指:一个事务的执行既不能被其它事务所干扰,同时也不能干扰其它事务。 耐久性(durability) 事务的耐久性体现在:当一个事务提交后,系统保证该事务的结果不会因以后的故障而丢失。也就是说,事务一旦被提交,它对数据库的更改将是永久性的。即使发生了故障,系统应具备有效的恢复能力,将已提交事务的操作结果恢复过来,即重做处理,使这些事务的执行结果不受任何影响。 四、事务的种类 按照组成结构的不同,可以将事务划分为两类:平面事务和嵌套事务(nest)。 平面事务是指每个事务都与系 统中其它
29、事务相分离,并独立于其它事务。平面事务是用begin和end括起来的自治执行方式。 嵌套事务是指一个事务的执行包括另一个事务。其中,内部事务称为外部事务的子事务,外部事务称为子事务的父事务。 五、分布式事务 从宏观上来看,分布式事务是由一系列分布在多个场地上执行的数据库操作所组成的。 分布式事务:是指分布式数据库应用中的事务,也称为全局事务。 子事务:一个分布式事务在执行时将被分解为若干个场地上独立执行的操作序列,即一个分布式事务在某个场地上操作的集合。 六、 进程模型 全局事务为每一个子事务在相应的场地上创建一个代理者进程,由代理者进程执行该场地上的有关操作。同时,为协调各子事务的操作,全局
30、事务还要启动一个协调者进程,来进行代理者进程间的通讯,控制和协调各代理者进程的操作。 发出分布式事务的场地称为该事务的源场地。 七、服务器模型 服务器模型要求在事务的每个执行场地上创建一个服务器进程,用于执行发生在该场地上的所有子事务。每个服务器进程可以交替地为多个事务的子事务服务。也就是说,不同全局事务中的子事务在同一个场地上共用一个服务器进程。 八、分布式2PC “分布式”是指事务的所有参与者同时也都是协调者,都可以决定事务的提交和废弃,提交过程是完全分布地完成。由事务的始发场地完成提交的初始化工作。 分布式2PC最大的特点是事务的提交过程只需要一个阶段,即决定阶段。所有场地都可以互相通信
31、,使得各个场地均可以获悉其它场地的当前状态,独立地做出事务是否提交的决定。 九、非阻塞分布式事务提交协议 如果在两段提交协议执行的过程中出现协调者故障或网络故障,那么参与者就不能及时收到协调者发出的“提交”命令,参与者处的子事务将处于等待状态。在故障恢复前,参与者子事务所占有的系统资源也不能被释放,参与者的子事务进入了阻塞状态。若参与者一直收不到协调者的命令,则子事务将始终处于阻塞状态而挂在相应的执行场地上,所占用的系统资源也不能被其它事务利用。 全局事务的提交分为三个阶段: 阶段一:投票表决阶段 阶段二:准备提交阶段 阶段三:执行阶段 第七章 分布式恢复管理 数据库系统的可恢复性和高可靠性是
32、保证各种应用正确而可靠地运行所不可缺少的重要组成部分。 可恢复性,提供恢复措施,把数据库系统从故障状态恢复到一个已知的正确状态;高可靠性,尽量将崩溃后数据库的不可用的时间减少到最低,并保证事务的原子性和耐久性。 一、故障模型 故障:系统单元内部发生的错误或系统内部设计错误; 错误:系统单元内出现了不正确的状态,是故障的内 式; 失效:指系统的外部状态中所表现出来的错误; 在表现形当系统单元被组建得不合理或系统内部设计存在不足时,将会引发系统故障,此时系统的内部状态处于错误的状态,进而使系统的外部环境受到影响,最终产生失效。 二、故障模型 1.事务内部的故障 事务内部的故障可细分为可预期的和不可
33、预期的。 2.系统故障 系统故障的表现形式是使系统停止运转,必须经过重启后系统才能恢复正常。例如,CPU故障、系统死循环、缓冲区溢出、系统断电等。这类故障的特点是:仅使正在运行的事务受到影响,但数据库本身没有被破坏;内存中的数据全部丢失。一方面,一些尚未完成的事务的结果可能已被写入数据库中;另一方面,一些已提交的事务的结果可能还未更新到磁盘上。因此,系统故障发生后数据库可能处于不一致的状态。 3.存储介质故障 存储介质故障是指存储数据的磁盘等硬件设备发生的故障。例如,磁盘坏损、磁头碰撞、瞬时强磁场干扰等均为存储介质故障。这类故障的特点是:不仅使正在运行的所有事务受到影响,而且数据库本身也被破坏
34、。因此,同前两种故障相比,存储介质故障是一种较严重的故障类型。 4.通信故障 前三个故障都是单场地故障、也是集中式数据库中的故障。对于分布式数据库而言,还要进行各个场地的通信,因此还会产生通信故障。 三、恢复模型 在故障恢复过程中,数据库恢复管理器依据数据库日志文件对数据库事务进行恢复操作。 1.日志文件的格式和内容 内容:记录事务的执行信息。 作用:a.用来进行数据库的恢复; b.数据库使用情况统计和分析的数据源。 2.反做(undo)和重做(redo)恢复策略 反做也称撤消、回滚 ,是将一个数据项的值恢复到其修改之前的值,即取消一个事务所完成的操作结果。当一个事务尚没提交时,如果缓冲区管理
35、器允许该事务修改过的数据写到外存数据库,一旦此事务出现故障需废弃时,就需对被这个事务修改过的数据项进行反做,即根据日志文件将其恢复到前像。反做的目的是保持数据库的原子性。 重做也称为前滚操作,是将一个数据项的值恢复到其修改后的值,即恢复一个事务的操作结果。当一个事务提交时,如果缓冲区管理器允许该事务修改过的数据不立刻写到外存数据库,一旦此事务出现故障,需对被这个事务修改过的数据项进行重做,即根据日志文件将其恢复到后像。重做的目的是保持数据库的持久性。 3.故障恢复模型 当软故障发生时,造成数据库不一致状态的原因包括:一些未完成事务对数据库的更新已写入外存数据库;一些已提交事务对数据库的更新还没
36、来得及写入外存数据库。因此,需要的恢复操作有undo和重做redo。 四、硬故障的恢复模型 硬故障的恢复模型 硬故障的主要恢复措施是进行数据转储和建立日志文件。首先,DBA要定期地将数据库转储到其它磁盘上,形成一系列备份数据库。接下来,利用日志文件重新运行转储以后的所有更新事务,使数据库再进一步地恢复到故障发生时的状态。 五、可靠性与可用性 可靠性:在给定环境条件下和规定的时间内,数据库系统符合其行为规范的概率。强调正确性。 可用性:在给定时刻t上,数据库系统正常运行的概率。强调可运行的能力。 第八章 分布式并发控制 简单地讲,并发就是多个事务的同时执行,并发能够提高系统的效率,但也可能会带来
37、三种错误。并发控制的主要目的是保证事务的一致性和隔离性,最终保证数据的一致性。当分布事务并发执行时,并发控制既要实现分布事务的可串行性,又要保持事务具有良好的并发度,以保证系统具有良好的性能。 一、并发控制问题 并发控制就是利用正确的方式调度事务中所涉及的并发操作序列,避免造成数据的不一致性;防止一个事务的执行受到其它事务的干扰,保证事务并发执行的可串行性。 二、事务执行过程的形式化描述 通常以串行化理论来检验并发控制方法的正确性。 依据串行化理论,在数据库上运行的一个事务的所有操作,按其性质分为读和写两类。 一个事务Ti对数据项x的读操作和写操作记为Ri(x)和Wi(x)。 一个事务Ti所读
38、取数据项的集合,称为Ti的读集,所写的数据项的集合,称为写集,分别记为R(Ti)和W(Ti)。 设有事务T1,完成的操作如下:T1:x=x+1;y=y+1;则T1可表示为:T1 :R1(x) W1(x) R1(y) W1(y)。 读/写集分别是:R(T1)=x,y 和 W(T1)=x,y 三、集中式数据库的可串行化问题 无论在集中式数据库系统中,还是在分布式数据库系统中,并发调度都要解决并发事务对数据库的冲突操作问题,使冲突操作串行执行,非冲突操作并发执行。 在分布式数据库系统中,事务是由分解为各个场地上的子事务的执行实现的。因此,分布式事务之间的冲突操作,就转化为了同一场地上的子事务之间的冲
39、突操作,分布式事务的可串行性调度也转化为了子事务的可串行性调度问题。 四、分布式事务的可串行化问题 在分布式事务执行过程中,场地Si上的所有子事务的操作的执行序列,称为局部历程,用H(Si)表示。 分布式事务可串行化判定定理:对于n个分布式事务T1,T2, ,Tn在m个场地上S1,S2,Sm上的并发执行序列,记为E。如果E是可串行化的,则必须满足以下条件: 每个场地Si上的局部历程H(Si)是可串行化的; 存在E的一个总序,使得在总序中,如果有TiTj,则在各局部历程中必须有TiTj。 五、基于锁的并发控制方法 基于锁的并发控制方法的基本思想是:事务在对某一数据项操作之前,必须先申请对该数据项加锁,申请成功后才可以对该数据项进行操作。如果该数据项已被其它事务加了不相容的锁,那么后申请使用数据的事务必须等待,直到该数据项被解锁为止。 六、两段封锁协议 两段封锁协议(2PL)是数据库系统中解决并发控制的重要方法之一,保证事务的可串行性调度。 2PL的实现思想是将事务中的加锁操作和解锁操作分两阶段完成,要求并发执行的多个事务要在对数据操作之前进行加锁,且每个事务中的所有加锁操作要在解锁操作以前完成。 两段封锁协议分为: 1.基本的两段封锁协议 2.严格的两段封锁协议 锁的种类:显式锁,用户加封锁命令实现; 隐式锁,系统自动加锁实现。
链接地址:https://www.31ppt.com/p-3320520.html