分布式数据库系统设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
分片结果
R2: R3: R6: R7: R10: R11:
5 < A < 10 5 < A < 10 A≤5 A≤5 A ≥ 10 A ≥ 10
∧ ∧ ∧ ∧ ∧ ∧
Loc=SA Loc=SB Loc=SA Loc=SB Loc=SA Loc=SB
用户2
用户n
分布式协调管理系统
3.
DBMS1
DBMS2
DBMSm
4.
网络
1 1.1
分布式数据库设计概述 DDBS创建方法 DDBS创建方法
重构法
1. 2. 根据实现环境 和用户需求 按照DDBS的 的 按照 设计思想和方 法 从总体设计做 起,包括 LDBS,重新建 重新建 立一个DDBS 立一个 可有效解决数 据一致性、 据一致性、完 整性和可靠性 问题。 问题。
R1 =
σ
loc=Sa(E)
R2 =
σ
loc=Sb(E)
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
基本水平分片
• 若 R = {R1, R2, …, Rn}, 则 – 完整性 对于每一个元组 t∈R, ∃ Ri∈R 使得 t∈Ri ∈ ∈ – 不相交性 对∀t∈Ri, ¬∃ Rj 使得 t∈Rj, i ≠ j ∈ ∈
Loc=Sa ∧ sal ≥ 1000
R2
Loc=Sb ∧ sal < Biblioteka Baidu000
因此 R2好... R3不好 ...
理由
Loc=Sb ∧ sal ≥ 1000
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
导出水平分片
• 导出分片 从另一个关系的属性性质或水平分片推导出来 • 例子 SC(S#, C#, GRADE) S ( S#, SNAME, AGE, SEX) 要求: 将SC划分为男生各门课成绩和女生的各门成绩
– 可重构性 操作是∪ (可以忽略, 因为完整性就蕴含着) R = ∪{R1, R2, …, Rn}
• P = {p1, p2, …, pn}是一简单谓词集合,为保证分片 的正确性,P必须是:
– 完整的:同一分片中的任意两个元组被应用同样概率 访问。 – 最小的:集合P中的所有谓词与应用密切相关。(不同分 片中的元组被访问的概率是不同的) – 具有完整性和最小性不是必要条件, 但是对于简化分配 问题有好处
用户输入
视图设计 概念设计
视图集成
访问模式 全局概念模式 外部模式定义
用户
分布设计
输入
局部概念模式
物理设计
物理模式
反馈 反馈
观察与监视
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
分片原则
• 假若有全局关系R 被分片为子关系(片段)集合 R = {R1, R2, …, Rn}, 则 R满足 – 完整性 ?x ∈ R, ∃ Ri∈R 必有 x∈Ri ,i=1,2,…,n ∈ – 可重构性 ? 存在函数 g 使得R = g(R1, R2, …, Rn) 即,R=∪ Ri (水平分片),R=∞ Ri (垂直分片) – 不相交性 Ri ∩ Rj =空集,i≠j,i,j=1,2,…,n(水平分片) Ri ∩ Rj =主键属性,i,j=1,2,…,n(垂直分片)
Loc=Sb ∧ sal ≥ 1000
图示
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
Loc=Sa ∧ sal < 1000
此处元组有较 高的选择概率
Qa: Select … loc = Sa ... Qb: Select … loc = Sb ...
Loc=Sa ∧ sal ≥ 1000
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
举例
职工关系 E (e#, name, loc, sal,…) 查询: Qa: select * Qb: select * from E from E where loc=Sa where loc=Sb and… and ...
两个站点 : Sa, Sb Qa → Sa
– P={ DEPT=1} (不是完整的) – P={DEPT=1, JOB=‘P’} (是完整的、最小的) – P={DEPT=1, JOB=‘P’, SAL>500} (完整的,不是 最小的)
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
基本水平分片
如何保证分片原则
• “手工”检查! e.g., R1 = σloc=‘Sa’ E ; R2 = σ
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
分片数量信息
• 小项选择率(minterm selectivity) 对某 一给定小项谓词用户查询可能选择到的 元组数 • 访问频率(Access frequency)用户应用 访问数据的频率
– 小项访问频率可以通过用户查询频率获得
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
三种选择
(1) Pr = { }
R1 ={ E }
(2) Pr = {LOC=Sa, LOC=Sb} R2={ σ loc=Sa E, σ loc=Sb E } (3) Pr = {LOC=Sa, LOC=Sb, Sal<1000} R3={ σloc=Sa ∧ sal<1000 E, σloc=Sa ∧ sal≥1000 E, σloc=Sb ∧ sal<1000E, σloc=Sb ∧ sal≥1000 E }
Sb ← Qb
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
举例
e# NM Loc Sal E
5 7 8 Joe Sally Tom Sa 1000 Sb 2500 Sa 500
..
F
e# NM Loc Sal
5 8 Joe Tom Sa 1000 Sa 500
..
e# NM Loc Sal
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
小项谓词选择
(1) A<10 (2) A<10 (3) A<10 (4) A<10 (5) A<10 (6) A<10 (7) A<10 (8) A<10
∧ A>5 ∧ Loc=SA ∧ Loc=SB ∧ A>5 ∧ Loc=SA ∧ ¬(Loc=SB) ∧ A>5 ∧ ¬(Loc=SA) ∧ Loc=SB ∧ A>5 ∧ ¬(Loc=SA) ∧ ¬(Loc=SB) ∧ ¬(A>5) ∧ Loc=SA ∧ Loc=SB ∧ ¬(A>5) ∧ Loc=SA ∧ ¬(Loc=SB) ∧ ¬(A>5) ∧ ¬(Loc=SA) ∧ Loc=SB ∧ ¬(A>5) ∧ ¬(Loc=SA) ∧ ¬(Loc=SB)
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
小项谓词选择
(9) ¬(A<10) ∧ A>5 ∧ Loc=SA ∧ Loc=SB (10) ¬(A<10) ∧ A>5 ∧ Loc=SA ∧¬(Loc=SB) (11) ¬(A<10) ∧ A>5 ∧¬(Loc=SA) ∧ Loc=SB (12) ¬(A<10) ∧ A>5 ∧¬(Loc=SA) ∧¬(Loc=SB) (13) ¬(A<10) ∧¬(A>5) ∧ Loc=SA ∧ Loc=SB (14) ¬(A<10) ∧¬(A>5) ∧ Loc=SA ∧¬(Loc=SB) (15) ¬(A<10) ∧¬(A>5) ∧¬(Loc=SA) ∧ Loc=SB (16) ¬(A<10) ∧¬(A>5) ∧¬(Loc=SA) ∧¬(Loc=SB)
loc=‘Sb’ E
• 生成具有满足分段原则的限定谓词
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
谓词生成举例
• 设有关系 E (e#,name,Loc,sal,A,…), 查询使用的简 单谓词(Ai θ Value)是: A<10, A>5, Loc = Sa, Loc = Sb • 下一步: - 生成 “小项” 谓词 - 消除无用谓词 • 给定简单谓词集 Pr= { p1, p2,.. pn }, 则“小项”谓 词(minterm predicate)形式: p1* ∧ p2* ∧ … ∧ pn* 这里 pk* 是 pk 或是 ¬pk
第2章 分布式数据库系统设计 章
1. 分布式数据库系统设计概述 2. 自顶向下设计分布式数据库 DATAID3. DATAID-D方法 实例研究: 4. 实例研究:飞机订票系统 5. 自底向上设计分布式数据库
1 1.1
分布式数据库设计概述 创建方法
组合法
1. 2.
用户1
剖析网络 功能 剖析原有 数据库系 统 解决数据 的一致性、 的一致性、 完整性和 可靠性 难度较大 通常是异 构或者同 构异质 DDBS
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
注:无用段的消除依赖于应用的语义
e.g.: 如果 LOC 可以是 ≠ SA, ≠ SB, 则最终分段集合
应该加上
R4: R8: R12:
5 <A <10 ∧ Loc ≠ SA ∧ Loc ≠ SB A≤5 ∧ Loc ≠ SA ∧ Loc ≠ SB A ≥ 10 ∧ Loc ≠ SA ∧ Loc ≠ SB
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
基本水平分片
• 例子
EMP ( E#, NAME, DEPT, JOB, SAL, TEL, …) DEPT={1,2} JOB={‘P’, ‘-P’} 假定,应用经常查询的内容是属于部门1且是程序员 的职员。
• 则可能有的水平分段限定
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
如何选择小项谓词举例
• 例子
E(#, NM, LOC, SAL,…) 有查询应用 Qa: select * from E where LOC=Sa and … Qb: select * from E where LOC=Sb and ...
7 Sally Sb 2500
..
..
站点 Sb
站点Sa
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
基本水平分片
• 基本水平分片 以关系自身的属性性质为基础,执行“ 以关系自身的属性性质为基础,执行“选 操作, 择”操作,将关系分割成若干个不相交的 片段。 片段。
R = { R1, R2 }
用户1
用户2
用户n
分布式数据库管理系统
3.
4.
网络
通常是同构异 质或同构同质 DDBS
1 分布式数据库设计概述 1.2 DDBS设计内容 DDBS设计内容
全局模式设计 分片和分布 局部数据库设计 DDB设计 设计 各个应用的原发站点
DDBS设计 设计
相关应用需求 各个应用在每个站点的激活频率
各个应用对要求访问数据对象的 访问次数、 访问次数、类型和统计分布 应用设计
1 分布式数据库设计概述 1.3 DDBS设计目标 DDBS设计目标
尽量减少通信次数和通信量, 尽量减少通信次数和通信量,90/10准则 准则 本地性或近地性 分片和分布方案(本地和远程访问次数) 分片和分布方案(本地和远程访问次数)择优 冗余增加了可靠性、可用性, 冗余增加了可靠性、可用性,提高了效率 DDBS 设计目标 控制数据适当冗余 维护数据一致性开销增加 维护数据一致性开销增加 各站点可以分担整个工作任务 工作负荷分布 本地性降低
存储能力和费用
1 分布式数据库设计概述 1.4 DDBS设计方法 DDBS设计方法
自顶向下方法(重构法) 自顶向下方法(重构法)
DDBS 设计方法 自底向上方法(组合法) 自底向上方法(组合法)
混合方法
自顶向下设计DDB 2 自顶向下设计DDB 2.1 步骤和内容
需求分析
自顶向下设计过程
系统需求
R1
Loc=Sb ∧ sal < 1000
此处元组选 择概率较低
Loc=Sb ∧ sal ≥ 1000
分段内元组选择概率不等 因此 R1 不好... 理由
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
Loc=Sa ∧ sal < 1000
元组选择 概率相等
Qa: Select … loc = Sa ... Qb: Select … loc = Sb ...
自顶向下设计DDB 2 自顶向下设计DDB 2.2 数据的分片设计
Loc=Sa ∧ sal < 1000
Qa: Select … loc = Sa ... Qb: Select … loc = Sb ...
Loc=Sa ∧ sal ≥ 1000
R1
Loc=Sb ∧ sal < 1000
R2
R3 R2 是好的… ( R1 , R3不好 )