厦门大学计算机科学系研究生课程 《分布式数据库技术》 分布式数据库技术 专题二 数据分布 专题二 数据分布 林子雨 厦门大学计算机科学系

Slides:



Advertisements
Similar presentations
北京市卫生和计划生育委员会. 目录目录 2 1 汇审工作安排 2 年末结账及明年建账关注事项 3 卫生年报口径讲解 4 财政决算口径讲解.
Advertisements

Xiamen University 厦门大学妇女 / 性别教学与培训机制 化探索 厦门大学妇女 / 性别研究与培训基地 2007 年 7 月 26 日.
数据库完整性 第 10 章 完整性约束条件 完整性控制 Oracle 的完整性. 什么是数据库的完整性  数据的正确性和相容性  防止不合语义的数据进入数据库 例 : 学生的年龄必须是整数,取值范围为 ; 学生的性别只能是男或女; 学生的学号一定是唯一的; 学生所在的系必须是学校开设的系。
融合遗传: 两个亲本杂交后,子代 会表现出介于双亲之间 的性状。 生物体的形态结构和 生理特征叫做性状。 同一种生物的同一种性状的 不同表现类型 。 相对性状:
课程介绍 (PPT版本号:2016年1月24日版本) 温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字 林子雨
抗菌药物合理用药指标 2011年11月24日.
報告書名:父母會傷人 班級:二技幼四甲 姓名:吳婉如 學號:1A2I0034 指導老師:高家斌
五專醫護類科介紹 樹人醫專 職業教育組 李天豪 組長.
对应用型本科建设中若干问题的认识 张家钰
《计算机应用基础》 第七章 计算机网络基础与应用
第九讲 法律篇 之 民法 思想品德与法律基础-第八章-02民法.
手太阳小肠经.
数据库系统概论 An Introduction to Database Systems
媽,我們真的不一樣 青少年期與中年期 老師: 趙品淳老師 組員: 胡珮玟4A1I0006 馬菀謙4A1I0040
大学生 网络安全与网络文明 计算机网络中心 温志勇 讲座.
第2章 数据模型 本章学习要求: 1. 层次数据模型、网状数据模型 了解层次及网状数据模型的基本概念和结构。 2. 关系数据模型
抗菌药物临床应用管理规定.
小学语文毕业总复习 ( 基础知识部分) 牡丹区实验小学侯宪梅.
游泳四式技術分析暨初級教法.
第2章 数据模型 2.1 实体联系模型 2.2 关系模型 2.3 面向对象的数据模型 习 题 2.
教育信息化工作管理系统“校校通”部分指标说明
春?.
第3章 SQL语言初步 2017/3/14.
班級:二幼三甲 姓名:郭小瑄 、 詹淑評 學號:1A2I0029 、1A2I0025
Principles and Applications of the Database
捷運綠線先到公車 GR線「桃園航空城捷運線先導公車」
数据库原理及设计 --作业.
解放軍論壇 中共信息戰發展 對我國軍事戰略之影響.
指導老師:陳韻如 姓名:吳宜珊 學號:4A0I0911 班級:幼保二乙
义务教育课程标准实验教科书 小学语文第二册 识 字 四 白蕉镇中心小学 一(4)班 主 页.
《大数据技术原理与应用》 课程介绍 (2016春季学期)
材料金相实验与显微组织观察 F 组长:李霄 组员:王猛 徐晗 张天龙 张腾 王曦 张浩舵.
钞坑安置区项目简介.
《计算机应用基础》 第六章 Access数据库管理系统
第六章 結構化分析與設計 ─資料塑模.
我班最喜愛的零食 黃行杰.
专题五 高瞻远瞩 把握未来 ——信息化战争 主讲教师:.
全力以赴的德忠精神 人力资源部王丽玲主任,从员工关系的工作,到招聘工作,再到现在的薪酬工作,不管在哪个岗位,她总是一丝不苟,尽职尽责。
软件设计师培训.
第十九课 南吕•一枝花 不 伏 老 关汉卿.
傳統童玩遊戲創新 組別:第八組 班級:幼保二甲 組員: 4A0I0005柯舒涵 4A0I0011謝孟真
数据库原理 Database Principles 第五章 数据库完整性 Database Principles.
政治生活:   积极参与 重在实践.
第二章:命题逻辑等值演算 主要内容: 本章与其他各章的联系 等值式与基本的等值式 等值演算与置换规则
数据库技术 第十章 数据库完整性 中国科学技术大学网络学院 阚卫华.
資料庫系統 Database Systems
作业三讲评 04计算机.
实验二 交互式SQL 邓云.
分布式数据库系统及其应用.
第4章 關聯式資料庫模型 4-1 關聯式資料庫模型的基礎 4-2 關聯式資料庫模型的資料結構 4-3 關聯式資料庫模型的完整性限制條件
第三章:命题逻辑的推理理论 主要内容 推理的形式结构 自然推理系统P 本章与其他各章的联系 本章是第五章的特殊情况和先行准备.
第三章作业讲评 文洁 2012/4/10.
《Spark编程基础》 《 Spark编程基础》课程介绍 (PPT版本号:2018年2月)
分布式数据库技术 专题三 分布式查询处理 厦门大学计算机科学系研究生课程 林子雨 厦门大学计算机科学系
作业3-点评.
作业2&3讲评.
Database Systems Design Part III : Normalization
实验二讲评 … 张榆….
第三章作业点评 助教: 干艳桃、张榆 Contact 干艳桃
组合逻辑电路 ——中规模组合逻辑集成电路.
第 7 章 建立資料表與資料庫圖表.
作业二讲评.
數學遊戲二 大象轉彎.
第二章关系数据库 2.1关系数据库概述 2.2关系数据结构 2.3关系的完整性 2.4关系代数 2.5关系演算** 2.6关系数据库管理系统.
第五章关系数据库设计理论 5.1 数据依赖 5.2 范式 5.3 关系模式的规范化.
临床试验管理平台操作指南 (申办方用) 浙江省人民医院机构办.
Advanced Competitive Programming
96 教育部專案補助計畫案明細 單位 系所 教育部補助款 學校配合款 工作໨目 計畫主 持人 備註 設備費 業務費 579,000
《大数据导论(通识课版)》 第6章 大数据思维 (PPT版本号:2019年秋季学期)
《大数据导论(通识课版)》 教材官网: 第5章 大数据安全 (PPT版本号:2019年秋季学期)
Presentation transcript:

厦门大学计算机科学系研究生课程 《分布式数据库技术》 分布式数据库技术 专题二 数据分布 专题二 数据分布 林子雨 厦门大学计算机科学系 分布式数据库技术 专题二 数据分布 专题二 数据分布 林子雨 厦门大学计算机科学系 E-mail: ziyulin@xmu.edu.cn 厦门大学计算机科学系 2011年10月

专题二 数据分布 第3章 数据分布 3.1 数据分布概念 3.2 数据划分原则及分片方法 3.3 数据分配原则及方法 第3章 数据分布 3.1 数据分布概念 3.2 数据划分原则及分片方法 3.3 数据分配原则及方法 3.4 数据分布结构模式定义

3.1 数据分布概念 3.1.1. 分布式数据库设计的任务 3.1.2. 数据分布概念 3.1.3 集中式数据库的关系模式及形式化定义 3.1.1. 分布式数据库设计的任务 3.1.2. 数据分布概念 3.1.3 集中式数据库的关系模式及形式化定义 3.1.4. 分布式数据库的模式定义

3.1.1 分布式数据库设计的任务 (1)数据库设计 数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。

3.1.1 分布式数据库设计的任务 (2)分布式数据库设计的任务 分布式数据库设计包含以下任务: 定义全局数据库的概念模式 设计分片 3.1.1 分布式数据库设计的任务 (2)分布式数据库设计的任务 分布式数据库设计包含以下任务: 定义全局数据库的概念模式 设计分片 设计片段的分配 设计物理数据库,将概念模式映射到存储区域,并确定适当的存储方法 在分布式数据库设计过程中,必须考虑分布式数据库应用的需求,包括:应用提交的场地、应用执行的频度、每个应用所存取数据的类型、次数及统计分布等信息 应该明确分布式数据库系统设计的基本策略:从顶向下的设计处理或者从下向上的设计处理

3.1.2 数据分布概念 数据分布的概念 逻辑上将全局概念模式(即全局关系模式),划分成若干逻辑片段(子关系);再按一定的冗余度将片段分配到各个节点上,这时逻辑片段就成为具体的物理片段。

3.1.3 集中数据库的关系模式及形式化定义 (1)关系 为了讨论分布式数据库的模式定义,首先复习相关知识点。 定义3.1:域是一组具有相同数据类型的值的集合。用{ }表示。 定义3.2:给定一组域D1,D2,…,Dn,这些域中,可以有相同的。其中 D1,D2,…,Dn的笛卡儿积为: D1×D2 × … × Dn = {( d1, d2 , …, dn)| di∈ Di,i=1, 2, … , n } 其中每一个元素( d1, d2 , …, dn)叫做一个 n 元组(或元组), 元素中的每一个值di叫做一个分量 笛卡儿积的基数为|D1|×|D2 |× … × |Dn | 定义3.3: D1×D2 × … × Dn的子集叫做在D1,D2,…,Dn域上的关系,表示为: R( D1,D2,…,Dn) 其中 ,R表示关系名,n是关系的目(或称为度)。

3.1.3 集中数据库的关系模式及形式化定义 笛卡尔积可表示为一个二维表。表中每行对应一个元组,表中的每列对应一个域。 例1:给出三个域: D1 =导师集合SUPERVISOR=张清玫,刘逸 D2 =专业集合SPECIALITY=计算机专业,信息专业 D3=研究生集合POSTGRADUATE=李勇,刘晨,王敏 则D1 ,D2,D3的笛卡尔积为: D1×D2×D3={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏),(刘逸,信息专业,李勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏)} 其中(张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨)等都是元组。张清玫、计算机专业、李勇、刘晨等都是分量。

3.1.3 集中数据库的关系模式及形式化定义 该笛卡尔积的基数为2×2×3=12,也就是说,D1×D2×D3一共有2×2×3=12个元组。这12个元组可列成一张二维表,如下: D1,D2,D3的笛卡尔积 SUPERVISOR SPECIALITY POSTGRADUATE 张清玫 刘逸 计算机专业 信息专业 李勇 刘晨 王敏

3.1.3 集中数据库的关系模式及形式化定义 定义3.3说明: 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为侯选码。 若一个关系有多个侯选码,则选定其中一个为主码(Primary Key)。主码的诸属性称为主属性(Prime attribute)。 不包含在任何侯选码中的属性称为非码属性(Non-key attribute)。 在最简单的情况下,侯选码只包含一个属性;在最极端的情况下,关系模式的所有属性组是这个关系模式的侯选码;上述称为全码(All-key)。 关系是一个二维表,表的每行对应一个元组,表的每一列对应一个域。

3.1.3 集中数据库的关系模式及形式化定义 (2)关系模式 (3)关系数据库 定义3.4:关系的描述称为关系模式。它可以形式化地表示为: R(U,D,dom,F) 其中:R 为关系名, U 为组成该关系的属性名集合, D 为属性组U中属性所来自的域, dom 为属性向域的映象的集合, F 为属性间数据的依赖关系集合。 (3)关系数据库 定义3.5:在一个给定的应用领域中,所有实体及实体之间联系的关系 的集合构成一个关系数据库。

3.1.4 分布式数据库的模式定义 3.1.4.1 全局关系模式及关系 3.1.4.2 DDB中的三种关系 3.1.4 分布式数据库的模式定义 3.1.4.1 全局关系模式及关系 3.1.4.2 DDB中的三种关系 3.1.4.3 DDB中的三种数据库 3.1.4.4 分片模式(FS)定义 3.1.4.5 分配模式(AS)定义 3.1.4.6 关系的分布结构 S 3.1.4.7 组合关系

3.1.4.1 全局关系模式及关系 关系和关系模式有以下关系: 3.1.4.1 全局关系模式及关系 全局关系模式是一个多元组,表示为:R(U,D,dom,I,F,Q,S),其中: R是关系名; U是组成R的有限属性集; D是U中属性的值域; dom是属性列到域的所有映射的集合; I 是一组完整性约束条件; Q是关系所满足的限定条件(谓词); F是属性间的一组数据依赖; S是关系的分布结构。 一个关系r是相应于全局关系模式R(U,D,dom,I,F,Q,S)按分布结构S组织起来的从属性集U到值域D上所有满足Q的映射的集合。其中,每个元素称为元组;每个关系有主键 。 关系和关系模式有以下关系: 关系模式描述关系的结构及语义约束,对于全局关系模式,同时还具有按一定谓词条件Q划分成子关系(局部关系)模式和子关系物理存储模式的约束 关系是关系模式在某一时刻的“当前值” 全局关系被划分以后,按分布结构组成子关系,以呈现现实世界某一时刻的状态。所有关系的当前值就是关系数据库 为了把问题集中于数据分布,可以把全局关系模式简化成R(U,Q,S)

3.1.4.2 DDB中的三种关系 全局关系:当一个关系R(U,Q,S)称为全局关系(GR),是指在分布式数据库系统中对用户是可见的,实际上是由若干子关系的逻辑片段和物理片段按分布结构S组成,具有Q=TRUE,S≠Ø的特点,且GR是虚拟的。 逻辑片段:当一个关系R(U,Q,S)称为逻辑片段,是指这个关系在DDB中是实际存在的关系,不需要由其它关系组成,因而它是基本关系,即是构成DDB的实体。它是全局关系在某个场地上的子关系的逻辑成分,所以逻辑片段可简称为GR的逻辑关系,而全局关系与逻辑关系间有一定的映射,用分片模式定义,它们之间的映射性质为 1:n 。 物理片段:当一个关系R(U,Q,S)称为物理片段,是指这个关系是在某一场地上的逻辑片段,即是在某场地上的基本关系,其特点是S=Ø。|物理片段由分配模式定义。逻辑片段映射为某个场地上的物理片段,亦可称为某个场地的副本,或直接称物理关系,其映射有 1:1 和 1:n性质(因而一个逻辑关系可以对应一个物理关系,也可对应多个物理关系)。 结论: 一个全局关系由分片操作(分片模式定义)分解成多个逻辑关系;一个逻辑关系在几个场地上放置副本(分配模式定义)就产生几个物理关系。这些分片信息和分配信息构成了全局关系的分布结构S。

3.1.4.2 DDB中的三种关系 问题:DDB三种关系分别属于哪一层? 集 中 式 三 层 摸 结 构 图 分 布 式 四 层 摸 结 构

3.1.4.3 DDB中的三种数据库 全局(虚拟)数据库:由所有全局关系组成的数据库称为全局(或虚拟)数据库GDB。 逻辑数据库:由所有逻辑片段(基本关系)组成的数据库称为逻辑数据库LgDB。 物理数据库:由所有物理关系组成的数据库称为物理数据库PDB。 三种数据库之间的关系可表示如下: 分片模式 分配模式 GDB LgDB PDB 当用户查询或更新操作分布式数据库时,只是对虚拟的全局数据库操作,它并不实际存在,而是由若干“片段”组成的(由若干片段的并行操作和自然联接操作实现的),这些片段映射为一个“物理关系”存在于物理数据库中。 三种数据库是通过分片模式定义和分配模式定义联系起来的。

3.1.4.4 分片模式(FS)定义 分片模式FS定义为一组操作,它将GDB中每个GR分解成LgDB中的片段,即: FS(GDB)= LgDB 这种操作还应具有可逆性,这是分布式数据库系统的基本要求: FS-1(LgDB)=GDB

3.1.4.5 分配模式(AS)定义 分配模式定义为一组操作,它将LgDB中每个逻辑关系映射到PDB中的一组物理关系上,即: 分配模式的逆操作含义是,从PDB中选择出适当的物理关系作为逻辑关系,从而构成LgDB,即有: AS-1(PDB)=LgDB。

3.1.4.6 关系的分布结构S 关系R(U,Q,S)的分布结构S是有关R被划分和分配的信息的集合 如果R是物理关系,那么它无需划分和分配,因此S=Ø 如果R是逻辑关系,那么它还需分配场地,因此S记载R的分配信息 如果R是全局关系,那么S记载了R如何分解成逻辑关系和物理关系

3.1.4.7 组合关系 在全局关系与逻辑关系之间,事实上还存在若干关系,我们可称它为中间关系。只是起过渡作用。用组合关系表示。 3.1.4.7 组合关系 在全局关系与逻辑关系之间,事实上还存在若干关系,我们可称它为中间关系。只是起过渡作用。用组合关系表示。 组合关系R(U,Q,S)是由若干逻辑关系和物理关系按分布结构S组成的关系。它可以是全局关系,或者也可以是中间关系。基本特点为S≠Ø。

3.2 数据划分原则及分片方法 3.2.1 分片操作原则 3.2.2 分片操作 3.2.3 分片操作的正确性

3.2.1 分片操作原则 (1)数据划分的基本思路:首先按DDB外部特征划分数据,然后根据DDB的内部特征,提出应遵守的基本原则以检验数据划分的正确性。 所谓“外部特征”是指构成DDB的属性群集特性,包括属性值集和数据项集等。 例1:某公司数据库中有部门关系Dept,便于管理可按部门性质或部门所在地将部门关系Dept划分成若干片段(如部门号DNO,或部门所在地区AREA的属性值集划分)。这是一种按属性值集的划分。 例2:而上述数据库中有职员关系Emp,通常可按业务管理性质将Emp的属性组合值集划分(如财务部门对税收TAX、工资SAL等属性项有兴趣,行政部门对Emp承担工作业务的属性项有兴趣等)。这是按数据项集划分。 内部特征是指DDB的组成性质。 (2)基本原则:当对DDB划分后,仍应保持DDB原有的特质,所以划分后的各逻辑关系之间应遵守下列原则: 完整性原则、重构性原则、不相交原则

3.2.2 分片操作 3.2.2.1 水平分片 3.2.2.2 垂直分片 3.2.2.3 混合分片 3.2.2.4 诱导分片 3.2.2.1 水平分片 3.2.2.2 垂直分片 3.2.2.3 混合分片 3.2.2.4 诱导分片 3.2.2.5 四种分片操作的统一表示

3.2.2.1 水平分片 水平分片是将关系按行横向以某些条件划分成元组的子集,(即:满足条件的记录的集合)每个子集含有一定的逻辑意义,称逻辑片段。 定义1:组合关系R(U,Q,S)上的水平分片(H)是一操作,它将R按照一组给定的谓词 P1,P2,…,Pn,划分成一组关系模式: R1(U1,Q1,S1),…,Rn(Un,Qn,Sn) 满足:1)U1=U2=…=Un=U; 2)K1=K2=…=Kn=K; 3)Qi=Q Pi; 4)Si ≠Ø 其中:i,j∈{l,…,n},Pi Pj=Ø, Pi=True,记为: R(H)<P> = { R1,…,Rn } 式中P={P1,…,Pn}。 由定义可得出:水平分片实际上是关系的选择操作。即属性=“值”的具体条件的子关系Ri,因此片段可用σq(R)表示。

3.2.2.1 水平分片 例1:供应商全局关系Supplier(SNO,SNAME,SCITY)按供应商所在地SCITY 属性值划分。假设只有两个城市London和Paris,则按上述定义,其水平分片为: Supplier1=σscity=‘London’(Supplier) Supplier2=σscity=‘Paris’(Supplier)

3.2.2.2 垂直分片 垂直分片是将关系按列纵向以属性组划分成若干片段。在垂直分片时,为了保证片段的重构性,应将“键属性”属于各个片段中(放松的不相交性)。 定义2:组合关系R(U,Q,S)上垂直分片(V)是一操作,它将R按照一组给定的属性A1,…,An划分成一组关系模式: R1(U1,Q1,S1),…,Rn(Un,Qn,Sn) 满足:1)K1=K2=…=Kn=K; 2)Ui=Ai; 3)Q1=Q2=…Qn=Q; 4)πk1(R1)=πk2(R2)=…=πkn(Rn)= πk(R); 5)Si≠Ø 其中:i,j∈{ 1,…,n }, Ai U, Ai∩Aj =K,∪Ai =U 记为:R(V)<A>= { R1,…,Rn} 式中A= { A1,…,An } 由定义可得出,关系的垂直分片实际上是对指定属性集上的投影操作。所以,R关系的垂直分片片段是R的部分属性组合子关系Ri,可用πAi(R)表示,其中K Ai。

3.2.2.2 垂直分片 例2:职员关系Emp(ENO,ENAME,SAL,TAX,MGRSSN,DNO)划分成两个子关系:一个包括财务信息,对SAL,TAX属性感兴趣;一个包括工作信息,对ENO,ENAME,MGRSSN,DNO属性感兴趣。为了保证划分后重构,可将ENO作为公共属性分别包括在二个片段中。这样Emp可划分: Emp1=πENO,SAL,TAX(Emp) Emp2=πENO,ENAME,MGRSSN,DNO(Emp)

3.2.2.3 混合分片 混合分片是水平分片和垂直分片的内部混合。 定义3:组合关系R(U,Q,S)上的混合分片(M)是一操作,它将关系按照一组属性A1 ,…, An和一组谓词P1 ,…,Pn划分成: R1(U1,Q1,S1),…,Rn(Un,Qn,Sn,) 满足:1)Ui= Ai 2)K1=K2=…=Kn=K; 3)Qi=Q∧Pi; 4)Si≠Ø。 其中:i,j∈{l,…,n},Ai U,Ai∩Aj =K,∪Ai =U,Pi Pj=Ø, Pj=True,记为: R (M)<AP> = { R1, …,Rn } 式中AP= { <Ai,Pi> | i=1,…,n } 。 上述定义说明混合分片是水平分片和垂直分片的混合操作,即对关系的选择和投影。当要重构混合分片的各片段,可按相应次序做合并(UNION)操作和联接(JOIN)操作。

3.2.2.3 混合分片 例3:将例2的Emp划分成Emp1,Emp2后,对Emp2可按部门号DNO=1、DNO=3分在一个片段,而DNO=2在另一片段,则Emp可划分为: Emp1=πENO,SAL,TAX(Emp) Emp2=σDNO=“D1”or DNO=“D3” (πENO,ENAME,MGRSSN,DNO Emp) Emp3=σDNO=“D2”(πENO,ENAME,MGRSSN,DNO Emp)

3.2.2.4 诱导分片 一个关系的分片不是基于关系本身的属性,而是根据另一个与其有关联性质的关系的属性来划分。这种划分是只基于水平分片的诱导 定义4:组合关系R(U,Q,S),按另一个组合关系T (T是已经水平分片成T1(U1,Q1,S1),…,Tn(Un,Qn, Sn) )在公共属性A上的诱导分片(DH)是一操作,它将R划分为: R1( ) ,…, Rn( ) 满足: 1) 2) 3) 4) 5)S’i≠Ø 记为:R(DH)<T>= { R1,…,Rn } 式中:T= { T1,…,Tn } 诱导分片是一种相关分片操作,它是一种半联接操作 诱导分片实例

3.2.2.4 诱导分片 关于半联接操作 关系代数操作中的联接(JOIN)操作包括θ-联接和自然联接 半联接操作是关系代数操作中联接(JOIN)操作的一种缩减:关系R和S的半联接记为R∝S,其结果关系是R和S自然联接(Natural JOIN)后在R的属性上的投影,可用下述表达式表示: R∝S=πR(R∞S)(实例) 计算R∝S的另一种等价的方法是:将S中与R有相同属性名的属性集投影出来,然后与R完成自然联接 半联接操作是一种不对称操作,即R∝S≠S∝R 在分布式数据库的查询优化中,常常用半联接操作实现联接操作的操作数(关系)的缩减(归约)

3.2.2.4 诱导分片 自然联接的结果是在 R 和 S 中的在它们的公共属性名字上相等的所有元组的组合。例如下面是表格“雇员”和“部门”和它们的自然联接: 图 自然联接实例

3.2.2.4 诱导分片 θ-联接(等值联接是它的特例) 如果我们要组合来自两个关系的元组,而组合条件不是简单的共享属性上的相等,则有一种更一般形式的联接算子才方便,这就是 θ-联接(或 theta-联接)。θ 是在集合 {<, ≤, =, >, ≥} 中的二元关系。θ的结果由在 R 和 S 中满足关系θ 的元素的所有组合构成。只有 S 和 R 的表头是不相交的,即不包含公共属性的情况下,θ-联接的结果才是有定义的。 实例:考虑分别列出车模和船模的价格的表“车”和“船”。假设一个顾客要购买一个车模和一个船模,但不想为船花费比车更多的钱。在关系上的θ-联接 CarPrice ≥ BoatPrice 生成所有可能选项的一个表。 图 θ-联接实例

3.2.2.4 诱导分片 半联接的结果只是在 S 中有在公共属性名字上相等的元组的所有 R 中的元组。 实例:“雇员”和“部门”和它们的半联接的表: R∝S=πR(R∞S) R S Manager Harriet Charies 半联接结果 图 半联接实例 自然联接结果

3.2.2.4 诱导分片 例4:设供应关系Supply(SNO,PNO,QTY),它的划分要求按供应商所在地SCITY属性值划分。 分析:虽然SCITY不是Supply关系的属性,但Supply是Supplier与另一个零件关系Part的关联(这种关联描述了供应商供应零件的细节)。Supply与Supplier和Part分别通过SNO和PNO建立联系,就Supply与Supplier而言,SNO是它们的公共的属性,充当Supply的外键(foreign key)。所以,Supply的划分可以通过公共属性SNO实现,在SCITY属性值上完成水平诱导划分。这时,SCITY属性称为Supply的诱导属性。

3.2.2.4 诱导分片 前例已有:Supplier1=σSCITY=’London’Supplier Supplier2=σSCITY=’Paris’Supplier 通过半联接操作实现对Supply的划分,则 Supply1=Supply ∝ Supplier1 Supply2=Supply ∝ Supplier2 根据半联接表达式,则上式分别为: Supply1=πSNO,PNO,QTY(Supply∞(σSCITY=‘London’Supplier)) Supply2=πSNO,PNO,QTY(Supply∞(σSCITY=‘Paris’Supplier)) 从式中可看出:Supply诱导水平分片的谓词有两部分,一部分是它与关联关系的公共属性;另一部分是它应满足的关于诱导属性的谓词。可表示为: Q1:Supply.SNO=Supplier. SNO and SCITY=‘London’ Q2:Supply.SNO=Supplier.SNO and SCITY=‘Paris’ [注:R∝S=πR(R∞S)]

3.2.2.4 诱导分片

3.2.2.5 四种分片操作的统一表示 四种分片操作可以用一个统一的形式描述: R(Oj),<C>={R1,…,Rn} 其中,Oj∈{ H,V,M,DH }, C= { C1,…,Cn }。 当Oj=DH时,Ci表示关系; 当Oj≠DH时,Ci={<Ai,Pi>|如果Oj=H,则Ai=U;如果Oj=V,则Pi=True}。 操作的作用是将组合关系R(U,Q,S)按操作Oj分解成一组满足条件的片段(子关系):R1(U1,Q1,S1),…,Rn(Un,Qn,Sn),其中, 当Oj ≠ DH时, Ui=Ai,Ki=K, Qi=Q∧Pi ,Si ≠ Ø,i=1,…,n; 当Oj=DH时,Ui=U, Ki=K, Qi=Ci, Si ≠ Ø,i=1,…,n。

3.2.3 分片操作的正确性 四种分片操作均是建立在关系代数基础上的。一个关系经过选择操作分成若干子关系,子关系间遵守三个内部特征原则。 一个关系经过投影操作划分成若干子关系,它们共享关系的主键属性,且相交属性只允许是主键。这种划分后的内部特征的检查如下: 完整性检查:垂直分片定义中已定义了子关系属性项,并是关系的属性项(∪Ai=U),即不会出现游离的属性项; 重构性检查:将子关系做自然联接则还原成关系; 不相交性检查:对于垂直分片是允许在键属性上相交。 一个关系的混合分片的检查,实际上是重复上述两种分片的检查。两个关系间的诱导分片的检查,主要是对半联接作的检查,半联接操作是一种基于关系基本操作的导出操作(选择、投影、联接的复合操作)。

3.2.3 分片操作的正确性 例1:检查Supplier被水平划分成Supplier1和Supplier2两个子关系的分片正确性。 完整性检查:选择操作包括了所有 SCITY值,即不出现游离的元组项; 重构性检查:将两个子关系做并操作还原为原来的Suppler关系; 不相交性检查:选择操作的两个谓词为: Q1:SCITY=‘London’, Q2:SCITY=‘Paris’, 它们之间是互斥的,所以片段中不存在相同的元组项

3.3 数据分配原则及方法 3.3.1 数据分配的一般准则 3.3.2 分配操作定义 3.3.3 分配操作方法

3.3.1 数据分配的一般准则 集中型评估 分割型评估 全复制型评估 混合型评估 上述三种的综合设置,考虑更新/检索比 分配 4 种类型:集中型、分割型、全复制型、混合型 评估 4 个因素:存储代价、可靠性、检索代价、更新代价 评估分析 集中型评估 分割型评估 全复制型评估 混合型评估 上述三种的综合设置,考虑更新/检索比 - 没有片段间 的通讯; - 存储代价没有额外开销; - 可靠性差; - 检索代价猛增; - 没有同步更新的开销。 存储代价没有增加 可靠性比集中型好 没有通讯代价问题 不存在副本同步更新 可靠性好 存储代价剧增 - 检索代价随更新同步机制而变化(分析集中式更新同步技术和全局锁技术的检索代价与更新复杂性) 数据分配一般准则: 处理局部性 数据的可用性和可靠性 工作负载分布的均匀性

3.3.2 分配操作定义 定义1: 对于逻辑片段R(U,Q,S)的分配操作(AO),是将R分配到一组场地r1,…,rn上,使得每个ri上有一个相应的物理关系 Rri(Uri,Qri,Sri),满足: Uri=U; Qri=Q; Sri=Ø。 记为: R(AO)〈r〉= { Rr1, Rr2…Rrn}, {r=r1, …, rn }

3.3.3 分配操作方法 总体思路和参考方法: 利用大量的性能测试和“应用”优化。即:分别根据需求,使用以下三种方法求出收益值,分析最佳分配。 方法1:非冗余分配“最佳”法 方法2:冗余分配“选择所有收益场地法” 方法3:冗余分配“添加副本”法

3.4 数据分布结构模式定义 3.4.1 概述 3.4.2 用分解树理论讨论分布结构的定义 3.4.3 数据分布模式定义

3.4 用分解树理论讨论分布结构的定义 3.4.1 概述 全局关系模式: R(U,D,dom,I,F,Q,S) 或简化成: R(U,Q,S), 其中,S是关系的分布结构 ,是有关R被划分和分配的信息的集合。 如果R是全局关系,那么S记载了R如何分解成逻辑关系和物理关系; 如果R是逻辑关系,那么它还需分配场地,因此S记载R的分配信息; 如果R是物理关系,那么它无需划分和分配,因此S=Ø; 本节讨论如下要点: 如何将分片和分配的信息在一个分布结构S中进行描述 表示“数据分布的模式定义”的语句格式,即以语句格式表现数据分布的实际操作

3.4 数据分布结构模式定义 3.4.2 用分解树理论讨论分布结构的定义 3.4.2.1 分布结构的粗定义 3.4.2 用分解树理论讨论分布结构的定义 3.4.2.1 分布结构的粗定义 3.4.2.2 关于独立分片的分解树定义 3.4.2.3 包含相关分片的分解树定义 3.4.2.4 包含分配操作的分解树定义

3.4.2.1 分布结构的粗定义 定义1:一个分布结构是一个有向图G=(V,E,L),其中: 1) V是节点集:每个节点由关系模式和在相应关系上的操作所组成,用Ri(Ui,Qi,Si)(Oj)表示; 2) E是边集:如果有任意分片操作R(Oj)<C>={R1,…,Rn},则有从节点R(U,Q,S)(Oj)到R1(U1,Q1,S1)(O1),…,Rn(Un,Qn,Sn)(On)的n条有向边[R(R,Q,S)(Oj),Ri(Ui,Qi,Si)(Oi)],每条边上有符号Ci,i=1,2,…,n。 3) L是符号集:它由所有边上的Ci所组成。 如果一个分布结构是一棵树,就称它为分解树。

3.4.2.1 分布结构的粗定义 图 分解树结构

3.4.2.2 关于独立分片的分解树定义 定理1:在分解树中对任一符号为Ci=<Ai,Pi>的有向边 [R(U,Q,S)(O),R’(U’,Q’,S’)(O’)] ,都有: Q’=QΛPi,U’=Ai,K’=K 。 定理2:在分解树中,设任意两节点R0(U0,Q0,S0)(O0)到Rf(Uf,Qf,Sf)(Of)间的所有边上的符号为 ,有: 1) 2) 3) 4) 为根节点的子树.

3.4.2.2 关于独立分片的分解树定义 定义2: 分解树是一棵树T=(V,E),其中: 1)V是节点集:每个节点结构为Ri (Ui,Qi,Si)(Oj),Qi是一谓词,Oj表示操作集{H,V,M},对于根节点,有Qi=True,Si=T; 2)E是边集:对于任一独立分片操作,R(Oj)<C>={R1,…,Rn},其中,C={C1,…,Cn},Ci=<Ai,Pi>,(i=1,…,n)。则在分解树中,有节点R(U,Q,S)(Oj)到Ri(Ui,Qi,Si)( )的边,其中,i=1,…,n,且Ui=Ai,Ki=K, Qi=Q∧Pi 。 这个定义就是非常重要的独立分片的分解树定义

3.4.2.3 包含相关分片的分解树定义 定义3: 分解树是一棵树 ,其中: 1)V是节点集:每个节点结构为 是一谓词或是关系名, 表示操作集 根节点 2)E是边集:对于任一分片操作 如果, ,在分解树中有从节点 到Ri(Ui,Qi,Si)(Oj’ )的, 且Ui=Ai,Ki=K,Qi=Q∧Pi; 如果 ,那么 一定是关系名,这时 ,在分解树T中有从节点 到节点 的几条边, 且对每个 ,有

3.4.2.4 包含分配操作的分解树定义 定义4: 分解树是一棵树 ,其中: 1)V是节点集:每个节点结构为 其中, 是一谓词或是关系名或场地名, 表示操作集 对于根节点,有 2)E是边集:对于任一分片操作 如果Oj∈{H,V,M},则有 ,在分解树中有从节点 到Ri(Ui,Qi,Si)(Oj’ )的边, 且Ui=Ai,Ki=K,Qi=Q∧Pi; Si=以Ri(Ui,Qi,Si)(Oj’ )为根的子树, 如果Oj∈{DH,空},那么 在分解树T中有从节点 到节点 的边, 且对每个 ,有 (注:“空”时, Qi 表示场地名)

3.4 数据分布模式定义 3.4.3 数据分布模式定义 DDB的数据分布在四层模式中属全局概念层的描述,它是分布式数据库的整体抽象,也是分布式数据库与集中式数据库抽象的最特殊的一点。这里讨论描述全局概念层中关于数据分布的模式定义语句,而四层模式中其它三层的模式定义与集中式数据库类似。 在全局概念层中,有全局概念模式、分片模式、分配模式三种模式。所以,对全局层模式定义语句应包括这三方面的描述,语句的词法和语法视设计的风格而定。本课程采用武汉大学数据库研究组研制的WDDBS的L-SQL*语言。

3.4 数据分布模式定义 例6 有例2的职员关系Emp,将它按例3所示混合分片划分Emp时,用L-SQL*语句如下书写: Create Table Emp (ENO n 4 ENAME c 12 SAL n 5 TAX n 4 MGRSSN n 8 DNO n 2) Key ENO Fragment aa=Emp (ENO,ENAME,MGRSSN,DNO) Emp1=Emp (ENO, SAL, TAX) Emp2=aa (DNO=”1” or DNO=”3”) Emp3=aa (DNO=”2”) Site Empl(1,2) Emp2(1) Emp3(2);

3.4 数据分布模式定义 例7 给出例1和例4的分片及分配模式定义语句 例7 给出例1和例4的分片及分配模式定义语句 Create talbe Supplier (SNO n 4 SNAME c 12 SCITY c 10) Key SNO Fragment Supplier1=Supplier(SCITY=’London’) Supplier2=Supplier(SCITY=’Paris’) Site Supplier1 (1) Supplier2(2,3); Create Table Supply (SNO n 4 PNO n 4 QTY n 5) Key SNO PNO Fragment Supply1=Supply SJ[SNO=SNO]Supplier.Supplier1 Supply2=Supply SJ[SNO=SNO]Supplier.Supplier2 Site Supply1(1,3) Supply2(2,3);

Department of Computer Science, Xiamen University, Oct, 2011