华南理工大学数据库复习题.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《华南理工大学数据库复习题.docx》由会员分享,可在线阅读,更多相关《华南理工大学数据库复习题.docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华南理工大学数据库(研究生)复习题1. 基于锁的协议有几种?什么是基于时间标签的协议?什么是基于验证的协议?基于锁的协议即两段锁协议,是指指所有事务必须分两个阶段对数据项加锁与解锁。具体又分为:基本2PL、保守2PL 、严格2PL与 精确2PL基于时间标签的协议:事务被施加了一个基于时间戳的顺序 要求并发控制器检查事务对每个DB对象的读写请求看是否能遵循基于时间戳的串行顺序。以上这个原则性要求,可具体表达为:对任两事务Ti与Tj,若Ti先于Tj,即TS(Ti)TS(Tj),则必须确保在执行期间,当事务Ti的动作ai与Tj的动作aj冲突时,总有ai先于aj。如果有某个动作违反了这个串行顺序原则,
2、则相关事务就必须被中止撤销。每个事务开始启动时,要附上一个时间标记(timestamp)。后启动事务的标记值大于先启动事务的标记值。对每个数据库数据项Q,要设置两个时间标记:读时间标记tr,表示成功读过该数据的所有事务的时间标记的最大值。写时间标记tw:表示成功写过该数据的所有事务的时间标记的最大值。基于验证的协议:基于验证是一种基于优化的并发控制,允许事务不经过封锁直接访问数据,并在“适当的时候”检查事务是否以可串行化的方式运转(这个“适当时候”主要指事务开始写DB对象之前的、一个称被为“有效确认”的、很短的瞬间阶段)。事务T的执行过程分为三个阶段:读阶段:事务正常执行所有操作,此时数据修改
3、放在局部临时变量中而不更新数据库。检验阶段:进行有效性检查,T与已经比它先提交的事务进行比较,发现是否有冲突。写阶段:如果检验阶段发现无冲突,则事务提交,否则卷回T。每个事务T的三个阶段对应三个时间标签:start(T):开始执行时间validation(T):开始进入验证的时间finish(T):完成写阶段的时间注意:(1)不同的事务的三个阶段可以交叉执行,但三个阶段的顺序不能改变。(2)事务最终执行的调度顺序是按照事务的进入验证的时间标签来排。2. 处理死锁的方法有哪些?处理死锁的两种基本方法:预防法与检测法。预防法:TB已对某数据对象加锁,而TA对该数据对象申请加锁时,选择某事务卷回重执
4、,避免死锁出现。卷回策略分为等待-死亡策略(若老则等年轻,若年轻则卷回)与击伤等待策略(若年轻则等老,若老则年轻卷回)检测法:基于等待图。每个活跃事务对应图中的一个节点,如果事务Ti正等待事务Tj所持有的某个锁,则有一条从Ti对应节点指向Tj对应节点的边。它可清晰表达事务等待其它事务持有锁的情况。封锁管理器通过维护等待图来检测死锁循环。3. 什么是多版本并发控制技术?定义:这种技术维护同一数据项的多个版本,把正确的版本分配给事务的读操作。与其他技术不同的是,这种技术从不拒绝读操作。目标:事务只读DB元素时无需等待方法:维护最近被修改对象的多个版本(每个版本都带有一个写时间戳),当读事务T到来时
5、,让它读TS(T)之前的最近的版本。4. 什么是数据锁转换?什么是锁升级? 数据锁转换(lock conversion):是指在特定的条件下,允许已经对数据项X持有锁的事务把锁从一种锁定状态变换到另一种状态。Oracle会尽可能在最低级别锁定(即限制最少的锁),如果必要,会把这个锁转换为一个更受限的级别。 锁升级(lock escalation):是指处于同一粒度级别上的锁被数据库升级为更高粒度级别上的锁。举例来说,数据库系统可以把一个表的100个行级锁变成一个表级锁,但可能会锁住以前没有锁定的大量数据。如果数据库认为锁是一种稀有资源,而且想避免锁的开销,这些数据库就会频繁使用锁升级。Orac
6、le数据库中不存在锁升级。锁升级将会显著地增加死锁的可能性5. 什么是延迟更新与即时更新?延迟更新是指所有事务的更新都记录在局部事务的工作区(或缓存区),只有在事务到达提交点后才真正更新磁盘上的数据库。如果事务在提交前失败,则它不会修改数据库。即时更新是指更新一旦发生就被施加到数据库,而无需等待到提交时刻。若事务的某些操作达到提交点前被写入数据库,恢复时需要UNDO/REDO;如果事务在达到提交点前所有的更新已被写入数据库,需要算法UNDO/NO-REDO6. 什么是原位更新与镜像更新?将修改过的缓冲区刷新到磁盘,有两种策略原位更新(in-place update):将缓冲区写回磁盘原来的位置
7、,因而会覆盖被修改数据项在磁盘上的旧值,基于原位更新的恢复必须使用日志。镜像更新(Shadow update):将缓冲区写到磁盘不同的位置,可保存数据项的多个版本。7. 理解用日志进行恢复的过程。一种日志是把写操作记录下来:1.当事务Ti开始时,Ti先在日志文件中写入如下的记录:2.当Ti对记录X执行写操作write(X)时,首先写入日志记录, 其中V1是旧值,V2是新值3.当Ti结束最后一条语句时,写入的日志记录4.这里可以先假设日志记录是不经过缓存直接写到稳定的存储介质上的。另外一种日志形式中,把上述X取为一个物理块,则一个日志记录包含了如下三部分:1. 前像(Before Image):
8、当一个事务更新数据时,所涉及的物理块在更新前的映像称为该事务的前像,可以据此使数据库恢复到更新前的状态(撤消更新undo)。2 .后像(After Image)当一个事务更新数据时,所涉及的物理块在更新后的映像称为该事务的后像,可以据此使数据库恢复到更新后的状态(重做redo)。3 .事务状态成功(committed)/失败(rollback,abort);辅助的结构有活动事务表与提交事务表WAL规则(The Write-Ahead Logging Protocol)1. 先写日志:更新时先写日志再把数据写到磁盘(保证原子性)2.在事务提交前写事务相关的所有日志记录到稳定存储介质(保证持久性)
9、日志恢复例子恢复例子:撤消阶段(Undo Phase)恢复例子:重做阶段(Redo Phrase)8. 什么是潜入/非潜入与强制/非强制?潜入/非潜入与强制/非强制确定了何时把数据页从高速缓存写回磁盘潜入(Steal):缓存中的数据可在事务提交前写回磁盘非潜入(No-Steal): 缓存中的数据不能在事务提交前写回磁盘强制(Force): 缓存中的数据在事务提交后直接写回磁盘(强制地)非强制(No-Force): 即使修改过的内存块没被写回磁盘,事务也可以提交(因为重做的信息已记录在日志中)。9. 理解ARIES恢复管理算法(PDF db04 page30)ARIES简介:它试图以概念上相对简
10、单且系统化的方式,提供一套能确保事务原子性与持性的、具有良好性能的恢复管理算法。它能与绝大多数并发控制机制很好协调工作的。这里使用并发封锁控制默认时都假定使用基于strict-2PL协议的封锁调度器,并假设主要基于页级封锁。少数场合,如逻辑日志中,也可能涉及元组级封锁。算法流程:采用基于“steal/no-force”工作模式。当系统崩溃后重启时,恢复管理器将被激活,并按以下三个阶段进行处理:分析(Analysis):鉴别崩溃发生时,缓冲区中的脏页与当时仍活跃的事务。重做(Redo):重做从日志的适当起点(比如,被修改的最早脏页对应日志记录)开始的所有动作,恢复系统到崩溃时的DB状态。撤消(U
11、ndo):撤消上次崩溃时所有未提交事务的动作效果,使DB只反映已提交事务的影响。(建议看下PDF db04 p33-38的例子 加深理解)10. 性能调整的系统的方法有哪些?优化器做些什么?调优通常涉及哪些问题?性能调整的系统的方法有: (1)正确地设计应用程序 (2)调整应用程序的SQL代码(3)调整内存 (4)调整I/O(5)调整争用与其他问题优化器做的事情是:1. SQL 转换2. 选择访问路径3. 选择连接方法4. 选择连接顺序调优涉及的问题: 如何避免对锁的争用,从而增加事务之间的并发性 如何最小化日志开销,以及不必要的数据转储 如何优化缓存区的大小,以及进程的进度 如何对磁盘、RA
12、M与进程之类的资源进行分配使其利用效率最高 这些问题大都可以通过设置合适的物理DBMS参数、改变设备的配置、修改操作系统的参数 参数、改变设备的配置、修改操作系统的参数与其他类似的动作得以解决。11. 什么情况下进行索引的调优?怎么进行索引的调优?基于以下几个原因需要对索引进行调优:(1)由于缺乏索引,某些查询的执行时间过长(2)某些索引自始自终没有被使用(3)某些索引建立在被频繁改变的属性上 导致系统的 某些索引建立在被频繁改变的属性上,导致系统的开销过大怎样进行索引调优: 借助于相关工具,DBA 可从系统获得关于查询执行过程的信息,通过分析执行计划,可以得到产生上述问题的原因 基于调优分析
13、可得到产生上述问题的原因,基于调优分析,可能会删除某些索引,也可能要增加新的索引。 通过重建索引也可以改进系统的性能12. 如何考虑数据库设计的调优? 如果由于需要频繁使用两个或多个表中的某些属性,可能需要逆规范化现有的表 必要的时候对表进行垂直划分.(垂直划分,即按照功能划分,把数据分别放到不同的数据库与服务器) 必要的时候对表进行水平划分.(水平划分,即把一个表的数据划分到不同的数据库,两个数据库的表结构一样。怎么划分,应该根据一定的规则,可以根据数据的产生者来做引导,上面的数据是由人产生的,可以根据人的id来划分数据库。然后再根据一定的规则,先获知数据在哪个数据库)13. 了解查询的调优
14、的原则与方法?需要进行查询调优的典型情况(1)查询导致过多的磁盘存取(比如一个精确的匹配查询要对整个表进行扫描) 整个表进行扫描)(2)查询计划表明相关的索引并没有被使用查询的调优的原则与方法(1)有些DISTINCT 是多余的,在不改变查询结果的前提下可以省略(2)把多个查询合并为一个查询,可避免使用不必要的临时结果表(3)FROM子句中表的出现顺序可能会影响连接操作(4)某些查询优化器在嵌套查询上的性能要比等价的非嵌套查询差(5)如果选择条件通过OR连接,可能优化器不会使用任何索引(6把NOT条件转化为肯定表达式(7)可用连接替换使用IN、=ALL、=ANY、=SOME的嵌入式SELECT
15、块(8)可以使用多个列上的索引重写WHERE条件(PDF db05 25-29页 很多原则,百度出来的结果也有三十多条,这里我主要列了其中一些比较简单字数少的规则)14. 结合oracle体系结构,理解oracle调优的方法.(通知该题不用整理)15. 什么是数据库集群?为什么要研究数据库集群?数据库集群分类有哪些?数据库集群技术的实现机理?提高处理速度的办法?提高可用性的方法?主流产品有哪些?数据库集群技术现状及前景。 (1)数据库集群技术即将多台服务器联合起来组成集群来实现综合性能优于单个大型服务器的技术 (2)原因一:伴随着企业的成长,在业务量提高的同时,数据库的访问量与数据量快速增长,
16、其处理能力与计算强度也相应增大,使得单一设备根本无法承担。在此情况下,若扔掉现有设备做大量的硬件升级,势必造成现有资源的浪费,而且下一次业务量提升时,又将面临再一次硬件升级的高额投入。于是,人们希望通过几个中小型服务器组建集群,实现数据库的负载均衡及持续扩展;在需要更高数据库处理速度时,只要简单地增加数据库服务器就可以得到扩展。 原因二:数据库作为信息系统的核心,起着非常重要的作用,单一设备根本无法保证系统的持续运行,若发生系统故障,将严重影响系统的正常运行,甚至带来巨大的经济损失。于是,人们希望通过组建数据库集群,实现数据库的高可用,当某节点发生故障时,系统会自动检测故障并转移故障节点的应用
17、,保证数据库的持续工作。原因三:企业的数据库保存着企业的重要信息,一些核心数据甚至关系着企业的命脉,单一设备根本无法保证数据的安全性,一旦发生丢失,很难再找回来。于是,人们希望通过组建数据库集群,实现数据集的冗余,通过多份数据来保证安全性。(3)一般来讲,数据库集群软件根据侧重的方向与试图解决的问题划分为三大类:负载均衡集群(Load balance cluster,LBC)侧重于数据库的横向扩展,提升数据库的性能;高可用性集群(High availability cluster,HAC)侧重保证数据库应用持续不断;高安全性集群(High Security cluster,HSC)侧重于容灾。
18、 按照集群的架构可分为:共享磁盘型,非共享磁盘型。(4) 1 基于共享磁盘的 HA 集群 2 基于数据库事务日志的复制技术 3基于磁盘的复制技术 4基于 SQL 语句解析的集群技术(5)1提高磁盘速度 2.分散数据的存放 3.对称多处理器系统 4.处理负载均衡(6) 提高可用性的四种方法 硬件级冗余:让多处理机同时执行同样的任务用以屏蔽瞬时与永久的硬件错误。有两种实现方法:构造特殊的冗余处理机与使用多个独立的数据库服务器。通讯链路级冗余:冗余的通讯链路可以屏蔽瞬时与永久的通讯链路级的错误。软件级冗余:由于现代操作系统与数据库引擎的高度并发性,由竞争条件、死锁、以及时间相关引发的错误占据了非正常
19、停机服务的绝大多数原因。采用多个冗余的运行数据库进程能屏蔽瞬时与永久的软件错误。基于数据库引擎的集群系统都用多个处理器来实现一个逻辑数据库,它们只能提供部分软件冗余,因为每一瞬间每个处理器执行的都是不同的任务。数据冗余:1. 被动更新数据集:所有目前的数据复制技术(同步或异步),例如磁盘镜像、数据库文件复制以及数据库厂商自带的数据库备份工具都只能产生被动复制数据集。它一般只用于灾难恢复。2. 主动更新数据集:这种数据集需要一台或多台备份数据库服务器来管理,它可用于报表生成,数据挖掘,灾难恢复甚至低质量负载均衡。分同步与异步两种。异步主动复制数据集:先把事务处理交给主服务器来完成,然后事务处理再
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华南理工大学 数据库 复习题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内