ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:266.40KB ,
资源ID:3717668      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3717668.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(分布式数据库.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

分布式数据库.docx

1、分布式数据库分布式数据库系统2011-20121. 分布式数据库和集中式数据库的差别主要有哪些?数据分片的正确性判据是什么?答:1) 分布式数据库和集中式数据库的差别主要表现在以下几个方面:在物理分布性方面:分布式数据库中的数据不是存储在一个站点上,而是分散存储在由计算机网络联结起来的多个站点上,这是与集中式数据库的最大差别之一。在逻辑整体性方面:分布式数据库中的数据逻辑上是互相联系,可以和分散在计算机网络不同结点上的数据库或文件的集合相区别,故有全局数据库(逻辑)和局部数据库(物理)的概念。在站点自治性方面:分布式数据库各站点上的数据由本地的DBMS管理,完成本站点的应用。集中式数据库虽然也

2、可以把数据分散在不同的数据库中,但数据分布与应用程序没有直接联系。在数据独立性方面:在集中式数据库中,数据独立性指数据的逻辑独立性与物理独立性。在分布式数据库中,还增加了数据分布独立性,亦称分布透明性。在控制结构方面:在集中式数据库中,对共享数据库的控制是集中的,并设有DBA负责监督和维护系统的正常运行在分布式数据库中,数据的共享有两个层次,局部共享和全局共享。在数据冗余度方面:在集中式数据库中,尽量减少冗余度是系统目标之一,在分布式数据库中却希望增加冗余数据,在不同的场地存储同一数据的多个副本。全局的一致性、可串行性和可恢复性:分布式数据库中各局部数据库应满足集中式数据库的一致性、可串行性和

3、可恢复性,除此以外还应保证数据库的全局一致性、并行操作的可串行性和系统的全局可恢复性。2)数据分片的正确性判据:若R=R1,R2,Rn,满足:完整性条件:即 如果aR,则必有aRi,i=1,2,,n可重构条件:R=Ri(水平分片),或R=Ri(垂直分片)不相交条件:RiRj=空集,ij,i,j=1,2,,n(水平分片) RiRj=主键属性,ij,i,j=1,2,,n(垂直分片) 则数据分片正确。2. 将Student按系别水平分片,说明这种分片是满足正确性判剧的。答:1) 将Student按系别水平分片如下:Student1=SLdno=1StudentStudent2=SLdno=2Stud

4、entStuden3=SLdno=3Student2) 从数据分片的正确性判剧来说明这种分片是满足正确性判剧的:1 完整性:因为dno=1dno=1,2,3,dno=2dno=1,2,3,dno=3dno=1,2,3, 并且,Student集合中有且只有dno=1,dno=2和dno=3这三个元素,满足完整性。2 可重构性:因为,dno=1,2,3=dno=1dno=2dno=3, 所以满足可重构性。3 不相交性:因为,dno=1dno=2=dno=1dno=3=dno=2dno=3=空集 所以,限定语dno相斥,片段之间不相交,满足不相交性。综上,这种分片是满足正确性判剧的3答:a. LEV

5、EL 1: read(terminal,$sno)Select sname, age, dno, type into $sname, $age, $dno, $type from Studentwhere sno=$snowrite(terminal, $sname, $age, $dno, $type)LEVEL2: read(terminal,$sno)Select sname, age, dno, type into $sname, $age, $dno, $type from Student1where sno=$snoif not #FOUND thenSelect sname, a

6、ge, dno, type into $sname, $age, $dno, $type from Student2 where sno=$snowrite(terminal, $sname, $age, $dno, $type)LEVEL3: read(terminal, $sno)Select sname, age, dno, type into $sname, $age, $dno, $type from Student1 at site1where sno=$snoif not #FOUND thenSelect sname, age, dno, type into $sname, $

7、age, $dno, $type from Student1 at site2where sno=$snoif not #FOUND thenSelect sname, age, dno, type into $sname, $age, $dno, $type from Student2 at site3 where sno=$snoif not #FOUND thenSelect sname, age, dno, type into $sname, $age, $dno, $type from Student2 at site4where sno=$snowrite(terminal, $s

8、name, $age, $dno, $type)b答: LEVEL 1: Update Student Set dno=2Where sno=060138LEVEL 2: (sno为主键)Select sname into $SNAME from student1Where sno=060138If #FOUND then Update student1Set dno=2Where sno=060138Else Update student2Set dno=2Where sno=060138LEVEL 3: Select sname into $SNAME from student1 at s

9、ite1 Where sno=060138If #FOUND then Update student1 at site1 Set dno=2 Where sno=060138Else Select sname into $SNAME from student1 at site2 Where sno=060138If #FOUND then Update student1 at site2 Set dno=2 Where sno=060138Else Select sname into $SNAME from student2 at site3 Where sno=060138If #FOUND

10、 then Update studen2 at site3 Set dno=2 Where sno=060138Else Update studen2 at site4 Set dno=2 Where sno=0601384答:因为分片原则是:完备性,可重构性,不相交性。 这里:P1 v P2 =true Reconstruction P1=!P2 这两个断言可能不满足上述原则,原因是不能保证职位就只有manager和programmer这两个,故此应修改如下: P1:title=“manager” P2:title“manager”;这样就满足了上述要求。5答:连接图如下:Emp1Emp2

11、pay1Emp3 pay2Emp4这里采用partitioned graph 部分连接,可采用半连接方式进行查询优化,采用半连接可以减少站之间的数据输出量,但同时要增加通信次数和本地处理时间。所以一般需要在全连接与半连接之间进行连接。6. 设:C0 = 0, C1 = 1。所有可选的Semi-Join:Semi-JoinSelectivityBenefitCostP1: R NSJB=B U (P1)=20/50=0.40.6*(3+4+25)*5,000= 96,0004*20 = 80P2: R NSJA=A S (P2)=20/100=0.20.8*(3+4+25)*5,000 = 12

12、8,0003*20 = 60P3: U NSJB=B R (P3)=1-4*50 = 200P4: U NSJC=C S (P4)=5/10=0.50.5*(4+2+20)*100 = 1,3002*5 = 10P5: S NSJA=A R (P5)=1-3*100 = 300P6: S NSJC=C U (P6)=1-2*10 = 20选P2先做,对R的影响: card(R) = 0.2*5,000 = 1,000n =5,000 r = 1,000 mB =50 mE =500 RABESize3425Val2050500剩下的Semi-Join:Semi-JoinSelectivityB

13、enefitCostP1: R NSJB=B U (P1)=20/50=0.40.6*(3+4+25)*1,000 = 19,2004*20 = 80P3: U NSJB=B R (P3)=1-4*50 = 200P4: U NSJC=C S (P4)=5/10=0.50.5*(4+2+20)*100 = 1,3002*5 = 10P5: S NSJA=A R (P5)=1-3*20 = 60P6: S NSJC=C U (P6)=1-2*10 = 20选P1先做,对R的影响: card(R) = 0.4*1,000 = 400n = 1,000 r = 400 mA = 20 mE = 50

14、0 RABESize3425Val2020300剩下的Semi-Join:Semi-JoinSelectivityBenefitCostP3: U NSJB=B R (P3)=1-4*20 = 80P4: U NSJC=C S (P4)=5/10=0.50.5*(4+2+20)*100 = 1,3002*5 = 10P5: S NSJA=A R (P5)=1-3*20 = 60P6: S NSJC=C U (P6)=1-2*10 = 20选P4先做,对U的影响: card(U) = 0.5*100 = 50n = 100 r = 50 mB = 20 mD = 100UBCDSize4220V

15、al20550剩下的Semi-Join:Semi-JoinSelectivityBenefitCostP3: U NSJB=B R (P3)=1-4*20 = 80P5: S NSJA=A R (P5)=1-3*20 = 60P6: S NSJC=C U (P6)=1-2*5 = 10只有Cost没有Benefit,故停止。选择收集数据的站点:cost(Site 1) = (3+2)*20+(4+2+20)*50 = 1,400cost(Site 2) = (3+4+25)*400+(4+2+20)*50 = 14,100cost(Site 3) = (3+4+25)*400+(3+2)*20

16、 = 12,900所以,选择Site 1收集数据。7 Pairs of conflicting operation in S1:W2(x)W1(x), W2(x)R3(x), W2(x)R1(x), W1(x)R3(x), W1(x)R2(x), W2(y)R3(y) Pairs of conflicting operation in S2:R3(y)W2(y), W1(x)R3(x), W1(x)W2(x), R3(x)W2(x), W2(x)R1(x)Pairs of conflicting operation in S3:W2(x)R1(x), W2(x)R3(x), W2(x)W1(x

17、), W2(x)R3(x), R3(x)W1(x), W2(y)R3(y) Pairs of conflicting operation in S4:W2(x)W1(x), W2(x)R1(x), W2(x)R3(x), W2(y)R3(y), W1(x)R3(x)所以S1 is conflict equivalent to S3.8答:Execution 1:S1:Ri(x)Rj(x)Wj(y)Wi(x) 可串行化为:Tj Ti S2:Ri(w)Rj(z)Wj(w)Wi(w) S2中Ti、Tj为互相冲突的事务对,且在两个本地调度中的序不一致 execution 1 是不可串行的。Execut

18、ion 2:S1:Ri(x)Rj(x)Wj(y)Wi(y) 可串行化为:Tj Ti S2:Wi(z) 即为:Ti execution 2可串行化为: 序列1:Rj(x)Wj(y)Ri(x)Wi(z)Wi(y) 序列2:Ri(x)Wi(y)Rj(x)Wj(y) Wi(z)Execution 3:S1:Ri(x)Rj(x)Wi(x)Wj(y) 可串行化为:Tj Ti S2:Ri(z)Rj(z)Wj(z)Wi(w) 可串行化为:Ti Tj execution 3可串行为:可串行序列为:Rj(x)Wj(y)Ri(x)Wi(x)Ri(z)Wi(w)Rj(z)Wj(z)Execution 4:S1:Ri(

19、y)Rj(x)Wj(x) 可串行化为:Ti Tj或者Tj Ti (选择后者) S2:Wi(z)Ri(w)Rj(w)Wi(w) 可串行化为:Tj Ti execution 4可串行化为: Ri(y)Rj(x)Wj(x)Rj(w)Ri(w)Wi(z)Wi(w) Rj(w)Rj(x)Wj(x)Ri(w)Ri(y)Wi(z)Wi(w) Rj(x)Rj(w)Wj(x)Ri(y)Ri(w)Wi(z)Wi(w) Rj(x)Rj(w)Wj(x)Ri(w)Ri(y)Wi(z)Wi(w)9:1.Ts(Ti)WTM(x) 所以Ri(x) 且RTM(x)=35Ts(Ti)=WTM(x) 且Ts(Ti)=RTM(x)

20、所以 Wi(x) 且 WTM(x)=35 Ts(Ti)WTM(y) 所以 Ri(y) 且RTM(y)=35 Ts(Ti)=WTM(y) 且 Ts(Ti)=RTM(y) 所以 Wi(y) 且 WTM(y)=35再执行事务Tj Ts(Tj)WTM(x) 所以 Rj(x) 且RTM(x)=40 Ts(Tj)=WTM(x) 且 Ts(Tj)=RTM(x) 所以 Wj(x) 且 WTM(x)=40 Ts(Tj)WTM(y) 所以 Rj(y) 且RTM(y)=40 Ts(Tj)=WTM(y) 且 Ts(Tj)=RTM(y) 所以 Wj(y) 且 WTM(y)=402.Ts(Ti)Ts(Tj)先执行事务 T

21、i Ts(Ti)WTM(x) Rj(x) 且RTM(x)=40 Ts(Tj)=WTM(x) 且 Ts(Tj)=RTM(x) Wj(x) 且 WTM(x)=40 Ts(Tj)WTM(y) Rj(y) 且RTM(y)=40 Ts(Tj)=WTM(y) 且 Ts(Tj)=RTM(y) Wj(y) 且 WTM(y)=403.Ts(Ti)Ts(Tj) 先执行事务 Tj Ts(Tj)WTM(x) Rj(x) 且RTM(x)=35 Ts(Tj)=WTM(x) 且 Ts(Tj)=RTM(x) Wj(x) 且 WTM(x)=35 Ts(Tj)WTM(y) Rj(y) 且RTM(y)=35 Ts(Tj)=WTM(

22、y) 且 Ts(Tj)=RTM(y) Wj(y) 且 WTM(y)=35再执行事务Ti Ts(Ti)WTM(x) Ri(x) 且RTM(x)=40 Ts(Ti)=WTM(x) 且 Ts(Ti)=RTM(x) Wi(x) 且 WTM(x)=40 Ts(Ti)WTM(y) Ri(y) 且RTM(y)=40 Ts(Ti)=WTM(y) 且 Ts(Ti)=RTM(y) Wi(y) 且 WTM(y)=40找不到10和11101112.ROOT_AGENT: Read (Terminal, $AMOUNT, $FROM_ACC, $TO_ACC); Write (log, trsID, “begin_tr

23、ansaction”);Begin_transaction; Select AMOUNT into $FROM_AMOUNT From ACCOUNT Where ACCOUNT_NUMBER = $FROM_ACC; If $FROM_AMOUNT-$AMOUNT 0 then BeginWrite (log, trsID,”abort”);abort; end; Else beginUpdate ACCOUNT Set AMOUNT=AMOUNT-$AMOUNT Where ACCOUNT_NUMBER=$FROM_ACC; Create Agent1; Send (trsID, Agen

24、t1, $AMOUNT, $TO_ACC); Write (log, trsID, ”prepare”); Send (trsID, Agent1, “prepare”); Receive (trsID, Agent1, message, timeout, ok); If ok = false or message = “abort” then Begin Write (log, trsID, “glbal_abort”); Send (trsID, Agent1, “abort”); End; Else begin Write (log, trsID, “global_commit”); S

25、end (trsID, Agent1,”commit”); Receive (trsID, Agent1, message, timeout, ok); Write (log, trsID, “complete”); Commit; End; End;Agent1: Receive (trsID, ROOT_AGENT, $AMOUNT, $TO_ACC); Receive (trsID, ROOT_AGENT, message , timeout, ok); Lock (trsID, tupleID, exclusive, timeout, ok); If ok = true then Be

26、gin Write (log, trsID, “begin_transaction”); Write (log, trsID,”ready”); Send (trsID, ROOT_AGENT, “ready”); End; Else begin Write (log, trsID, “abort”); Send (trsID, ROOT_AGENT, “abort”); Abort; End; Receive (trsID, ROOT_AGENT, message, timeout, ok); If message = “abort” then Begin Write (log, trsID

27、, “abort”); Send (trsID, ROOT_AGENT, “ack”); Abort; End; Else if message = “commit” then begin write (log, trsID, “commit”); send (trsID, ROOT_AGENT, “ack”); Update ACCOUNT Set AMOUNT = AMOUNT + $AMOUNT Where ACCOUNT_NUMBER = $TO_ACC; Unlock (trsID, tupleID); End; 13一个调度S中,各个事务的操作执行时不叠加(即一个接着一个发生),则

28、这个调度是串行的(serial)。一个调度Sc是可串行的(serializable),当且仅当Sc冲突等价于一个串行调度。这种可串行化通常称为冲突等价可串行化。若一个并发执行的所有事务都遵守2PL,则这些事务的所有并发调度策略都是可串性化的。 2PL是可串行化的充分条件,不是必要条件。所以可以满足可串行化。2pl和乐观算法的根本不同是,2pl是悲观算法的一种锁协议算法,2pl在对任何数据进行读写之前,事务要先获得对该数据的封锁。乐观算法,可以利用锁协议,也可以利用时间戳协议,所有用户读取数据时不锁定数据,当一个用户更新数据时,系统将进行检查,查看该用户读取数据后其他用户是否又更改了该数据。如果其他用户更新了数据,将产生一个错误。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1