1、大连理工大学软件学院分布式数据库考试题目重点2012年分布式数据库考试内容:按照大连理工大学软件学院2012年分布式数据库(朴勇老师)的考试题目的出题点,陈列如下。一,查询树优化建立查询树,优化过程及结果二,根据日志来恢复(活动事务集,undo,redo建立过程)(相似题目见下面1.1的例子)要弄清楚活动事务是什么undo,redo怎么初始化。Abort和complete是否是一回事儿三,给出两个表,做分片连接图的建立,简单图,分区图水平分片水平分片下的导出分片四,给出调度4个,进行判断(见下面的例子)冲突等价调度,可串行化调度。五,3个站点半连接优化(见下面的例子,格式不好所以就截图了)va
2、l(Bs)的计算,是连接属性,不是连接属性的时候,两种。图的建立一遍一遍的循环配套的例题:1.1. 下面是当一个数据库系统出现故障时,日志文件中的信息根据上述log 信息,完成下面的处理:答:说明:D:D为数据记录,下标i表示事务号,上标表示对数据的第j步操作;B:表示事务i开始执行;C:表示事务i提交;A :表示事务I废弃;K:是检查点。系统发生故障时,造成数据库不一致状态的原因为:一些未完成的事务对数据库的更新已经写入外存数据库;一些已经提交的事务对数据库的更新还没写入外存。因此,基本的恢复操作分为两类,即“反做”(undo)和“重做”(redo)。“反做”也称撤消。“反做”(undo):
3、是将一个数据项的值恢复到修改之前的值,即取消一个事务所完成的操作结果。当一个事务尚未提交时,如果缓冲区管理器允许该事务修改过的数据写到外存数据库,一旦此事务出现故障需要废弃时,就需对被这个事务修改过的数据项进行“反做”(undo),即恢复到其前像。“反做”(undo)保持数据库的原子性。重做(redo):是将一个数据项的值恢复到其修改后的值,即恢复一个事务的操作结果。当一个事务提交时,如果缓冲器允许该事务修改过答数据不立刻写到外存数据库,一旦事务出现故障,需对被这个事务修改过的数据项进行重做(redo),即恢复到其后像。“反做”(undo)保持数据库答永久性。故障恢复的步骤: 恢复子系统首先从
4、重启动文件中取得最近的检查点的地址,然后建立两个表:重做表和“反做表”。初始化两表,重做表初始状态为空;“反做表”初始状态为检查点上的活动事务。活动事务是指检查点上还没有结束答事务。 确定“反做事务表”(undo):在日志中从检查点向前搜索,直到日志结尾。找出只有B记录没有C记录的事务,即在系统故障时未结束的事务,写入“反做事务表”。 确定重做事务表(redo):从检查点向前搜索,找出既有B记录又有C记录的事务,直到日志结尾,在系统故障时已经提交但部分结果未写入外存的事务,写入重做事务表。 “反做”(undo)“反做事务表”中的所有事务。根据日志,反向进行撤消操作,直到相应事务的B(Begin
5、 transaction)。 重做(redo)重做事务表中的所有事务,根据日志从检查点正向进行重做操作,直到相应的事务C(Commit transaction)1.1.1. 画出对应的事务并发执行图。 1.1.2. 找出发生故障时系统中的活动事务,确定“反做”和“重做”事务集。分析:T、T在检查点以前已经结束。故不用考虑。T、T 在检查点前没开始不算作活动事务。 活动事务是指检查点上还没有结束答事务,即T。由于T在检查点上时已经A,故算作结束。初始化redo表和undo表,redo表=,undo表= T 在日志中从检查点向前搜索,直到日志结尾。找出只有B记录没有C记录的事务,即在系统故障时未结
6、束的事务,写入“反做事务表”。Undo表= T T= T, T 从检查点向前搜索,找出既有B记录又有C记录的事务,直到日志结尾,在系统故障时已经提交但部分结果未写入外存的事务,写入重做事务表。Redo表= T1.1.3. 指出需要undo的和redo的数据记录。根据undo表和redo表需要undo的数据记录为:D、D。需要redo的数据记录为:D。调度相关问题指出下面的冲突等价调度(忽略提交C和夭折A动作) S1= W2(x),W1(x),R3(x),R1(x),C1,W2(y), R3(z),C3,R2(x),C2 S2= R3(z),R3(y),W2(y),R2(z),W1(x),R3(
7、x),W1(x),R1(x),C1,C2,C3 S3= R3(z),W2(x),W2(y),R1(x),R3(x),R2(z),R3(y),C3,W1(x),C2,C1 S4=R3(z),W2(x),W2(y),C2,W1(x),R1(x),A1,R3(x),R3(z),R3(y),C31. 冲突等价调度如下: S1 = W2(x),W1(x),R1(x),R3(x),C1,W2(y),R3(z),C3,R2(x),C2 S2 = R3(z),R2(z),R3(y),W2(y),W1(x),R3(x),W1(x),R1(x),C1,C2,C3 S3 = W2(x),W2(y),R2(z),C2,R3(z),R3(x),R3(y),C3,R1(x),W1(x),C1 S4 = W2(x),W2(y),C2,W1(x),R1(x),A1,R3(z),R3(x),R3(z),R3(y),C32. 上题S1-S4中, 哪个是可串调度? S3和S4为可串调度S1:T1等待T2,T2等待T1(W2(x),W1(x),R2(x))S2:T3等待T1,T1等待T3(W1(x),R3(x),W1(x) )
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1