软件开发定制分布式数据库期末重点
软件开发定制博主是大工研究生 软件开发定制选过这门课
软件开发定制整理了一下 软件开发定制这门课老师画过的重点 软件开发定制把这些背会期末没问题!
软件开发定制半连接大题必考 !
软件开发定制两阶段提交协议必考 !
软件开发定制设计数据表 必考!
软件开发定制优先图判断可串行化调度 必考!
软件开发定制大数据部分 软件开发定制会有简答或填空(软件开发定制大数据的特点、作用等) 请好好看ppt 软件开发定制这里没有整理
试卷题型: 填空20道、选择20道、简答4道、大题(4道? 软件开发定制记不太清了)
第一章:
1.2软件开发定制分布式数据库系统有几软件开发定制种分类方法?软件开发定制这些方法分别是如何分类的?
一. 软件开发定制按照局部数据库管理系软件开发定制统的数据模型分类
同构型:软件开发定制同一种数据模型
软件开发定制同构同质型:软件开发定制相同的数据库管理系统,软件开发定制软件开发定制相同的数据模型 软件开发定制同构异质型:软件开发定制不同的数据库管理系统,相同的数据模型
- 1
- 2
异构型: 软件开发定制不同的数据模型
二. 软件开发定制按分布式数据库系统全软件开发定制局控制类型分类
软件开发定制全局控制集中式:软件开发定制软件开发定制全局控制机制和全局字软件开发定制典位于一个中心站点,软件开发定制由中心站点完成全局事软件开发定制务的协调和局部数据库转换。软件开发定制全集控制分散式:全局控制机制和全局字软件开发定制典位于各个站点,软件开发定制每个站点都能完成全局软件开发定制事务的协调和转换全局软件开发定制控制可变式:软件开发定制站点分为两组,软件开发定制其中一组包含全局控制软件开发定制机制和全局数据字典,软件开发定制另一组不包含。软件开发定制分别称为主站点和辅助站点。
- 1
- 2
- 3
- 4
- 5
1.3软件开发定制什么是分布式数据库系统?软件开发定制它具有哪些特点?软件开发定制怎样区别分布式数据库软件开发定制系统与只提供远程数据软件开发定制访问功能的网络数据库系统?
软件开发定制分布式数据库系统是物理上分散而逻辑上集中的数据库系统,其可以看成是计算机网络和数据库系统的有机结合。**基本特点**:物理分布性、逻辑整体性、站点自治性。**导出特点**:数据分布透明性、集中与自治相结合的机制、存在适当的数据冗余度、事务管理的分布性。**区分**:分布式数据库的分布性是透明的,用户感觉不到远程与本地结合的接缝的存在。
- 1
- 2
- 3
- 4
1.4简述基于四层模式的分布式数据库系统的体系结构。
**全局外模式**:全局应用的用户视图,全局概念模式的子集,从局部数据库组成的逻辑集合中抽取;**全局概念模式**:描述全局数据的逻辑结构和数据特性,由全局关系的定义和完整性定义组成;**分片模式**:全局关系与片段之间的映像,全局关系通过选择、投影操作被划分为若干片段;**分配模式**:根据数据分布策略,定义各片段的物理存放站点;**局部概念模式**:该站点上全部物理映像的集合;全局概念模式的子集**局部内模式**:全局数据在本站点的存储描述,与本站点上局部数据的存储描述;
- 1
- 2
- 3
- 4
- 5
- 6
1.11简述分布式数据库目录的内容、用途、组织方式、逻辑结构和分布方式、为什么说在分布式数据库系统中目录系统的地位非常重要?
① 目录的内容:全局模式描述;分片模式描述;分布模式描述;存取方式描述;局部名称映射;数据库统计信息;状态信息;一致性约束;数据表示;数据命令;系统描述;② 目录系统的用途:设计应用;翻译应用;优化处理;运行监督;系统维护;③ 目录系统的组织方式:独立式;分离式;嵌入式;④ 目录系统的逻辑结构:
- 1
- 2
- 3
- 4
- 5
⑤ 目录系统的分布方式:集中式目录;全复制式目录;局部式目录;混合式目录;⑥ 为什么目录系统的地位非常重要? 因为目录系统是存放对象和控制信息的场所。
- 1
- 2
- 3
1.12分布式数据库系统的实现技术主要包括哪些内容?
分布式数据库 设计;分布式数据库 查询、优化;分布式数据库 并发控制;分布式数据库 事务管理与恢复;分布式数据库 安全性;分布式数据库 可靠性。
- 1
- 2
- 3
- 4
- 5
- 6
1.13你认为现实生活中哪些系统是分布式数据库?
银行管理 分布式数据库系统;连锁超市 分布式数据库系统;飞机订票 分布式数据库系统。
- 1
- 2
- 3
1.14(老师没说,但书上画了) 分布式数据库系统的主要优点是什么?存在哪些技术问题?
1 分布式数据库系统的优点?
灵活性、可伸缩性;可用性、可靠性;效率高、(通信)费用低;经济性、保护投资;数据分布透明性、站点自治性;适合组织的分布式管理和控制。
- 1
- 2
- 3
- 4
- 5
- 6
2 分布式数据库系统存在的技术的问题?
1通信速度 (最重要的问题);减少网络上数据量的传输和通信次数2目录管理;目录的分布与冗余3数据的分片、分布、冗余度;4(优化) 查询处理;通信代价5(优化) 更新处理;多副本冗余存在,更新代价6并发控制 (机制);7恢复控制 (机制);8异构数据库互联;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
第三章(全加*)
3.3数据分片应遵守哪些基本原则?数据分片有哪些基本类型和方法?
1)数据分片应遵守的原则:
完备性原则;可重构原则;不相交原则;
- 1
- 2
- 3
2)数据分片的基本类型及方法:
**水平分片**;通过水平分片方法得到的水平片段,水平片段通过全局对象的选择操作得到的子集构成。(基本水平分片、导出水平分片)**垂直分片**;使用垂直分片方法得到的片段,垂直片段通过将全局对象在其属性子集上进行投影得到的。垂直分片:片段只在某个键的属性上重叠垂直群集:片段在其他属性上也可以重叠**混合分片**。交替水平分片和垂直分片就可以产生混合分片
- 1
- 2
- 3
- 4
- 5
- 6
- 7
3.5数据分布策略有哪几种形式?如何把设计好的数据片段分配到相应的站点上?
数据分布:指分布式数据库中的数据不是存储到一个站点的计算机存储设备,而是根据需要将数据划分为逻辑片段,按照某种策略将这些片段分散存储到各个站点上。
- 1
- 2
1 数据分布策略的形式:
集中式;所有数据片段都在一个站点上分割式;所有数据只有一份,他被分割成若干逻辑片段,每个片段被分配到某个站点复制式;每个站点都有一个完整的数据副本混合式;全局数据被分割为若干子集,每个子集被分分配到不同站点
- 1
- 2
- 3
- 4
2如何把设计好的数据片段分配到相应的站点上?
根据应用需求确定是非冗余分配还是冗余分配;非冗余分配中,每个片段映射到一个站点上;(对每一个站点进行估算,选择最佳站点)冗余分配中,每个片段映射到一个或多个站点上;
- 1
- 2
- 3
- 4
设计者决定片段复制情况,使远程访问次数少,效益高;(复制的效益随着查询与更新比值而增加,查询比例越多,复制的效益越多,更新的比例越多,复制的效益越少)
3.6采用DATAID-D方法的分布式数据库设计与传统的集中式数据库设计在步骤和内容上有什么不同?
DATAID-D 是作为集中式数据库设计DATAID-1 方法论的扩充面构造的;DATAID-1 方法分成四个阶段:需求分析、概念设计、逻辑设计和物理设计。DATAID-D 要求对其增加两个阶段:分布要求分析阶段和分布设计阶段。需求分析、概念设计、分布要求分析、逻辑设计、分布设计、和物理设计分布要求分析阶段位于概念设计阶段之后,主要工作:1收集用户分布要求信息;2确定水平分片的划分谓词;3收集每一应用在各站点激活的频率。分布设计阶段在全局逻辑设计之后,主要工作:1分布要求和全局逻辑模式作为输入;2形成为全局数据库模式和逻辑访问表;3输出为分片模式和分配模式。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
3.7为什么说在分布式数据库系统中,数据独立性这一目标比集中式数据库系统更为重要,也更为复杂?(老师没说,但书上画了)
**集中式数据库中**,数据独立性包括逻辑独立性与数据的物理独立性,分别表示用户程序与数据的全局逻辑结构和数据的物理结构无关。**在分布式数据库中**,除了数据的逻辑独立性与数据的物理独立性之外,还有数据的分布独立性。 所谓数据分布独立性是指用户或者用户程序使用分布式数据库如同使用集中式数据库那样,不必关心全局数据的分布情况,包括全局数据的逻辑分片情况,逻辑片段的站点位置分配情况,以及各站点上数据库的数据模型等,也就是说全局数据的逻辑分片、片段的物理位置分配、各站点数据库的数据模型等情况对用户和用户程序是透明的。分布独立性也称为分布透明性,分布透明性包括三个层次:1 分片透明性:分片模式和全局概念模式之间 最高级2 位置透明性:分片模式与分配模式之间 中级3 局部数据模型透明性:分配模式与局部概念模式之间 低级
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
1 分布式数据库系统的设计目标
分布式数据库的本地性和近地性控制数据适当冗余工作负荷分布存储能力与费用
- 1
- 2
- 3
- 4
2 分布式数据库的设计内容
分布式数据库系统全局模式设计、每个站点的局部数据库设计。全局模式如何化分就产生新的问题:数据的分片设计和片段的位置分配设计
- 1
3 分布式数据库的设计方法
① 重构法:自顶向下分为四个阶段:需求分析、概念设计、逻辑设计、分布设计、物理设计② 组合法:自地向上自底向上要解决的问题:将现有不同的数据库模式集成为全局模式。把现有数据库集成为分布式数据库,现有数据库可能使用的不同的数据库管理系统,从而增加数据集成的复杂性。采用公用的数据模型来描述数据库的全局模式把每个站点的本地数据模式翻译为公用数据模型把各站点本地数据模式集成为公用全局模式
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
第四章
4.1查询优化的准则、查询代价
准则:通信费用最低、响应时间最短代价:集中式数据库:QC=I/O代价+CPU代价分布式数据库:QC=I/O代价+CPU代价+通信代价通信代价:TC(X)=C0+C1*XX是数据的传输量 bitC0为两站点通信一次所花费的时间 sC1为传输率,单位数据传输时间 s/bit
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
4.2 分布式查询分类与层次结构
分类:局部查询:只涉及本地或单个站点上的数据远程查询:只涉及单个站点全局查询:涉及多个站点层次结构:分解查询:将查询问题转换成一个定义在全局关系上的关系代数表达式数据本地化:把在全局关系上的查询使其尽可能做本地或近地化查询全局优化:找到片段查询的最佳操作次序,使其代价函数最小局部优化:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
4.3概述基于关系代数等价变换的查询优化算法的基本原理和实现步骤。
基于关系代数等价变换的查询优化的基本原则:把查询问题转变为关系代数表达式,分析得到查询树(语法树)。进行从全局到片段的变换得到基于片段上的查询树,然后利用关系代数等价变换规则优化算法,尽可能地先执行选择和投影操作。
- 1
- 2
- 3
基于关系代数等价变换查询优化的主要实现步骤如下:1. 将一个查询问题转换成关系代数表达式。2. 将关系代数表达式转换为查询树,对一个关系代数表达式进行语法分析,可以得到一棵语法树;3. 从全局查询到片段查询的变换:这个变换的典型方法是把基于全局关系的查询树中的全局关系名,用其重构该全局关系的各片段名替换,变换成相应片段上的查询树;4. 利用关系代数等价变换规则的优化算法对片段上的查询树进行优化处理,最后达到优化查询的目的。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
实现步骤的简单写法:
1.把查询问题转化为关系代数表达式;2.分析所得查询树;3.进行全局到片段的变换,得到基于片段的查询树;4.先执行选择、投影操作,后执行连接、合并操作;5.优化查询树。
- 1
- 2
- 3
- 4
- 5
4.4概述基于半连接算法的查询优化的基本原理和适用情形。
基于半连接算法的查询优化的基本原理:从一个站点传送关系到另一个站点做连接操作之前,除去与连接无关的数据,减少传输代价;通过半连接操作可减少操作关系的数据量,从而减少站点间数据的传输量。基于半连接算法的查询优化的适用情形:1 只需要一个关系中的一小部分元组参与和另一个关系连接;2 当传输费用是主要的因素时,适用半连接方案。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
4.6设有关系 R、S、T,如下图所示:
(1)计算连接R∞S∞T
(2)计算半连接R∝S, S∝R, S ∝T, T∝R,R∝T, T∝S
(3)三个关系R,S,T分别位于三个不同的站点X,Y,Z。若采用基于半连接算法计算连接R∞S∞T ,请选择使得传输代价最少的连接执行的站点和确定半连接序列。(对应4.7题)
解:
(老师让看的题)设有关系S,T,如图所示,
(1)计算连接S∞T
(2)计算半连接S ∝T, T∝S
(3)假设每个属性域长度均为1B,C0=0, C1=1, 则
计算R=S∝T 选择度ρ; 公式为ρ =Card®/Card(S)
计算S∝T收益; 公式Benefit1(S∝T )=(1-ρ)*Size(S)*Card(S)*C1
计算S∝T代价; 公式Cost(S∝T )= C0+C1*size (D)*val(D[T])
解:
第五章
5.1概述分布式数据库系统中的事务的定义、特性、结构和状态,以及分布式事务所特有的性质。
定义:为了实现特定业务功能而访问数据库的一个最小逻辑工作单位,一个分布式操作的序列,被操作的数据分布在不同的站点上,所以称为分布式事务;特性:ACID, atomicity,consistency、isolation、durability原子性:事务执行时不可分割一致性:事务的最终目的,事务必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性:一个事务在提交之前,绝不允许把它对共享数据所作的该变提交给其他事务持久性:一旦事务提交了,无论系统发生任何故障都不会丢失该事务的执行结果结构:以 begin transaction 作为事务的开始;以 commit 作为事务成功完成的结束;以 rollback 或 abort 作为事务失败的结束;状态:活动、失败、回滚/夭折、部分提交、提交;分布式事务特有的性质:大量的数据传递、通信原语和控制报文;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
5.4什么是事务的提交点?为什么说他们很重要?
事务的提交点:当事务对所有站点上的存取操作均已完成,并所有操作对数据库的影响都记录在日志中时,即为事务提交点;事务的提交点的重要性:提交点后,事务在日志中写入提交记录;系统发生故障时,扫描日志,检查已在日志中写入,但没有写入提交记录的所有事务;恢复时回滚这些事务,取消它们对数据库的影响。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
1提交点后的事务都成为已提交的事务,并且假定结果永久记录在数据库中。2当数据库发生故障时,需要扫描日志,检查那些已在日志中写入[start_transaction T],但是还没有写入[Commit,T]的所有事务T。3恢复时,可以回滚这些事务取消他们对数据库的影响。
- 1
- 2
- 3
- 4
5.5日志、档案库和检查点的作用是什么?典型的日志包含哪些内容?为什么要先写日志?
1 日志、档案库和检查点的作用是什么?典型的日志包含哪些内容?日志的作用:从故障状态中恢复对数据库有影响的事务;档案库的作用:防止因介质故障而破坏日志和数据库;检查点的作用:设置一个周期性的操作点,用于表示检查点之前的事务是正确的。便于恢复事务;典型的日志包含:每个改变数据项值的写操作记录;2 为什么要“先写日志”?系统崩溃时主存内容丢失,恢复时只考虑已写入磁盘的日志内容;因此,要“先写日志”。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
5.7请用自己的语言描述两阶段提交协议的执行过程
在两阶段提交协议中,把分布式事务的某一个代理指定为协调者,其他所有代理指定为参与者。只有协调者才有掌握提交或撤销事务的决定权。而其他参与者各自负责在其本地数据库中执行的写操作。第一阶段:表决阶段;首先,协调者在日志中写入 开始提交记录,再发送“准备”消息给所有参与者,进入等待状态。其次,参与者收到“准备”消息后,检查是否能够提交本地事务;如能提交,参与者在日志中写入开始提交记录,并发送 “建议提交”消息给协调者,然后进入就绪状态;否则,参与者写入撤销记录,并发送“建议撤销”消息给协调者;协调者收到所有参与者的消息后,做出是否提交事务的决定;只要有一个参与者建议撤销,协调者发送“全局撤销”消息给所有参与者,进入撤销状态;否则,协调者发送“全局提交”消息给所有参与者,进入提交状态;第二阶段:执行阶段;根据协调者的指令,参与者提交或撤销事务,并发送确认信息给协调者;协调者在日志中写入事务结束记录并终止事务;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
5.8为什么说两阶段提交协议在不丢失运行日志信息的情况下,可从任何故障恢复?
执行过程中,事务日志记录了所需信息;
- 1
第六章
6.1什么是并发控制机制、并发操作、并发操作所带来的问题?
并发控制机制:当数据库中有多个事务并发执行时,系统必须能够对并发事务之间的相互作用加以控制。并发控制就是负责正确协调并发事务的执行,保证并发操作不会破坏数据库的完整性和一致性,确保并发执行的多个事务能够正确地运行并获得正确的结果。并发操作:数据库上有若干个事务,这些事务并发的存取相同的数据并发操作带来的问题:1 脏读:事务T1更改某一数据,并写入数据库,事务T2读取同一数据,但事务T1由于某种原因被撤销,此时T1更改过的数据恢复原来的值,使T2读取到的值与数据库中的值不相同,只是操作过程中的一个过渡性的、不再需要的、脏的数据2 不可重复读:事务T1读取数据后,事务T2执行更改操作,使T1无法再现前一次读取的结果。3 幻读:两个事务T1和T2读入同一个数据,并修改,T2提交的修改结果覆盖了T1提交的修改结果,导致T1的修改结果丢失。事物的可串行性:当若干事务并发的执行结果与希望的顺序执行结果相同时,称这些事务时可串行的。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
6.2描述分布式事务的可串行化理论的一些定义:事务,冲突操作,并发调度,串行调度,一致性调度,等价调度,可串行化调度。
6.3在图6.25中,图(a)表示的是三个事务,每个事务含有多个Read_item和Write-item操作。图b和图c分别表示的是这三个事务的两个调度E和F,使用优先图判别E和F是否为串行化调度。
6.5什么是两阶段封锁协议?它如何保证可串行性?为什么人们更愿意采用严格两阶段封锁和严酷两阶段封锁?
两阶段封锁协议:对数据进行读、写操作前,申请封锁该数据;释放一个封锁后,事务不再申请、获得其他封锁;以此保证可串行性; 如果一个事务所有的封锁操作都放在第一个解锁操作之前,那么就说该事务遵守两阶段封锁协议(2PL),这样的一个事务可以分为两阶段:第一阶段称为扩张阶段,事务只能获得新的数据项锁,而不能释放任何已持有的锁;第二阶段称为收缩阶段,该阶段事务只能释放已持有的锁,而不能获得任何新锁。它限制了一个调度中可以发生的并发事务的数量,因而能够保证可串行性。 由于实现基本2PL协议,锁管理器必须要知道事务的锁点位置。保守2PL要事先声明读集和写集,这都是难以实现的。严格2PL和严酷2PL容易实现。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
6.6描述死锁预防中的占先权方法和非占先权方法,比较他们的异同,描述检测分布式死锁的三种基本方法。
6.7什么是多粒度封锁和意向锁?它们在什么情况下使用?
多粒度封锁:封锁的粒度不是单一的一种粒度,而是有多种粒度。可以定义多粒度树,根节点是整个数据库,叶节点表示最小的封锁粒度。意向锁:如果对一个节点加意向锁,则说明该节点的下层节点正在被封锁。对任一节点封锁时,必须先对它的上层节点加意向锁。 具有意向锁的多粒度加锁方法中,任意事务T要对一个数据对象加锁,必须先对它的上层节点加意向锁。申请封锁时应该按自上而下的次序进行,释放锁时则应该按自下而上的次序进行。具有意向锁的多粒度加锁方法提高了系统的并发度, 减少了加锁和释放锁的开销。它已经在实际的DBMS系统中广泛应用,例如Oracle中。简单写法:多粒度封锁:封锁多种粒度;可定义多粒度树,根节点是整个数据库,叶节点表示最小封锁粒度;意向锁:若对一个节点加意向锁,则表明该节点的下层节点正被封锁;对任一节点封锁时,必先对上层节点加意向锁;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
2016年部分考题