分布式数据库系统 06 工硕作业

42
分分分分分分分06 分分分分 2007.02.03 csli 分分

Upload: lori

Post on 16-Jan-2016

188 views

Category:

Documents


0 download

DESCRIPTION

分布式数据库系统 06 工硕作业. 2007.02.03 csli 整理. 第一次作业 PPT4 关系数据库语言. Exercise Write the following queries, based on the following database example : Movie (title, year, length, inColor, studioName, producerC#) StarsIn (movieTitle, movieYear, strName) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 分布式数据库系统 06 工硕作业

分布式数据库系统

06 工硕作业

2007.02.03 csli 整理

Page 2: 分布式数据库系统 06 工硕作业

2

第一次作业 PPT4 关系数据库语言

Exercise Write the following queries, based on the following database example : Movie (title, year, length, inColor, studioName, producerC#) StarsIn (movieTitle, movieYear, strName) MovieStar (name, address, gender, birthdate) MovieExec (name, address, cert#, netWorth) Studio (name, address, presC#)In SQL. 1. Find Sandra Bullock’s birthdate 2. Find all executives worth at least $10,000,000 3. Find all the stars who either are male or live in Malibu 4.Which stars appeared in movies produced by MGM in 1995? 5. Who is the president of MGM studio?

Page 3: 分布式数据库系统 06 工硕作业

3

第一次作业 1. Find Sandra Bullock’s birthdate

select birthdate from MovieStar where name = “Sandra Bullock”

2. Find all executives worth at least $10,000,000 select name from MovieExec where netWorth >= 10000000

3. Find all the stars who either are male or live in Malibu select name from MovieStar where address = “Malibu” or gender = “male”

4. Which stars appeared in movies produced by MGM in 1995? select strName from StarsIn where movie Title in

(select title from Movie where studioName = “MGM” and year = “1995”)

5. Who is the president of MGM studio? Select presC# from Studio where name = “MGM”

Page 4: 分布式数据库系统 06 工硕作业

4

第二次作业 PPT6 分布式数据库设计(教科书第三章)

• 已知有如下两种段分配 : A> R1 在 Site1, R2 在 Site2, R3 在 Site3.

B> R1 和 R2 在 Site1, R2 和 R3 在 Site3.另已知有如下应用 ( 所有应用的频率相同 ) A1: 在 Site1 上发出 , 读 5 个 R1 记录 , 5 个 R2 记录 A2: 在 Site3 上发出 , 读 5 个 R3 记录 , 5 个 R2 记录 A3: 在 Site2 上发出 , 读 10 个 R2 记录 .问 : 1. 如果以本地应用为主要设计目标 , 那个分配较优 ?

2. 假定 A3 改为要修改 10 个 R2 记录 , 并仍以本地应用为其设计目标 , 则那个分配方案较优 ?

Page 5: 分布式数据库系统 06 工硕作业

5

第二次作业• 解:首先完善模型如下:

假定: B 方案中 Site1 上的 R2 和 Site3 上的 R2 是完全相同的,即冗余;本地读写的代价可忽略不计;所有异地读操作的单位记录代价均相等,记为 1 ;所有异地写操作的单位记录代价均相等,记为 1 。

1 A 方案 B 方案 2 A 方案 B 方案 A1 代价 5 0 5 0 A2 代价 5 0 5 0 A3 代价 0 10 0 10+10+10故可知,第 1 个问题, A 、 B 两种分配方案代价相等。

第 2 个问题, A 分配方案较优。

Page 6: 分布式数据库系统 06 工硕作业

6

第二次作业 PPT7 分布式查询处理(教科书第三章)

习题 : 假定全局关系和分段模式如下:全局关系

Doctor (D#, Name, Dept) Patient (P#, Name, Dept, Treat, D#)

Care (P#, Drug, QTY)分段模式

Doctor1 = SLDEPT=‘Surgery’(Doctor) Doctor2 = SLDEPT=‘Pediatrics’(Doctor)

Doctor3 = SLDEPT ‘Surgery’ and DEPT ‘Pediatrics’(Doctor) Patient1 = SLDEPT=‘Surgery’ and treat=‘intensing’(Patient)

Patient2 = SLDEPT=‘Surgery’ and treat ‘intensing’(Patient) Patient3 = SLDEPT ‘Surgery’ (Patient)

Care1 = Care SJ p#=p# Patient1 Care2 = Care SJ p#=p# Patient2

Care3 = Care SJ p#=p# Patient3使用变换准则,将下面的全局查询变化为分段查询,并对它们加以简化。当需要时用限定关系代数消除查询中不用的段。 (a) 列出在 Care 中使用‘ Aspirin’ 的 Patient 名字;

(b) 列出给病人开出接受精细护理的医生名字。

Page 7: 分布式数据库系统 06 工硕作业

7

第二次作业

. . ' ' . ' 'Patient Name Care Drug Aspirin Patient DEPT Surgery Patient Care (a) 解:

SL Drug=’ Aspirin’ ^ Patient.DEPT=’ Surgery’

PJ patient.name

JN P#=P#

Patient Care

Page 8: 分布式数据库系统 06 工硕作业

8

第二次作业(a)

UN

JN P#=P#

Patient1 Care1

SL Drug=’ Aspirin’ ^ Patient.DEPT=’ Surgery’

PJ patient.name

JN P#=P#

Patient2 Care2

JN P#=P#

Patient3 Care3

Page 9: 分布式数据库系统 06 工硕作业

9

第二次作业UN

JN P#=P#

PJ patient.name

PJ P#,name PJ P#

Patient1 SL Drug=’ Aspirin’

Care1

PJ patient.name

JN P#=P#

PJ P#,name PJ P#

Patient2 SL Drug=’ Aspirin’

Care2

(a)

Page 10: 分布式数据库系统 06 工硕作业

10

第二次作业

UN

JN D#=D#

PJ name

PJ D#,name PJ D#

D1SL

treat=’ intensing’

P1

JN D#=D#

PJ name

PJ D#,namePJ D#

D3SL

treat=’ intensing’

P3

JN D#=D#

PJ name

PJ D#,name

D2

. . ' ' . # . #Doctor Name Patient Treat Intensing Doctor D Patient DDoctor Patient (b) 解:

Page 11: 分布式数据库系统 06 工硕作业

11

第三次作业 PPT8 分布式查询优化(教科书第三章)

• PPT8 讲义中第 6 页(连接优化方法-半连接)对 R 的另一个简化程序:

R’=R SJ S, T’ = T SJ R’, S’ = S SJ T’

计算到 R 不再变化为止

Page 12: 分布式数据库系统 06 工硕作业

12

解: R S

T

R

S

T

B=B C=C

A=A

R,S,T 的循环连接图

对 R 的充分简化

R’=R SJ S S’=S SJ T’T’=T SJ R’

A B

1 a

2 b

3 c

C A

x 2

y 3

B C

a x

b y

Page 13: 分布式数据库系统 06 工硕作业

13

R’’=R’ SJ S’ S’’=S’ SJ T’’T’’=T’ SJ R’’

R’’’=R’’ SJ S’’

b2

a1

BA

2x

AC

xa

CB

a1

BA

T’’’=T’’ SJ R’’’ = S’’’=S’’ SJ T’’’ =

Page 14: 分布式数据库系统 06 工硕作业

14

第三次作业 • 在如下 R, S 的概貌上计算 R JNA=B S

Size(R)=50, Card(R)=100, Val(A[R])=50, Size(A)=3 Size(S)=5, Card(S)=50, Val(B[S])=50, Size(B)=3 R SJA=B S 的选择度 ρ = 0.2 S SJA=B R 的选择度 ρ = 0.8 问 :

1. 使用 SJ 简化程序在 R 得站点执行 JN 2. 使用 SJ 简化程序在 S 得站点执行 JN 3. 使用直接连接在 R 站点执行 JN 4. 使用直接连接在 S 站点执行 JN 那种方案较优 ?

Page 15: 分布式数据库系统 06 工硕作业

15

第三次作业• 解:1. COST1 = 2C0 + C1( Size(A)·Val(A[R]) + Size(S)·Card(S)·ρS SJ R )

= 2C0 + C1( 3·50 + 5·50·0.8 ) = 2C0 + 350C1

2. COST2 = 2C0 + C1( Size(B)·Val(B[S]) + Size(R)·Card(R)·ρR SJ S )

= 2C0 + C1( 3·50 + 50·100·0.2 ) = 2C0 + 1150C1

3. COST3 = C0 + C1·Size(S)·Card(S)

= C0 + C1·5·50 = C0 + 250C1

4. COST4 = C0 + C1·Size(R)·Card(R)

= C0 + C1·50·100 = C0 + 5000C1

所以第三种方案最优。

Page 16: 分布式数据库系统 06 工硕作业

16

第三次作业 PPT9 分布式事务管理与恢复(书第四章)

• 假设两个事务 T 和 U 的 log 记录如下所示 : <T,Start>,<T,A,10>,<U,Start>,<U,B,20>,<T,C,30>,<U,D,4

0>,<U,Commit>,<T,E,50>,<T,Commit>

如果系统故障时 , 磁盘上记录的 Log 记录如下 , 请描述数据库恢复管理器的动作 .

a) <U,Start> b) <U,Commit> c) <T,E,50> d) <T,Commit>

Page 17: 分布式数据库系统 06 工硕作业

17

第三次作业解:(a)undo T, undo U

A 还原成初始值(b)undo T, redo U

A,C 还原成初始值, B 和 D 分别为 20 、 40

(c)undo T, redo UA 、 C 、 E 还原成初始值, B 和 D 分别为 20 、 40

(d)redo T, redo U A 、 C 、 E 分别为 10 、 30 、 50 , B 和 D 分别为 20 、40

Page 18: 分布式数据库系统 06 工硕作业

18

第四次作业 PPT10 分布式数据库并发控制(书第五章)

1. 指出下面的冲突等价调度 ( 忽略提交 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(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),C3

Page 19: 分布式数据库系统 06 工硕作业

19

第四次作业1. 解: 冲突等价调度如下:

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),C3

Page 20: 分布式数据库系统 06 工硕作业

20

第四次作业2. 上题 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) )

Page 21: 分布式数据库系统 06 工硕作业

21

第四次作业3. 有如下的等待图 , 用分布式检测算法检测其是否有死锁

( 给出检测过程 )

T2

T1

T2 T3

T1 T3

Site1Site2

Site3

Page 22: 分布式数据库系统 06 工硕作业

22

第四次作业3. 解: LWFG

T2T1 EXsite1

T3T2 EXsite2

T1T3 EXsite3

Page 23: 分布式数据库系统 06 工硕作业

23

第四次作业3. 将 site3 的 LWFG 传给 site1 和 site2

T2T1 T3site1 EX

T3T2 EXsite2 T1

Page 24: 分布式数据库系统 06 工硕作业

24

第四次作业3. 将 site1 的信息传给 site2 ,得到 GWFG ,其中存在不

含 EX 的循环,故存在死锁

T3T2 EXsite2 T1

Page 25: 分布式数据库系统 06 工硕作业

25

第四次作业4. 已知有事务如例 5-1(p.111), 并且 T1 的 TS 是 20, T2 的 TS 是 25 重启动间隔

是 5, 给出按基本 T/O 方式执行的过程 ( 调度 ).

解:

T1(20) T2(25) T1(30) RTM(x) WTM(x) RTM(y) WTM(y)

Read(x)

Write(x)

Abort

Read(x)

Write(x)

Read(y)

Write(y)

Commit

Read(x)

Write(x)

Read(y)

Write(y)

Commit

20

25

30

0

25

30

0

25

30

0

25

30

Page 26: 分布式数据库系统 06 工硕作业

26

第四次作业 PPT11 分布式数据库的可靠性(书第六章)

设分布式冗余数据库的数据分布如下:站点 1 : x 站点 2 : x, y 站点 3 : y 站点 4 :

x, y

(a) 给每个站点赋以选票,并给读写操作赋以法定人数(b) 给出网络可能的网络分割分组(c) 对于每种网络分割,说明更新 x 的事务在哪个分组上可

以终结

Page 27: 分布式数据库系统 06 工硕作业

27

第四次作业

(a) 为 x, y 的每个副本赋予一张选票,则各站点的选票为 V1 = 1,V2 = 2,V3 = 1,V4 = 2;为数据项 x,y 设定读写法定人数如下:Vrx = Vwx = Vry = Vwy = 2;符合 Gifford 算法的要求: Vr + Vw > V, Vw > V/2 。

(b)(c)可能的网络分割分组如下(下划线表示事务可在该分组上终结): I 未分割: (1,2,3,4) II 分割为两组: (1,2) (3,4) (1,3) (2,4) (1,4) (2,3) (1,2,3) (4) (1,2,4) (3) (1,3,4) (2) (2,3,4) (1) III 分割为三组: (1,2) (3) (4) (1,3) (2) (4) (1,4) (2) (3) (2,3) (1) (4) (2,4) (1) (3) (3,4) (1) (2) IV 分割为四组: (1) (2) (3) (4)

解:

Page 28: 分布式数据库系统 06 工硕作业

28

• ftp://218.23.4.166/ 用户名密码都是 x

• 一、已知关系 EMP (姓名,地址,工资,工厂号)按工厂号水平分段,无冗余地存储在站点 1 和站点 2 。另外在北京存有整个关系副本,现有用户从天津发出如下查询语句,请分别给出这两个查询满足三个透明级别的处理。

( 1 ) 查询 5 厂职工的姓名和地址。 ( 2 ) 查询所有职工的平均工资。• 二、对数据库中的某个数据项 x ,已知 RTM ( x ) =120 ,

WTM ( x ) =110 。 <R(x),TS>( 或 < W(x),TS >) 表示事务 T 在 x 项上具有 TS 时间戳的读申请 ( 或写申请 ) ,给出下列申请序列的满足基本时间戳算法的执行动作。

<R(x),115> , <R(x),80> , <W(x),112> <W(x),118> , <R(x),135> , <W(x),125>

Page 29: 分布式数据库系统 06 工硕作业

29

• 一、(1) 解: 设按工厂号水平分段为: EMP1 (在 site1 ), EMP2 (在 site2 )无冗余 北京站: site3 a. 分片透明 select 姓名,地址 from EMP where 工厂号=“ 5”; b. 位置透明 select 姓名,地址 from EMP1 where 工厂号=“ 5” ; if not #found then select 姓名,地址 from EMP2 where 工厂号=“ 5” c. 本地映射透明 select 姓名,地址 from EMP AT site3 或者: select 姓名,地址 from EMP1 AT site1 if not #found then select 姓名,地址 from EMP2 AT site2

(2) 涉及到求均值函数 avg( 工资 ) 。 分片透明 select avg( 工资 ) from EMP 位置透明 select avg( 工资 ) from EMP1 , EMP2 本地映射透明 select avg( 工资 ) from EMP AT site3

Page 30: 分布式数据库系统 06 工硕作业

30

• 二、解: RTM ( x ) =120 , WTM ( x ) =110<R(x),115> 表示事务 T 在 x 项上具有 TS 为 115 的读申请。此时 TS>WTM(x),

执行操作,设置 RTM(x) = max{RTM(x), TS} = 120

<R(x),80> ,此时 TS < WTM(x), 拒绝该操作 , 事务退出重启动。<W(x),112> ,此时 TS < RTM(x), 拒绝该操作 , 事务退出重启动。 <W(x),118> ,此时 TS < RTM(x), 拒绝该操作 , 事务退出重启动。 <R(x),135> ,执行操作,设置 RTM(x) = max{RTM(x), TS} = 135<W(x),125> ,此时 TS < RTM(x), 拒绝该操作 , 事务退出重启动。

Page 31: 分布式数据库系统 06 工硕作业

31

• 什么是同构 DDB,什么是异构 DDB?• 什么是全局应用,什么是局部应用?• TRASACTION应具有哪些性质 ,DDBMS 分

别用哪些技术来保证这些性质?• 举例说明事务只遵循 2PL, 不遵循 2PC 的问

题所在• 已知 R 和 S ,给出计算 R SJ S 的过程和结果。给出利用 SJ 计算 R JN S 的图示

R(A,B) 有元组:( 1,a ) (2,b) (3,c)

S(B,C) 有元组:( a,x ) (b,y) (c,z)

Page 32: 分布式数据库系统 06 工硕作业

32

• In a homogeneous distributed database

同构 DDB (同构同质、同构异质)• All sites have identical software

各站点 DBMS 相同• Are aware of each other and agree to cooperate

in processing user requests. 互相了解,合作

• Each site surrenders part of its autonomy in terms of right to change schemas or software 互相妥协,交互模式

• Appears to user as a single system 用户似觉是单机系统

Page 33: 分布式数据库系统 06 工硕作业

33

• In a heterogeneous distributed database 异构 DDB

• Different sites may use different schemas and software不同站点可以有不同模式和 DBMS软件

• Difference in schema is a major problem for query processing 不同模式,因而查询较难处理

• Difference in software is a major problem for transaction processing 软件不同,因而事务处理较难

• Sites may not be aware of each other and may provide only limited facilities for cooperation in transaction processing相互间不一定很了解,只能有限合作

Page 34: 分布式数据库系统 06 工硕作业

34

全局应用、局部应用• 所谓全局应用,就是指涉及到两个或两个

以上场地中数据库的应用。• 区分一个系统是分散式还是分布式的方法就是判断系统是否支持全局应用。

Page 35: 分布式数据库系统 06 工硕作业

35

• 分布式数据库中的事务具有 ACID特性,即原子性( Atomicity ),一致性 (Consistency) ,隔离性( Isolation )和持久性( Durability ) .

• 事务管理处于数据库系统结构的核心位置,事务管理在维持事务性质和保证数据一致性和完整性上主要使用并发控制和恢复机制,并发控制用以维护事务的一致性和孤立性,恢复机制用以维护事务的原子性和持久性,两种机制共同保证数据的一致性和完整性。

Page 36: 分布式数据库系统 06 工硕作业

36

2PL, 2PC• 基本 2PL协议 2PL 简单的说,就是指事务在释放某个锁后就不能又提出锁请求。 事务的执行中 Lock 的管理分成两个阶段

– 上升阶段 (生长阶段 ) 获取 Lock阶段– 收缩阶段 释放 Lock阶段

2PL 可以保证事务执行的可串性 .加锁点:指事务获得了它所要求的所有锁并且还没有开始释放任何一个锁的时刻。因此锁点决定了一个事务生长阶段的结束和衰退阶段的开始。

采用两阶段锁协议来协调所有参与分布式事务的资源对象(数据库)以确保分布式事务的一致性和孤立性。在分布环境下,如果所有全局事务都遵循两阶段锁协议,则其调度表是可串行化的 ,并发事务是正确的。

• 采用 2PC协议后,当系统发生故障时,各场地利用各自有关的日志信息便可执行恢复操作。恢复操作的执行类似集中式数据库。

• 严格的 2PC协议也有一些缺陷,如系统效率低,可能会导致事务阻塞等,在实际的系统中,都对 2PC协议作了些改进。

Page 37: 分布式数据库系统 06 工硕作业

37

• 乐观方法对 Trans运行时发生的存取冲突不处理,待事务结束时再进行检验

• 事务的三个阶段– 读段 在数据对象的局部副本上执行事务,这时其他事务不能存取此副本。 Trans 从 DB 读数据,执行计算,并且确定写集数据项的新值。写操作总是对局部副本,仅当验证通过后,在事务结束处,才将其写入 DB 。

– 验证段 检验并发事务的可串性,该阶段验证修改应用是否引起完整性(一致性)的丢失,验证阶段通过,才能进入写段,否则Trans重启动

– 写段 将执行完毕的局部副本全局化,使其他 Trans又可以存取• 每个 Trans Ti 赋以一个事务号 t(i)• 验证

– 使用数据项和事务上的时间戳– 只是用事务时间戳

读 / 计算 验证 写 /提交

乐观法事务执行的各个阶段

Page 38: 分布式数据库系统 06 工硕作业

38

• 局部可靠性协议– 每个 Site 一个

• 维护局部事务的原子性和持久性• 分布式可靠性协议 目的:维持在多个数据库上执行的事务的原子性和持久性

• 可靠性协议组成 包括提交、终结、恢复协议

• 终结协议 分布式系统特有的协议。若一个 Site 故障,希望其它 Site也停止该事务。

• 非阻断协议 允许 Trans 在非失效的 Site 终结,而不必等待失效 Site 的恢复,从而改进 Trans 的响应时间

• 独立的恢复协议 如何在发生失效时终结 Trans, 而不必求助于其它 Site, 可以减少恢复时需要交换的信

– 网络分割时• 终结协议采取必要的措施来终结在不同网络区间执行的活动事务• 当网络重新连接后,恢复协议保证使各个冗余 DB 相互一致

– 独立恢复协议只存在于单站点故障的情形– 若发生网络分割的时候 , 丢了报文的话 , 则不存在任何非阻断的协议能从网络分

割故障中恢复 ,因此这将限制分布式数据库系统的可靠性 .

Page 39: 分布式数据库系统 06 工硕作业

39

–采用 2PC保证在故障下 , 所有站点的事务能正确提交或撤销 , 某些情况下事务被阻断 , 直到故障修复 , 由于加锁资源 , 降低可用性

–采用 3PC消除上面提到的缺点 , 允许站点故障时终结事务 , 从而释放资源

– 网络分割时 , 难于找到一种并发控制方法保证事务的可串行性 , 所以若所有站点的事务都处理 , 那么有可能产生不一致 . 不一致要到故障修复时才能检测出来

–灾难性故障发生时 , 采用冷启动 .

Page 40: 分布式数据库系统 06 工硕作业

40

• BLP 模型• BLP 模型策略分两部分

– MAC部分 包括简单安全特性和 *特性 , 是通过安全级别来强制约束主体对客体的存取

– DAC部分 通过存取控制矩阵按用户意愿限制主体对客体

的存取

Page 41: 分布式数据库系统 06 工硕作业

41

形式化安全验证,隐蔽通道分析

可验证保护A1验证保护等级A4

安全内核,高抗渗透能力安全域保护B3

形式化模型,隐蔽通道约束结构化保护B2

强制存取控制,敏感度标记标记安全保护B1强制保护等级B3

比C1 级更强的自主存取控制,审计功能

可控存取保护C2

自主存取控制,审计功能自主安全保护C1自主保护等级C2

最小安全保护D最低保护等级D1

主要特征安全等级

TCSCE 的安全等级与主要特征表

Page 42: 分布式数据库系统 06 工硕作业

42

分布式数据• 数据分布技术

– 人工抽取– 快照– 复制– 分片– 数据分布分析

• 远程请求 :只涉及单个远程服务器的单个请求• 远程事务 :允许一个事务中包含多个应用同一个远程服务器站点的数据访问

请求• 分布式事务 : 一个事务包含多个数据请求 , 每个请求只能访问单个服务器• 分布式请求 : 一个事务包含多个数据请求 , 每个请求都可以引用驻留于多个服

务器站点数据

分布式数据的访问对 DBMS 的要求: 数据被分布于各站点时,所有或部分数据管理逻辑也必须随数据一起分布; 分布式 DBMS提供的数据访问对最终用户和应用程序都应透明。