查看答案
答案要点: D-DBMS的同构和异构可以有三级:硬件级、操作系统级和局部DBMS级。其中最主要的是局部DBMS这一级,因为硬件和操作系统的不同将由通信软件处理和管理。所以,同构型D-DBMS定义为:在分布数据库系统中若每个结点的局部数据库具有相同的DBMS则成为同构型D-DBMS;若各结点的局部数据库具有不同的DBMS,则成为异构型的D-DBMS。(详细说明参见《概论》14.2.4)
8 .设在《概论》14.2.3节的分布式数据库系统例子中,还有全局关系SC(SNO,CNO,G),它具有两个导出分片SC_A,SC_B,分别存储理学院和文学院学生的选课记录。SC_A存放在场地4,SC_B存放在场地今有一个稍复杂的查询,从终端输入一个课程号,查找选修该课程的学生学号和姓名,并把它们显示在屏幕上。请写出具有不同层次分布透明性(类比例子中的三种情况)的应用程序。不必给出细节,只需写出算法思想。 (填空题)
查看答案
情况1 若系统具有分片透明性,则 Scanf(″% s″,Scnumber); / * 从终端读入课程号到变量Scnumber中 */ EXEC SQL SELECT Sno,Sname INTO :SNO, :NAME / * SNO,NAME为程序变量 * / FROM SC,Student / * 在全局关系SC,Student中查找 * / WHERE SC.Cno =:Scnumber AND SC.Sno=Student.Sno; Printf(″% s,% s″,SNO,NAME); / * 把SNO,NAME输出在屏幕上 * / 情况2 若系统具有位置透明性,但不具有分片透明性,则 Scanf(″% s″,Scnumber); EXEC SQL SELECT Sno,Sname INTO :SNO, :NAME FROM SC_A,S_A WHERE SC_A.Cno =:Scnumber AND SC_A.Sno=S_A.Sno; If(! FOUND){ EXEC SQL SELECT Sno,Sname INTO :SNO, :NAME FROM SC_B,S_B WHERE SC_B.Cno =:Scnumber AND SC_B.Sno=S_B.Sno;} Printf(″% s,% s″,SNO,NAME); 情况3 若系统只具有局部数据模型透明性,不具有位置透明性(当然也就不具有分片透明性),则 Scanf(″% s″,Scnumber); EXEC SQL SELECT Sno,Sname INTO :SNO,:NAME FROM SC_A AT Site4, S_A AT Site1 / * 先在场地4的片段SC_A和场地1的片段S_A中查找* / WHERE SC_A.Cno =:Scnumber AND SC_A.Sno=S_A.Sno; If(! FOUND){ EXEC SQL SELECT Sno,Sname INTO :SNO,:NAME FROM SC_B AT Site5,S_B AT Site2 / * 再在场地5的片段SC_B和场地2的片段S_B中查找*/ /*也可以在场地5的片段SC_B和场地3的片段S_B中查找* / WHERE SC_B.Cno =:Scnumber AND SC_B.Sno=S_B.Sno; } Printf(″% s,% s″,SNO,NAME);
9 .对14.3.1节的例子中介绍的六种策略改用下列估算值后分别计算通信时间: 红色零件数=1000, 北京供应商的装运单=10000。 (填空题)
查看答案
策略1 把关系P传送到场地A,在A地进行查询处理,所以, T[1]=1+105×100/104 =103秒(16.7分) 策略2 把关系S,SP传到场地B,在B地执行查询处理,所以 T[2]=2+(104+106)×100/104≈10 100秒(2.8小时) 策略3 在场地A连接关系S和SP,选出城市为北京的元组(104个)然后对这些元组中的每个元组的Pno,询问场地B看此零件是否红色。所以共问答104次,由于不是传送数据,只是消息的问答,所以 T[3]=2×104s (5.6小时) 策略4 在场地B选出红色零件的元组(103个),然后对每一个元组逐一检查A站,看北京供应商的装运单中是否有这个零件装运单(若有则选出SNO)每做这样一次检查包括2次消息,共问一答103次,所以 T[4]=2×103s (33.3分) 策略5 在场地A选出北京的供应商的装运单把结果送到场地B,在场地B完成最后处理,所以 T[5]=1+(104×100)/104≈101秒 (1.68分) 策略6 在场地B的关系 P 中选出红色的元组(1000个),把结果送到场地A完成最终处理。所以 T[6]=1+(1000×100)/104=11秒
10 .试述下列概念:两段提交协议(2PC);分布事务的原子性;全局死锁。 (填空题)
查看答案
答案要点: 2PC:2PC把一个分布事务的事务管理分为协调者和参与者。 2PC的第一阶段:协调者向所有参与者发出“准备提交”信息。如果某个参与者准备提交,就回答“就绪”信息,否则回答“撤销”信息。参与者在回答前,应把有关信息写入自己的日志中。协调者在发出准备提交信息前也要把有关信息写入自己的日志中。如果在规定时间内协调者收到了所有参与者“就绪”的信息,则将作出提交的决定,否则将作出撤销的决定。 2PC的第二阶段:协调者将有关决定的信息先写入日志,然后把这个决定发送给的所有的参与者。所有参与者收到命令之后首先往日志中写入“收到提交(或撤销)”决定的信息,并向协调者发送“应答(ACK)”消息,最后执行有关决定。协调者收到所有参与者的应答消息后,一个事务的执行到此结束,有关日志信息可以脱机保存。 分布事务的原子性:分布事务的原子性就应该是:组成一个全局事务的所有子事务要么一致地全部提交,要么一致地全部滚回。全局死锁:全局事务执行时发生的涉及两个以上场地上的死锁。
11 .在分布式数据库系统中,对多副本的封锁有几种解决方法? (填空题)
查看答案
处理多副本的封锁可采取如下几种方法:(1)对写操作,要申请对所有副本的X锁。对于读操作,只要申请对某个副本的S锁。(2)无论是写操作还是读操作都要对多数(大于半数)副本申请X锁或S锁。(3)规定某个场地上的副本为主副本,所有的读写操作均申请对主副本的封锁。
全国职称计算机考试速成过关系列套装:W .. 定价:¥133 优惠价:¥133.0 更多书籍 | |
全国职称计算机考试速成过关系列套装:W .. 定价:¥124 优惠价:¥124.0 更多书籍 |