分布式数据库.docx
- 文档编号:3717668
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:13
- 大小:266.40KB
分布式数据库.docx
《分布式数据库.docx》由会员分享,可在线阅读,更多相关《分布式数据库.docx(13页珍藏版)》请在冰豆网上搜索。
分布式数据库
分布式数据库系统2011-2012
1.分布式数据库和集中式数据库的差别主要有哪些?
数据分片的正确性判据是什么?
答:
1)分布式数据库和集中式数据库的差别主要表现在以下几个方面:
①在物理分布性方面:
分布式数据库中的数据不是存储在一个站点上,而是分散存储在由计算机网络联结起来的多个站点上,这是与集中式数据库的最大差别之一。
②在逻辑整体性方面:
分布式数据库中的数据逻辑上是互相联系,可以和分散在计算机网络不同结点上的数据库或文件的集合相区别,故有全局数据库(逻辑)和局部数据库(物理)的概念。
③在站点自治性方面:
分布式数据库各站点上的数据由本地的DBMS管理,完成本站点的应用。
集中式数据库虽然也可以把数据分散在不同的数据库中,但数据分布与应用程序没有直接联系。
④在数据独立性方面:
在集中式数据库中,数据独立性指数据的逻辑独立性与物理独立性。
在分布式数据库中,还增加了数据分布独立性,亦称分布透明性。
⑤在控制结构方面:
在集中式数据库中,对共享数据库的控制是集中的,并设有DBA负责监督和维护系统的正常运行.在分布式数据库中,数据的共享有两个层次,局部共享和全局共享。
⑥在数据冗余度方面:
在集中式数据库中,尽量减少冗余度是系统目标之一,在分布式数据库中却希望增加冗余数据,在不同的场地存储同一数据的多个副本。
⑦全局的一致性、可串行性和可恢复性:
分布式数据库中各局部数据库应满足集中式数据库的一致性、可串行性和可恢复性,除此以外还应保证数据库的全局一致性、并行操作的可串行性和系统的全局可恢复性。
2)数据分片的正确性判据:
若R={R1,R2,…,Rn},满足:
①完整性条件:
即如果a∈R,则必有a∈Ri,i=1,2,…,n
②可重构条件:
R=∪Ri(水平分片),或R=∞Ri(垂直分片)
③不相交条件:
Ri∩Rj=空集,i≠j,i,j=1,2,…,n(水平分片)
Ri∩Rj=主键属性,i≠j,i,j=1,2,…,n(垂直分片)
则数据分片正确。
2.将Student按系别水平分片,说明这种分片是满足正确性判剧的。
答:
1)将Student按系别水平分片如下:
Student1=SLdno=1Student
Student2=SLdno=2Student
Studen3=SLdno=3Student
2)从数据分片的正确性判剧来说明这种分片是满足正确性判剧的:
1完整性:
因为{dno=1}∈{dno={1,2,3}},{dno=2}∈{dno={1,2,3}},
{dno=3}∈{dno={1,2,3}},并且,Student集合中有且只有{dno=1},{dno=2}和{dno=3}这三个元素,满足完整性。
2可重构性:
因为,{dno={1,2,3}}={dno=1}∪{dno=2}∪{dno=3},
所以满足可重构性。
3不相交性:
因为,{dno=1}∩{dno=2}={dno=1}∩{dno=3}={dno=2}∩{dno=3}=空集
所以,限定语dno相斥,片段之间不相交,满足不相交性。
综上,这种分片是满足正确性判剧的
3答:
a.LEVEL1:
read(terminal,$sno)
Selectsname,age,dno,typeinto$sname,$age,$dno,$type
fromStudent
wheresno=$sno
write(terminal,$sname,$age,$dno,$type)
LEVEL2:
read(terminal,$sno)
Selectsname,age,dno,typeinto$sname,$age,$dno,$type
fromStudent1
wheresno=$sno
ifnot#FOUNDthen
Selectsname,age,dno,typeinto$sname,$age,$dno,$type
fromStudent2
wheresno=$sno
write(terminal,$sname,$age,$dno,$type)
LEVEL3:
read(terminal,$sno)
Selectsname,age,dno,typeinto$sname,$age,$dno,$type
fromStudent1atsite1
wheresno=$sno
ifnot#FOUNDthen
Selectsname,age,dno,typeinto$sname,$age,$dno,$type
fromStudent1atsite2
wheresno=$sno
ifnot#FOUNDthen
Selectsname,age,dno,typeinto$sname,$age,$dno,$type
fromStudent2atsite3
wheresno=$sno
ifnot#FOUNDthen
Selectsname,age,dno,typeinto$sname,$age,$dno,$type
fromStudent2atsite4
wheresno=$sno
write(terminal,$sname,$age,$dno,$type)
b.答:
LEVEL1:
UpdateStudent
Setdno=2
Wheresno=060138
LEVEL2:
(sno为主键)
Selectsnameinto$SNAMEfromstudent1
Wheresno=060138
If#FOUNDthen
Updatestudent1
Setdno=2
Wheresno=060138
Else
Updatestudent2
Setdno=2
Wheresno=060138
LEVEL3:
Selectsnameinto$SNAMEfromstudent1atsite1
Wheresno=060138
If#FOUNDthen
Updatestudent1atsite1
Setdno=2
Wheresno=060138
ElseSelectsnameinto$SNAMEfromstudent1atsite2
Wheresno=060138
If#FOUNDthen
Updatestudent1atsite2
Setdno=2
Wheresno=060138
ElseSelectsnameinto$SNAMEfromstudent2atsite3
Wheresno=060138
If#FOUNDthen
Updatestuden2atsite3
Setdno=2
Wheresno=060138
Else
Updatestuden2atsite4
Setdno=2
Wheresno=060138
4答:
因为分片原则是:
完备性,可重构性,不相交性。
这里:
P1vP2=true
Reconstruction
P1=!
P2
这两个断言可能不满足上述原则,原因是不能保证职位就只有manager和programmer这两个,故此应修改如下:
P1:
title=“manager”
P2:
title≠“manager”;
这样就满足了上述要求。
5答:
连接图如下:
Emp1
Emp2pay1
Emp3pay2
Emp4
这里采用partitionedgraph部分连接,可采用半连接方式进行查询优化,采用半连接可以减少站之间的数据输出量,但同时要增加通信次数和本地处理时间。
所以一般需要在全连接与半连接之间进行连接。
6.设:
C0=0,C1=1。
所有可选的Semi-Join:
Semi-Join
Selectivity
Benefit
Cost
P1:
RNSJB=BU
(P1)=20/50=0.4
0.6*(3+4+25)*5,000=96,000
4*20=80
P2:
RNSJA=AS
(P2)=20/100=0.2
0.8*(3+4+25)*5,000=128,000
3*20=60
P3:
UNSJB=BR
(P3)=1
-
4*50=200
P4:
UNSJC=CS
(P4)=5/10=0.5
0.5*(4+2+20)*100=1,300
2*5=10
P5:
SNSJA=AR
(P5)=1
-
3*100=300
P6:
SNSJC=CU
(P6)=1
-
2*10=20
选P2先做,对R的影响:
card(R)=0.2*5,000=1,000
n=5,000r=1,000mB=50mE=500
R
A
B
E
Size
3
4
25
Val
20
50
500
剩下的Semi-Join:
Semi-Join
Selectivity
Benefit
Cost
P1:
RNSJB=BU
(P1)=20/50=0.4
0.6*(3+4+25)*1,000=19,200
4*20=80
P3:
UNSJB=BR
(P3)=1
-
4*50=200
P4:
UNSJC=CS
(P4)=5/10=0.5
0.5*(4+2+20)*100=1,300
2*5=10
P5:
SNSJA=AR
(P5)=1
-
3*20=60
P6:
SNSJC=CU
(P6)=1
-
2*10=20
选P1先做,对R的影响:
card(R)=0.4*1,000=400
n=1,000r=400mA=20mE=500
R
A
B
E
Size
3
4
25
Val
20
20
300
剩下的Semi-Join:
Semi-Join
Selectivity
Benefit
Cost
P3:
UNSJB=BR
(P3)=1
-
4*20=80
P4:
UNSJC=CS
(P4)=5/10=0.5
0.5*(4+2+20)*100=1,300
2*5=10
P5:
SNSJA=AR
(P5)=1
-
3*20=60
P6:
SNSJC=CU
(P6)=1
-
2*10=20
选P4先做,对U的影响:
card(U)=0.5*100=50
n=100r=50mB=20mD=100
U
B
C
D
Size
4
2
20
Val
20
5
50
剩下的Semi-Join:
Semi-Join
Selectivity
Benefit
Cost
P3:
UNSJB=BR
(P3)=1
-
4*20=80
P5:
SNSJA=AR
(P5)=1
-
3*20=60
P6:
SNSJC=CU
(P6)=1
-
2*5=10
只有Cost没有Benefit,故停止。
选择收集数据的站点:
cost(Site1)=(3+2)*20+(4+2+20)*50=1,400
cost(Site2)=(3+4+25)*400+(4+2+20)*50=14,100
cost(Site3)=(3+4+25)*400+(3+2)*20=12,900
所以,选择Site1收集数据。
7
PairsofconflictingoperationinS1:
W2(x) PairsofconflictingoperationinS2: R3(y) PairsofconflictingoperationinS3: W2(x) PairsofconflictingoperationinS4: W2(x) 所以S1isconflictequivalenttoS3. 8答: Execution1: S1: Ri(x)Rj(x)Wj(y)Wi(x)可串行化为: TjTi S2: Ri(w)Rj(z)Wj(w)Wi(w) ∵S2中Ti、Tj为互相冲突的事务对,且在两个本地调度中的序不一致 ∴execution1是不可串行的。 Execution2: S1: Ri(x)Rj(x)Wj(y)Wi(y)可串行化为: TjTi S2: Wi(z)即为: Ti ∴execution2可串行化为: 序列1: Rj(x)Wj(y)Ri(x)Wi(z)Wi(y) 序列2: Ri(x)Wi(y)Rj(x)Wj(y)Wi(z) Execution3: S1: Ri(x)Rj(x)Wi(x)Wj(y)可串行化为: TjTi S2: Ri(z)Rj(z)Wj(z)Wi(w)可串行化为: TiTj ∴execution3可串行为: 可串行序列为: Rj(x)Wj(y)Ri(x)Wi(x)Ri(z)Wi(w)Rj(z)Wj(z) Execution4: S1: Ri(y)Rj(x)Wj(x)可串行化为: TiTj或者TjTi(选择后者) S2: Wi(z)Ri(w)Rj(w)Wi(w)可串行化为: TjTi ∴execution4可串行化为: 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) ∵Ts(Ti)>WTM(x)所以Ri(x)且RTM(x)=35 ∵Ts(Ti)>=WTM(x)且Ts(Ti)>=RTM(x)所以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)=40 2. ∵Ts(Ti) ∵Ts(Ti) 再执行事务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)=40 3. ∵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(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和11 10 11 12. ROOT_AGENT: Read(Terminal,$AMOUNT,$FROM_ACC,$TO_ACC); Write(log,trsID,“begin_transaction”); Begin_transaction; SelectAMOUNTinto$FROM_AMOUNT FromACCOUNT WhereACCOUNT_NUMBER=$FROM_ACC; If$FROM_AMOUNT-$AMOUNT<0then Begin Write(log,trsID,”abort”); abort; end; Elsebegin UpdateACCOUNT SetAMOUNT=AMOUNT-$AMOUNT WhereACCOUNT_NUMBER=$FROM_ACC; CreateAgent1; Send(trsID,Agent1,$AMOUNT,$TO_ACC); Write(log,trsID,”prepare”); Send(trsID,Agent1,“prepare”); Receive(trsID,Agent1,message,timeout,ok); Ifok=falseormessage=“abort”then Begin Write(log,trsID,“glbal_abort”); Send(trsID,Agent1,“abort”); End; Elsebegin Write(log,trsID,“global_commit”); Send(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); Ifok=truethen Begin Write(log,trsID,“begin_transaction”); Write(log,trsID,”ready”); Send(trsID,ROOT_AGENT,“ready”); End; Elsebegin Write(log,trsID,“abort”); Send(trsID,ROOT_AGENT,“abort”); Abort; End; Receive(trsID,ROOT_AGENT,message,timeout,ok); Ifmessage=“abort”then Begin Write(log,trsID,“abort”); Send(trsID,ROOT_AGENT,“ack”); Abort; End; Elseifmessage=“commit”then begin write(log,trsID,“commit”); send(trsID,ROOT_AGENT,“ack”); UpdateACCOUNT SetAMOUNT=AMOUNT+$AMOUNT WhereACCOUNT_NUMBER=$TO_ACC; Unlock(trsID,tupleID); End; 13. 一个调度S中,各个事务的操作执行时不叠加(即一个接着一个发生),则这个调度是串行的(serial)。 一个调度Sc是可串行的(serializable),当且仅当Sc冲突等价于一个串行调度。 这种可串行化通常称为冲突等价可串行化。 若一个并发执行的所有事务都遵守2PL,则这些事务的所有并发调度策略都是可串性化的。 2PL是可串行化的充分条件,不是必要条件。 所以可以满足可串行化。 2pl和乐观算法的根本不同是,2pl是悲观算法的一种锁协议算法,2pl在对任何数据进行读写之前,事务要先获得对该数据的封锁。 乐观算法,可以利用锁协议,也可以利用时间戳协议,所有用户读取数据时不锁定数据,当一个用户更新数据时,系统将进行检查,查看该用户读取数据后其他用户是否又更改了该数据。 如果其他用户更新了数据,将产生一个错误。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 数据库