admin管理员组

文章数量:1530517

2024年2月9日发(作者:)

第一章

1.1 采用分布式数据库系统的主要原因是什么?

集中式数据库系统的不足:1.数据按实际需要已经在网络上分布存储,如果再采用集中式处理,势必造成附加成本和通信开销,2,。应用程序集中在一台计算机上运行,一旦该计算机发生故障,将会影响整个系统的运行,可靠性不高。3集中式处理导致系统的规模和配置都不够灵活,系统的可扩展性较差。

1.2 分布式数据库系统有哪几种分类方法?这些方法是如何分类的?

1.按局部数据库管理系统的数据模型的类型分类。

(1)同构型:同构同质型:各个站点上的数据库的数据模型都是同一类型的,而且是同一种DBMS。

同构异质型:各个站点上的数据库的数据模型都是同一类型的,但不是同一种DBMS。

(2)异构型:各个站点上的数据库的数据模型各不相同。

2.按分布式数据库系统全局控制系统类型分类

(1)全局控制集中型DDBS

(2)全局控制分散型DDBS

(3)全局控制可变型DDBS

1.3 什么是分布式数据库系统?它具有那些主要特点?怎样区分分布式数据库系统与只提供远程数据访问的网络数据库系统?

分布式数据库系统是物理上分散而逻辑上集中的数据库系统,其可以看成是计算机网络和数据库系统的有机结合。

基本特点:物理分布性、逻辑整体性、站点自治性。

导出特点:数据分布透明性、集中与自治相结合的机制、存在适当的数据冗余度、事务管理的分布性。

区分:分布式数据库的分布性是透明的,用户感觉不到远程与本地结合的接缝的存在。

1.6分布式DBMS具有哪些集中式DBMS不具备的功能?

数据跟踪,分布式查询处理,分布式事务管理,复制数据管理,安全性,分布式目录管理

1.14分布式数据库系统的主要优点是什么?存在哪些技术问题?

分布式数据库系统优点:良好地可靠性和可用性;提高系统效率,降低通信成本;较大的灵活性和可伸缩性;经济型和保护投资;适应组织的分布式管理和控制;数据分布式具有透明性和站点具有较好的自治性;提高了资源利用率;实现了数据共享。

分布式数据库系统中存在的技术问题:数据的分割、分布和冗余度;异构数据库的互联;分布式数据库系统的查询处理; 分布式数据库系统的更新处理;分布式数据库系统的并发控制;分布式数据库系统的恢复控制;目录管理;数据安全性和保密性处理。

第三章

3.2 请用自己的语言阐述分布式数据库系统的两种设计方法及其适用范围。

创建方法有:组合法、重构法

组合法的特点:剖析网络功能;剖析原有数据库系统;解决数据的一致性、完整性和可靠性;难度较大;

组合法适用范围:通常是异构或者同构异质DDBS

重构法的特点:根据实现环境和用户需求;按照DDBS的设计思想和方法;从总体设计做起,包括LDBS,重新建立一个DDBS;可有效解决数据一致性、完整性和可靠性问题。

重构法的适用范围:通常是同构异质或同构同质DDBS

3.3数据分片应遵守哪些基本原则?数据分片有哪些基本类型和方法?

数据分片应遵守的基本原则:完整性条件,可重构性条件,不相交条件。

数据分片的基本类型和方法:水平分片和垂直分片

3.5 数据分布策略有哪几种形式?如何把设计好的数据片段分配到相应的站点上?

数据分布策略:集中式、分割式、复制式、混合式。(P86)

分配方法:非冗余分配----最佳适应法。冗余分配-----所有得益站点法、附加复制法。

3.7为什么说在分布式数据系统中,数据独立性这一目标比集中式数据库系统更为重要,也更为复杂?

在集中式数据库中,数据独立性包括逻辑独立性与数据的物理独立性,分别表示用户程序与数据的全局逻辑结构和数据的物理结构无关。在分布式数据库中,除了数据的逻辑独立性与数据的物理独立性之外,还有数据的分布独立性。所谓数据分布独立性是指用户或者用户程序使用分布式数据库如同使用集中式数据库那样,不必关心全局数据的分布情况,包括全局数据的逻辑分片情况,逻辑片段的站点位置分片情况,以及各站点上数据库的数据模型等,也就是说全局数据的逻辑分片、片段的物理位置分配、各站点数据库的数据模型等情况对用户和用户程序是透明的。分布独立性也称为分布透明性,分布透明性包括三个层次:分片透明性、位置透明性和局部数据模型透明性。

第四章:

4.3概述基于关系代数等价变换的查询优化算法的基本原则和实现步骤。

基于关系代数等价变换的查询优化的基本原则:把查询问题转变为关系代数表达式,分析得到查询树(语法树)。进行从全局到片段的变换得到基于片段上的查询树,然后利用关系代数等价变换规则优化算法,,尽可能地先执行选择和投影操作。

基于关系代数等价变换查询优化的主要实现步骤如下:

1. 将一个查询问题转换成关系代数表达式。

2. 将关系代数表达式转换为查询树,对一个关系代数表达式进行语法分析,可以得到一棵语法树

3. 从全局查询到片段查询的变换:这个变换的典型方法是把基于全局关系的查询树中的全局关系名,用其重构该全局关系的各片段名替换,变换成相应片段上的查询树

4. 利用关系代数等价变换规则的优化算法对片段上的查询树进行优化处理,最后达到优化查询的目的。

4.4 概述基于半连接算法的查询优化的基本原理和适用情形。

(P121)基本原理是:通过半连接操作,可以减少操作关系的数据量,从而减少站点间数据的传输量。

适用情形:如果只需要一个关系中的一小部分元组参与和另一个关系连接的话,这是一个使数据传输量最小化的非常有效的方案。此时有T半

第五章

5.1 概述分布式数据库系统中事务的定义、特性、结构和状态,以及分布式事务所特有的性质。

分布式数据库系统中的事务是一个分布式操作的序列,被操作的数据分布在不同的站点上,所以称为分布式事务。

分布式数据库系统中的事务具有事务的ACID四个特性,即原子性、一致性、隔离性和持久性。

分布式数据库系统中事务的结构:以Begin_Transaction原语作为一个事务的开始,以Commit原语作为一个事务成功完成的结束,而以Rollback或Abort原语作为事务失败的结束。

分布式数据库系统中的事务状态:活动状态、部分提交状态、提交状态、失败状态、终止状态。

分布式事务所特有的性质有大量的数据传递、通信原语和控制报文等。

5.4 什么是事务的提交点?为什么说他们很重要?

当一个事务所包含的所有对数据库的存取操作都已成功执行,并且所有操作对数据库的影响都已记录在日志中时,该事务就到达提交点。

之所以重要是因为提交点标志着事务已经成功执行,但其结果不一定已经写入到数据库中,在系统发生故障时,提交点是判断是执行回滚某一事务以取消它对数据库的影响还是执行重做某一事务以恢复它对数据库的影响的关键依据。

5.5日志、档案库和检查点的作用是什么?典型的日志包含哪些内容?为什么要“先写日志”?

日志的作用是为了能够从故障状态中恢复有影响的事务。

档案库的作用是为了防止因介质故障而破坏日志和数据库。

检查点的作用是为了便于恢复事务。

典型的日志包含了每个改变数据项值的写操作记录。

因为系统崩溃时主存中的内容可能丢失,所以恢复时只能考虑已写回磁盘的日志内容。因此,在事务到达提交点以前,还未写到磁盘的日志的任何部分,必须被写入磁盘,即“先写日志”。

5.7请用自己的语言描述两阶段提交协议的执行过程。

两阶段提交协议把事务提交过程分为两个阶段:第一阶段是表决阶段,目的是形成一个共同的决定。开始时,协调者在它的日志中写入一条开始提交的记录,再给所有参与者发送“准备(提交)”消息,并进入等待状态,当所有的参与者发回“建议提交”的消息时,协调者写入提交日志记录,并给所有参与者发送“全局提交”消息,然后进入提交状态;若至少有一个参与者发回“建议撤销”的消息,协调者就写入一条撤销日志记录,并给所有参与者发送“全局撤销”消息,然后进入撤销状态。

第二阶段是执行阶段,目的是实现这个决定。根据协调者的指令,参与者或者提交事务,或者撤销事务,并给协调者发送确认消息。此时,协调者在日志中写入一条事务结束记录并终止事务。

5.8 为什么说两阶段提交协议在不丢失运行日志信息的情况下,可从任何故障恢复?

因为在执行过程中维护了事务日志,记录了执行恢复所需要的信息。

5.9两阶段提交协议适合哪种故障发生的情况?谨慎两阶段提交协议的基本思想是什么?

两阶段提交协议适合通信故障很少发生,站点故障发生概率较高的系统中。

谨慎两阶段提交协议的基本思想是:满足两阶段提交协议的所有特征,并在决定插销前,给全局事务第二次机会。在协调者站点决定撤销之前,通过重新发送“准备”消息和重新设置一个定时器,允许协调者站点在另一个时间段与它没有收到消息的参与者站点通信。

5.10 在分布式数据库系统中对多副本数据的更新通常采用什么方法?快照方法的优点和缺点是什么?

主文本更新法、快照方法。

快照方法的优点:既避免了某些并发空控制的开销,又便于复杂查询的完成,是提高系统可用性的有效方法。

缺点:快照只是一个只读关系,其中数据只能读而不能写。

第六章

6.2 (P175~176)

6.5 什么是两阶段封锁协议?它如何保证可串行性?为什么人们更愿意采用严格两阶段封锁和严酷两阶段封锁?

如果一个事务所有的封锁操作都放在第一个解锁操作之前,那么就说该事务遵守两阶段封锁协议(2PL),这样的一个事务可以分为两阶段:第一阶段称为扩张阶段,事务只能获得新的数据项锁,而不能释放任何已持有的锁;第二阶段称为收缩阶段,该阶段事务只能释放已持有的锁,而不能获得任何新锁。

它限制了一个调度中可以发生的并发事务的数量,因而能够保证可串行性。

由于实现基本2PL协议,锁管理器必须要知道事务的锁点位置;保守2PL要事先声明读集和写集,这都是难以实现的。严格2PL和严酷2PL容易实现。

5.7 什么是多粒度封锁和意向锁?它们在什么情况下使用?

多粒度封锁是:封锁的粒度不是单一的一种粒度,而是有多种粒度。可以定义多粒度树,根节点是整个数据库,叶节点表示最小的封锁粒度。

意向锁是:如果对一个节点加意向锁,则说明该节点的下层节点正在被封锁。对任一节点封锁时,必须先对它的上层节点加意向锁。

具有意向锁的多粒度加锁方法中,任意事务T要对一个数据对象加锁,必须先对它的上层节点加意向锁。申请封锁时应该按自上而下的次序进行,释放锁时则应该按自下而上的次序进行。具有意向锁的多粒度加锁方法提高了系统的并发度, 减少了加锁和释放锁的开销。它已经在实际的DBMS系统中广泛应用,例如Oracle中。

本文标签: 数据分布式事务数据库系统提交