《分布式数据库系统设计.ppt》由会员分享,可在线阅读,更多相关《分布式数据库系统设计.ppt(101页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、分布式数据库系统设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望1.1.分布式数据库系统设计概述分布式数据库系统设计概述2.2.自顶向下设计分布式数据库自顶向下设计分布式数据库3.3.DATAID-DDATAID-D方法方法4.4.实例研究:飞机订票系统实例研究:飞机订票系统5.5.自底向上设计分布式数据库自底向上设计分布式数据库分布式数据库系统设计分布式数据库系统设计 第第2章章分布式数据库设计概述分布式数据库设计概述1创建方法创建方法1.1 组合法组合法
2、1.剖析网络剖析网络功能功能2.剖析原有剖析原有数据库系数据库系统统3.解决数据解决数据的一致性、的一致性、完整性和完整性和可靠性可靠性4.难度较大难度较大 通常是异通常是异构或者同构或者同构异质构异质DDBS用户1用户2用户n分布式协调管理系统DBMS1DBMS2DBMSm 网络分布式数据库设计概述分布式数据库设计概述1DDBSDDBS创建方法创建方法1.1 重构法重构法 1.根据实现环境根据实现环境和用户需求和用户需求2.按照按照DDBS的的设计思想和方设计思想和方法法3.从总体设计做从总体设计做起,包括起,包括LDBS,重新建重新建立一个立一个DDBS4.可有效解决数可有效解决数据一致性
3、、完据一致性、完整性和可靠性整性和可靠性问题。问题。通常是同构异通常是同构异质或同构同质质或同构同质DDBS用户1用户2用户n分布式数据库管理系统 网络1.2 DDBS DDBS设计内容设计内容1 1 分布式数据库设计概述分布式数据库设计概述DDBS设计设计DDB设计设计应用设计应用设计全局模式设计全局模式设计局部数据库设计局部数据库设计相关应用需求相关应用需求各个应用的原发站点各个应用的原发站点各个应用在每个站点的激活频率各个应用在每个站点的激活频率各个应用对要求访问数据对象的各个应用对要求访问数据对象的访问次数、类型和统计分布访问次数、类型和统计分布分片和分布分片和分布1.3 DDBS D
4、DBS设计目标设计目标1 1 分布式数据库设计概述分布式数据库设计概述DDBS设计目标设计目标本地性或近地性本地性或近地性存储能力和费用存储能力和费用尽量减少通信次数和通信量,尽量减少通信次数和通信量,90/10准则准则分片和分布方案(分片和分布方案(本地和远程访问次数本地和远程访问次数)择优)择优控制数据适当冗余控制数据适当冗余冗余增加了可靠性、可用性,提高了效率冗余增加了可靠性、可用性,提高了效率维护数据一维护数据一致性开销增加致性开销增加工作负荷分布工作负荷分布各站点可以分担整个工作任务各站点可以分担整个工作任务本地性降低本地性降低1.4 DDBS DDBS设计方法设计方法1 1 分布式
5、数据库设计概述分布式数据库设计概述DDBS设计方法设计方法自顶向下方法(重构法)自顶向下方法(重构法)混合方法混合方法自底向上方法(组合法)自底向上方法(组合法)2.1 步骤和内容步骤和内容2 2 自顶向下设计自顶向下设计DDBDDB需求分析概念设计视图设计分布设计物理设计观察与监视系统需求全局概念模式访问模式外部模式定义局部概念模式物理模式用户输入视图集成用户输入反馈反馈自顶向下设计过程假若有全局关系R 被分片为子关系(片段)集合 R=R1,R2,Rn,则 R满足完整性?x R,Ri R 必有必有 x Ri,i=1,2,n可重构性?存在函数 g 使得R=g(R1,R2,Rn)即,R=Ri(水
6、平分片),R=Ri(垂直分片)不相交性Ri Rj=空集,ij,i,j=1,2,n(水平分片)Ri Rj=主键属性,i,j=1,2,n(垂直分片)2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB 分片原则分片原则 职工关系 E(e#,name,loc,sal,)查询:Qa:select*Qb:select*from E from Ewhere loc=Sa where loc=Sband and.两个站点:Sa,Sb Qa QbSaSb2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB 举例举例 e#NM Loc Sal E578Sa
7、 1000SallySb 2500TomSa 500Joee#NM Loc Sale#NM Loc Sal58Sa 1000TomSa 500Joe7Sb 2500Sally.FF站点Sa站点 Sb2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB 举例举例 基本水平分片 以关系自身的属性性质为基础,执行以关系自身的属性性质为基础,执行“选选择择”操作,将关系分割成若干个不相交的操作,将关系分割成若干个不相交的片段。片段。RR =R1,R2 R1=loc=Sa(E)R2 =loc=Sb(E)2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDB
8、DDB 基本水平分片基本水平分片 若 R=R1,R2,Rn,则完整性 对于每一个元组 t R,Ri R 使得 t Ri 不相交性 对 t Ri,Rj 使得 t Rj,i j可重构性 操作是 (可以忽略,因为完整性就蕴含着)R=R1,R2,RnP=p1,p2,pn是一简单谓词集合,为保证分片的正确性,P必须是:完整的:同一分片中的任意两个元组被应用同样概率访问。最小的:集合P中的所有谓词与应用密切相关。(不同分片中的元组被访问的概率是不同的)具有完整性和最小性不是必要条件,但是对于简化分配问题有好处2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB 基本水平分片基本
9、水平分片 例子EMP(E#,NAME,DEPT,JOB,SAL,TEL,)DEPT=1,2 JOB=P,-P假定,应用经常查询的内容是属于部门1且是程序员的职员。则可能有的水平分段限定 P=DEPT=1 (不是完整的)P=DEPT=1,JOB=P (是完整的、最小的)P=DEPT=1,JOB=P,SAL500 (完整的,不是最小的)2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB 基本水平分片基本水平分片 如何保证分片原则“手工”检查!e.g.,R1=loc=Sa E;R2=loc=Sb E生成具有满足分段原则的限定谓词2.2 数据的分片设计数据的分片设计2 2
10、 自顶向下设计自顶向下设计DDBDDB 基本水平分片基本水平分片 设有关系 E(e#,name,Loc,sal,A,),查询使用的简单谓词(Ai Value)是:A5,Loc=Sa,Loc=Sb下一步:-生成“小项”谓词-消除无用谓词给定简单谓词集 Pr=p1,p2,.pn,则“小项”谓词(minterm predicate)形式:p1*p2*pn*这里 pk*是 pk 或是 pk2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB 谓词生成举例谓词生成举例(1)A5 Loc=SA Loc=SB(2)A5 Loc=SA (Loc=SB)(3)A5 (Loc=SA)L
11、oc=SB(4)A5 (Loc=SA)(Loc=SB)(5)A5)Loc=SA Loc=SB(6)A5)Loc=SA (Loc=SB)(7)A5)(Loc=SA)Loc=SB(8)A5)(Loc=SA)(Loc=SB)2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB小项谓词选择小项谓词选择(9)(A5 Loc=SA Loc=SB(10)(A5 Loc=SA (Loc=SB)(11)(A5 (Loc=SA)Loc=SB(12)(A5 (Loc=SA)(Loc=SB)(13)(A5)Loc=SA Loc=SB(14)(A5)Loc=SA (Loc=SB)(15)(A
12、5)(Loc=SA)Loc=SB(16)(A5)(Loc=SA)(Loc=SB)2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB小项谓词选择小项谓词选择R2:5 A 10 Loc=SA R3:5 A 10 Loc=SB R6:A 5 Loc=SA R7:A 5 Loc=SB R10:A 10 Loc=SA R11:A 10 Loc=SB 分片结果分片结果2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB注注:无用段的消除依赖于应用的语义无用段的消除依赖于应用的语义e.g.:如果 LOC 可以是 SA,SB,则最终分段集合应该加上R4
13、:5 A 10 Loc SA Loc SB R8:A 5 Loc SA Loc SB R12:A 10 Loc SA Loc SB2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB小项选择率(minterm selectivity)对某一给定小项谓词用户查询可能选择到的元组数访问频率(Access frequency)用户应用访问数据的频率小项访问频率可以通过用户查询频率获得2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB分片数量信息分片数量信息例子 E(#,NM,LOC,SAL,)有查询应用Qa:select*Qb:select*
14、from Efrom E where LOC=Sa where LOC=Sb and and.2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB如何选择小项谓词举例如何选择小项谓词举例(1)Pr=R1=E(2)Pr=LOC=Sa,LOC=Sb R2=loc=Sa E,loc=Sb E(3)Pr=LOC=Sa,LOC=Sb,Sal1000 R3=loc=Sa sal1000 E,loc=Sa sal1000 E,loc=Sb sal1000E,loc=Sb sal1000 E 三种选择三种选择2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDB
15、DDBLoc=Sa sal 1000Loc=Sa sal 1000Loc=Sb sal 1000Loc=Sb sal 1000RR1RR3RR2Qa:Select loc=Sa.Qb:Select loc=Sb.RR2 是好的(RR1,RR3不好)2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB图示图示Loc=Sa sal 1000Loc=Sa sal 1000Loc=Sb sal 1000Loc=Sb sal 1000RR1Qa:Select loc=Sa.Qb:Select loc=Sb.此处元组有较高的选择概率此处元组选择概率较低分段内元组选择概率不等因此
16、 RR1 不好.2.2 数据的分片设计数据的分片设计2 2 自顶向下设计自顶向下设计DDBDDB理由理由Loc=Sa sal 1000Loc=Sa sal 1000Loc=Sb sal 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记录,并仍以本地应用为其设
17、计目标,则那个分配方案较优?站点站点1站点站点2站点站点3站点站点3站点站点2站点站点1A1R1A3R2A2R3A1R1,R2A3A2R2,R3方方案案A方方案案B读取读取更新更新10101055 图2-12 COMPANY关系数据库模式,主码用下划线标出 EMPLOYFNAMEMINIT LNAMEESSNBDATEADDRESSSEXSALARYSUPERSSNDNODEPARTMENTDNAMEDNOMGRSSNMGRSTARTDATEDEPT_LOCATIONDNODLOCATIONPROJECTPNAMEPNOPLOCATIONDNO WORKS_ONESSNPNOHOURSDEPE
18、NDENTESSNDEPENDENT_NAMESEXBDATERELATIONSHIPExercise 2三个站点A,B,C部门1(总部),部门2,部门3在站点B上频繁访问EMPLOYEE,PROJECT中有关工作在部门2的雇员和该部门管辖的项目信息在站点C上频繁访问EMPLOYEE,PROJECT中有关工作在部门3的雇员和该部门管辖的项目信息雇员信息主要是指EMPLOYEE表中的FNAME,ESSN,SALARY,SUPERSSN属性A,B,C站点上频繁访问本站点所在部门的项目工时信息站点A供公司总部使用,经常存取为保险目的而纪录的DEPENDENT信息外,还定期地存取所有雇员和项目的信息F
19、NAMEMINIT LNAME ESSN SALARYSUPERSSN DNOAlicia J Zelaya 999887777 25000 987654321 2Jennifer S Wallace 987654321 43000 888665555 2Ahmad V Jabbar 987987987 25000 987654321 2EMPD2DEP2DNAMEDNOMGRSSNMGRSTARTDATEAdministr 2987654321 2003-01-01DEP2_LOCSDNODLOCATION 2StatlondDEP2_WORKSON ESSNPNOHOURS33344555
20、5 10 10.0999887777 30 30.0999887777 10 10.0987987987 10 35.0987987987 30 5.0987654321 30 20.0987654321 30 15.0DEP2_PROJECTPNAMEPNOPLOCATIONDNOComputer 10 Startlond 2Newbenef 30 Startlond 2图2-13 站点的片段分配(b)站点B上的对应于部门2的关系片段FNAMEMINIT LNAME SSN SALARYSUPERSSN DNOJohn B Smith 123456789 30000 333445555 3F
21、ranklin T Wong 333445555 40000 888665555 3Ramesh K Narayan 666884444 38000 333445555 3Joyce A English 453453453 25000 333445555 3EMPD3DEP3DNAMEDNOMGRSSNMGRSTARTDATEResearch 3333445555 2003-05-22DEP3_LOCSDNODLOCATION 3Bellaire 3Sugarlnd 3HoustonDEP3_WORKSON ESSNPNOHOURS123456789 1 32.5123456789 2 7.5
22、666884444 3 40.0453453453 1 20.0453453453 2 20.0333445555 2 10.0333445555 3 10.0 DEP3_PROJECTPNAMEPNOPLOCATIONDNOProduct X 1 Bellaire 3Product Y 2 ugarlnd 3Product Z 3 Houston 3图2-13 站点的片段分配(a)站点C上的对应于部门3的关系片段 图2-15 站点A上的对应于部门1(总部)的片断 EMPLOYEEPROJECTPNAMEPNUMERPLOCATIONDNUMDEPENDENTESSNDEPENDENT_NAM
23、ESEXBDATERELATIONSHIPFNAMEMINIT LNAME SSN SALARYSUPERSSN DNOAlicia J Zelaya 999887777 25000 987654321 2Jennifer S Wallace 987654321 43000 888665555 2Ahmad V Jabbar 987987987 25000 987654321 2John B Smith 123456789 30000 333445555 3Franklin T Wong 333445555 40000 888665555 3Ramesh K Narayan 666884444
24、 38000 333445555 3Joyce A English 453453453 25000 333445555 3Exercise 3 建立百货连锁店分布式数据库系统:1.由一个总部和多个远程连锁店组成2.总部和各个连锁店之间有数据交换,局域网和广域网3.总部负责产生各类汇总表,如销售汇总表4.各站点系统相对独立5.总部统一管理各门店商品的业种和品牌信息,各门店也经常使用这两类信息6.供应商、合同、商品和销售信息等经营基础数据都由各门店单独管理和使用,门店之间互不相关7.整个连锁店的职员信息由总部管理,各门店只可以查询本部门的职员信息8.该连锁店的会员卡实行全国联网消费,会员可以经常异地消费基本关系模式(初步)DEPARTMENTEMPLOYEECUSTOMERPRODUCT(p#,YEZHONG,PINPAI,)CONTRACTSALESSUPPLIER总总 结结 分布式数据库的创建方法(重构法分布式数据库的创建方法(重构法/组合法)组合法)自顶向下的设计方法自顶向下的设计方法数据分片数据分片数据分配数据分配 DATAID-DDATAID-D方法(分布要求分析和分布设计阶段)方法(分布要求分析和分布设计阶段)实例研究:飞机订票系统实例研究:飞机订票系统 自底向上方法自底向上方法