Upload
trandieu
View
350
Download
0
Embed Size (px)
Citation preview
分布式数据库系统
06工硕作业
2007.02.03 csli整理
2
第一次作业 PPT4 关系数据库语言
ExerciseWrite 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 birthdate2. Find all executives worth at least $10,000,0003. 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?
3
第一次作业1. Find Sandra Bullock’s birthdate
select birthdate from MovieStarwhere name = “Sandra Bullock”
2. Find all executives worth at least $10,000,000select name from MovieExec
where netWorth >= 100000003. Find all the stars who either are male or live in Malibu
select name from MovieStarwhere 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”
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记录, 并仍以本地应用为其设计目标, 则那个分配方案较优?
5
第二次作业
• 解:首先完善模型如下:
假定:B方案中Site1上的R2和Site3上的R2是完全相同的,即冗余;本地读写的代价可忽略不计;所有异地读操作的单位记录代价均相等,记为1;所有异地写操作的单位记录代价均相等,记为1。
1 A方案 B方案 2 A方案 B方案
A1代价 5 0 5 0A2代价 5 0 5 0A3代价 0 10 0 10+10+10故可知,第1个问题,A、B两种分配方案代价相等。
第2个问题,A分配方案较优。
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# Patient1Care2 = Care SJ p#=p# Patient2Care3 = Care SJ p#=p# Patient3
使用变换准则,将下面的全局查询变化为分段查询,并对它们加以简化。当需要时用限定关系代数消除查询中不用的段。
(a) 列出在Care中使用‘Aspirin’的Patient 名字;(b) 列出给病人开出接受精细护理的医生名字。
7
第二次作业
( )( ). . ' ' . ' 'Patient Name Care Drug Aspirin Patient DEPT Surgery Patient Careπ σ = ∧ = ><(a) 解:
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
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)
10
第二次作业
( )( ). . ' ' . # . #Doctor Name PatientTreat Intensing Doctor D Patient DDoctor Patientπ σ = =∝(b) 解:
11
第三次作业 PPT8 分布式查询优化(教科书第三章)
• PPT8讲义中第6页(连接优化方法-半连接)
对R的另一个简化程序:R’=R SJ S, T’ = T SJ R’, S’ = S SJ T’计算到R不再变化为止
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
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’’’ = ∅
14
第三次作业
• 在如下R, S的概貌上计算R JNA=B SSize(R)=50, Card(R)=100, Val(A[R])=50, Size(A)=3Size(S)=5, Card(S)=50, Val(B[S])=50, Size(B)=3R SJA=B S 的选择度 ρ = 0.2S SJA=B R 的选择度 ρ = 0.8问:
1. 使用 SJ简化程序在R得站点执行JN2. 使用 SJ简化程序在S得站点执行JN3. 使用直接连接在R站点执行JN4. 使用直接连接在S站点执行JN那种方案较优?
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
所以第三种方案最优。
16
第三次作业 PPT9 分布式事务管理与恢复(书第四章)
• 假设两个事务T 和 U 的 log 记录如下所示:
<T,Start>,<T,A,10>,<U,Start>,<U,B,20>,<T,C,30>,<U,D,40>,<U,Commit>,<T,E,50>,<T,Commit>
如果系统故障时, 磁盘上记录的Log记录如下, 请描述数据库恢复管理器的动作.
a) <U,Start>b) <U,Commit>c) <T,E,50>d) <T,Commit>
17
第三次作业
解:(a)undo T, undo U
A还原成初始值
(b)undo T, redo UA,C还原成初始值,B和D分别为20、40
(c)undo T, redo UA、C、E还原成初始值,B和D分别为20、40
(d)redo T, redo UA、C、E分别为10、30、50,B和D分别为20、40
18
第四次作业 PPT10 分布式数据库并发控制(书第五章)
1. 指出下面的冲突等价调度(忽略提交C和夭折A动作)S1= W2(x),W1(x),R3(x),R1(x),C1,W2(y), R3(z),C3,R2(x),C2S2= R3(z),R3(y),W2(y),R2(z),W1(x),R3(x),W1(x),R1(x),C1,C2,C3S3=R3(z),W2(x),W2(y),R1(x),R3(x),R2(z),R3(y),C3,W1(x),C2,C1S4=
R3(z),W2(x),W2(y),C2,W1(x),R1(x),A1,R3(x),R3(z),R3(y),C3
19
第四次作业
1. 解:
冲突等价调度如下:
S1’ =W2(x),W1(x),R1(x),R3(x),C1,W2(y),R3(z),C3,R2(x),C2S2’ =R3(z),R2(z),R3(y),W2(y),W1(x),R3(x),W1(x),R1(x),C1,C2,C3S3’ =W2(x),W2(y),R2(z),C2,R3(z),R3(x),R3(y),C3,R1(x),W1(x),C1S4’ =W2(x),W2(y),C2,W1(x),R1(x),A1,R3(z),R3(x),R3(z),R3(y),C3
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))
21
第四次作业
3. 有如下的等待图, 用分布式检测算法检测其是否有死锁(给出检测过程)
T2
T1
T2 T3
T1 T3
Site1Site2
Site3
22
第四次作业
3. 解:
LWFG
23
第四次作业
3. 将site3的LWFG传给site1和site2
24
第四次作业
3. 将site1的信息传给site2,得到GWFG,其中存在不含EX的循环,故存在死锁
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
2025
30
0
25
30
0
25
30
0
25
30
26
第四次作业 PPT11 分布式数据库的可靠性(书第六章)
设分布式冗余数据库的数据分布如下:
站点1:x 站点2:x, y 站点3:y 站点4:x, y(a)给每个站点赋以选票,并给读写操作赋以法定人数
(b)给出网络可能的网络分割分组
(c)对于每种网络分割,说明更新x的事务在哪个分组上可以
终结
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)
解:
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>
29
• 一、(1)解:
设按工厂号水平分段为:EMP1(在site1),EMP2(在site2)无冗余北京站:site3a. 分片透明
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 site1if 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
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),拒绝该操作, 事务退出重启动。
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)
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 用户似觉是单机系统
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相互间不一定很了解,只能有限合作
34
全局应用、局部应用
• 所谓全局应用,就是指涉及到两个或两个以上场地中数据库的应用。
• 区分一个系统是分散式还是分布式的方法就是判断系统是否支持全局应用。
35
• 分布式数据库中的事务具有ACID特性,即原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持久性(Durability).
• 事务管理处于数据库系统结构的核心位置,事务管理在维持事务性质和保证数据一致性和完整性上主要使用并发控制和恢复机制,并发控制用以维护事务的一致性和孤立性,恢复机制用以维护事务的原子性和持久性,两种机制共同保证数据的一致性和完整性。
36
2PL, 2PC• 基本2PL协议
2PL简单的说,就是指事务在释放某个锁后就不能又提出锁请求。
事务的执行中Lock的管理分成两个阶段
– 上升阶段(生长阶段) 获取Lock阶段
– 收缩阶段 释放Lock阶段
2PL可以保证事务执行的可串性.加锁点:指事务获得了它所要求的所有锁并且还没有开始释放任何一个锁的时
刻。因此锁点决定了一个事务生长阶段的结束和衰退阶段的开始。
采用两阶段锁协议来协调所有参与分布式事务的资源对象(数据库)以确保分布式事务的一致性和孤立性。在分布环境下,如果所有全局事务都遵循两阶段锁协议,则其调度表是可串行化的,并发事务是正确的。
• 采用2PC协议后,当系统发生故障时,各场地利用各自有关的日志信息便可执行恢复操作。恢复操作的执行类似集中式数据库。
• 严格的2PC协议也有一些缺陷,如系统效率低,可能会导致事务阻塞等,在实际的系统中,都对2PC协议作了些改进。
37
• 乐观方法对Trans运行时发生的存取冲突不处理,待事务结束时再进行检验
• 事务的三个阶段– 读段 在数据对象的局部副本上执行事务,这时其他事务不能存
取此副本。Trans从DB读数据,执行计算,并且确定写集数据项的新值。写操作总是对局部副本,仅当验证通过后,在事务结束处,才将其写入DB。
– 验证段 检验并发事务的可串性,该阶段验证修改应用是否引起完整性(一致性)的丢失,验证阶段通过,才能进入写段,否则Trans重启动
– 写段 将执行完毕的局部副本全局化,使其他Trans又可以存取
• 每个Trans Ti赋以一个事务号t(i)• 验证
– 使用数据项和事务上的时间戳
– 只是用事务时间戳读/计算 验证 写/提交
乐观法事务执行的各个阶段
38
• 局部可靠性协议
– 每个Site一个
• 维护局部事务的原子性和持久性
• 分布式可靠性协议
目的:维持在多个数据库上执行的事务的原子性和持久性
• 可靠性协议组成
包括提交、终结、恢复协议
• 终结协议
分布式系统特有的协议。若一个Site故障,希望其它Site也停止该事务。
• 非阻断协议
允许Trans在非失效的Site终结,而不必等待失效Site的恢复,从而改进Trans的响应时间
• 独立的恢复协议
如何在发生失效时终结Trans, 而不必求助于其它Site,可以减少恢复时需要交换的信息
– 网络分割时
• 终结协议采取必要的措施来终结在不同网络区间执行的活动事务
• 当网络重新连接后,恢复协议保证使各个冗余DB相互一致
– 独立恢复协议只存在于单站点故障的情形
– 若发生网络分割的时候, 丢了报文的话, 则不存在任何非阻断的协议能从网络分割故障中恢复,因此这将限制分布式数据库系统的可靠性.
39
– 采用2PC保证在故障下, 所有站点的事务能正确提交或撤销, 某些情况下事务被阻断, 直到故障修复, 由于加锁资源, 降低可用性
– 采用3PC消除上面提到的缺点, 允许站点故障时终结事务, 从而释放资源
– 网络分割时, 难于找到一种并发控制方法保证事务的可串行性, 所以若所有站点的事务都处理, 那么有可能产生不一致. 不一致要到故障修
复时才能检测出来
– 灾难性故障发生时, 采用冷启动.
40
• BLP模型
• BLP模型策略分两部分
– MAC部分
包括简单安全特性和*特性, 是通过安全级别来
强制约束主体对客体的存取
– DAC部分
通过存取控制矩阵按用户意愿限制主体对客体
的存取
41
形式化安全验证,隐蔽通道分析
可验证保护A1验证保护等级A4
安全内核,高抗渗透能力安全域保护B3
形式化模型,隐蔽通道约束结构化保护B2
强制存取控制,敏感度标记标记安全保护B1强制保护等级B3
比C1级更强的自主存取控制,审计功能
可控存取保护C2
自主存取控制,审计功能自主安全保护C1自主保护等级C2
最小安全保护D最低保护等级D1
主要特征安全等级
TCSCE的安全等级与主要特征表
42
分布式数据• 数据分布技术
– 人工抽取
– 快照
– 复制
– 分片
– 数据分布分析
• 远程请求:只涉及单个远程服务器的单个请求
• 远程事务:允许一个事务中包含多个应用同一个远程服务器站点的数据访问请求
• 分布式事务:一个事务包含多个数据请求, 每个请求只能访问单个服务器
• 分布式请求:一个事务包含多个数据请求,每个请求都可以引用驻留于多个服务器站点数据
分布式数据的访问对DBMS的要求:
数据被分布于各站点时,所有或部分数据管理逻辑也必须随数据一起分布;
分布式DBMS提供的数据访问对最终用户和应用程序都应透明。