第1章 分布式数据库系统概述

1、关系代数(4个应用10分,给几个关系、放上元组、做…运算)
5个集合运算:并运算、交运算、差运算、乘运算、除运算。
3个关系运算:选择运算、投影运算、连接运算。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、分布式数据库系统的主要概念、主要特点
分布式数据库(DDB)是分布在计算机网络上多个逻辑相关数据库的集合。
分布式数据库是网络技术和数据库技术的两大技术结合产物。
管理分布式数据库的软件称为分布式数据库管理系统。
被连接的逻辑单位称为节点(node)或场地(site)。节点/场地可由单独一台计算机也可由局域网组成。
分布式数据库的特性:数据透明性和场地自治性。
①数据透明性:(两类内涵)
划分层次(四层):全局外层(用户层)、全局概念层、局部概念层和局部内层。
应用程序与系统实际数据组织相分离,即数据具有独立性或透明性。具体体现为分布透明性、复制透明性和分片透明性。
分布透明性:全局用户看到的是全局数据模型的描述,用户象使用集中数据库一样,不需考虑数据的存储场地和操作的执行场地。
复制透明性:分布式数据库支持有控制的数据冗余,即数据可重复存储在不同的场地上,提高系统的可用性和可靠性,加强系统处理的并行性。
分片透明性:分片是将一个关系分成几个子关系。根据实际需求,一个分片可能存储在不同的场地上。
②场地自治性:
场地具有自治性:分布式数据库系统中保证局部场地独立自主能力。具体体现为:
设计自治性:LDBMS能独立决定它自己局部库的设计。
通信自治性:LDBMS能独立决定与他场地的DBMS通信。
执行自治性:LDBMS能独立决定如何执行局部操作。
全局用户:多个场地或结点的局部数据库在逻辑上集成为一个整体,并为分布式数据库系统的所有用户使用,这种应用称全局应用,其用户称为全局用户。
局部用户:分布式数据库系统也允许用户只使用本地的局部数据库,该应用称局部应用,其用户为局部用户。
我是S1场地用户,只在S1场地查询(局部用户)。我在S1场地,但访问S2(全局用户)

第2章分布式数据库系统的结构

1、AP(应用处理器):用于完成分布数据处理的软件,如:处理访问多个场地的请求,查询全局字典中分布信息等。
DP(数据处理器):负责进行数据管理的软件,类似于一个集中式DBMS。
CM(通信处理器):负责为AP和DP在多个场地之间传送命令和数据。
2、DDBS的模式结构(简答)
GES(Global External Schema,全局外模式):全局外模式即全局用户视图,是全局用户对分布式数据库的最高层抽象。
GCS(Global Conceptual Schema,全局概念模式): 全局概念模式即全局概念视图,是分布式数据库的整体抽象,包含了全部数据特性和逻辑结构。同集中式数据库中的概念模式一样,是对数据库全体的描述。
LCS(Local Conceptual Schema,局部概念模式):局部概念视图(LCS):局部概念模式为局部概念视图,是全局概念模式的子集。局部概念模式用于描述局部场地上的局部数据逻辑结构。
LIS(Local Internal Schema,局部内模式):局部内模式定义局部物理视图,是对物理数据库的描述,类似集中数据库的内层。
在这里插入图片描述

此图为分布式数据库的通用技术模式结构(消费构成、简答、每一级作用)
注意:分片模式和分配模式属于全局概念层

第3章分布式数据库设计

1、掌握水平分片和垂直分片(会分片)
2、分片的原则P62
设计分布式数据库系统需对系统进行全盘考虑,使系统性能最优。但无论如何进行分片,必须遵循下面原则:
完备性:所有全局数据必须映射到某个片段上。
可重构性:所有片段必须可以重新构成全局数据。
不相交性:划分的各片段所包含的数据不允许相同。
3、水平分片P63
水平分片是将关系的元组集划分成若干不相交的子集。每个水平片段由关系中的某个属性上的条件来定义,该属性称为分片属性,该条件称为分片条件。
在这里插入图片描述
在这里插入图片描述

根据水平分片定义,满足:

E1,E2,E3和EMP关系模式相同;
E1∪E2∪E3=EMP
E1∩E2=Φ,E1∩E3=Φ,E2∩E3=Φ
因此,E1、E2和E3是EMP的水平分片。
4、垂直分片
垂直分片是将一个关系按属性集合分成不相交的子集(主关键字除外),属性集合称为分片属性。即垂直分片是将关系按列纵向以属性组划分成若干片段。
在这里插入图片描述
在这里插入图片描述

5、分布式表示法(产生片段后、画树)
定义:一个分片树由以下几部分组成:根节点表示全局关系;叶子节点表示最后得到的片段;中间节点表示分片过程的中间结果;边表示分片,并用h(水平)和v(垂直)表示分片类型;节点名表示全局关系名和片段名。
在这里插入图片描述

6、分配设计(片段、往哪个场地存放)
分配分为非复制分配和复制分配。(两个内涵)
非复制分配:如果每个片段只存储在一个场地上,称为分割式分布,对应的分布库,称为全分割式分布库。
复制分配:
如果每个片段在每个场地上都存有副本,称为全复制分配,对应的分布库称为全复制分布库。
如果每个片段只在部分场地上存有副本,称为部分复制分配,对应的分布库称为部分复制分布库。

第4章分布式查询处理与优化

1、查询优化的意义P112例4.1
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2、查询优化P126
总结:①尽可能早地做选择操作;②对关系做预处理;③提取公共值表达式,后续应用共享;④某些单目运算与其前进行的双目运算同时进行,减少关系读的遍数,结合起来,一次完成。

在这里插入图片描述

第5章分布式查询的存取优化

1、在分布式查询的执行过程中,主要涉及3个场地、包括:
查询场地:发出查询命令和存储最终查询结果的场地。查询场地也称最终结果文件。
源数据场地:指查询命令需要访问的数据副本所在的场地,可能涉及一个或一个以上的场地。源数据场地也称源数据文件。
执行场地:查询操作执行所在的场地。执行场地可以和查询场地或源数据场地处于同一场地,也可不处于同一场地。执行场地也称中间结果文件。
在这里插入图片描述

2、存取优化的理论基础-查询代价模型
代价模型主要指传输代价(Ccom)、I/O代价(CIO)和CPU代价(Ccpu)
分布式查询:C Total = Ccom+CIO+Ccpu
集中式查询:C Total = CIO+Ccpu
查询总代价等于CPU代价、I/O指的是磁盘I/O代价、com指的是查询中的通讯代价。
通讯代价(广域网中最大)C com(X)=C init+X×Ctran 【公式消化一下,特征参数(查询、投影)】课本P152
3、数据库的特征参数
关系的基数:指关系R包含的元组个数,记为Card®
属性的长度:指属性A的取值字节数,记为Length(A)
元组的长度:指关系R中每个元组的字节数,记为Length®,存在:
Length®=∑Length(Ai)
关系的大小:关系R所包含的字节数,记为Size®,
Size®= Card®* Length®
属性的(不同值)特征值:指关系R中属性A取值不同的属性值个数,记为Val(R,A)
属性的值域:指属性A的取值范围,记为Dom(A)
属性A的最大值和最小值:记为Max(A)和Min(A)
4、半连接操作要会(半连接:表示两个关系连接后只保留第一个关系中的全部属性)
5、基于半连接的优化方法 P161

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6、使用半连接算法的通信代价估计P163.164
【过程说明 分析过程 要用公式计算通信代价、带有效数字,把可以计算的部分计算出来】
分布式查询的通信代价计算模型为;

在这里插入图片描述
在这里插入图片描述

第6章分布式事务管理

1、事物有两种结束方式(两种结果),commit表示提交,即成功完成事务中的数据库操作;absort表示废弃,即子事务执行过程中发生了故障,事务中的操作不能继续执行,系统需要将该事务中已完成的操作全部撤销。
2、事务的基本性质:原子性、一致性、隔离性、耐久性
3、分布式事务的实现模型
一个分布式事务所要完成的任务是由分布于各个场地上的子事务相互协调合作完成的。有两种实现模型:进程模型、服务器模型。
进程模型:全局事务为每一个子事务在相应的场地上创建一个代理者进程,由代理者进程执行该场地上的有关操作。同时,为协调各子事务的操作,全局事务还要启动一个协调者进程,来进行代理者进程间的通讯,控制和协调各代理者进程的操作。
协调者和参与者
协调者:是协调者进程的执行方,即根代理,负责决定所有子事务的提交或废弃;
参与者:是代理者进程的执行方,即子代理,负责执行本地数据库操作,负责本地子事务的提交或废弃,并向协调者报告本地子事务的执行状态;
4、两阶段提交协议(2 Phase Commit,简称2PC协议)(基本内涵、工作搞清楚)
在这里插入图片描述

两阶段提交协议的基本思想:
(1)决定阶段
由协调者发送“预提交”(Prepare)命令,然后等待参与者的应答。
如果所有的参与者都返回“准备提交”(Ready),那么协调者做出提交决定。
如果至少有一个参与者返回“准备废弃” (Abort) ,那么协调者做出废弃决定。
(2)执行阶段
协调者把在决定阶段做出的决定发送给参与者。
如果协调者向各个参与者发“提交”(Commit)命令,各个参与者执行提交;
如果协调者向各个参与者发出“废弃”(Abort)命令,各个参与者执行废弃。
执行结束后各个参与者向协调者发送确认信息(Ack)。
5、两段提交协议(2PC)的实现方法(每一个实现过程以及传输数据信息、和需要的时间代价定量分析,得出结论)
①集中式2PC
确定一个协调者场地,通常由事务的源场地充当,完成事务提交的初始化。“集中式”主要体现在协调者在整个分布式事务提交过程中始终作为唯一的总控节点(发布命令、搜集状态信息、做出决定)。通信只发生在协调者与参与者之间,参与者与参与者之间没有直接通信。
假设参与者的数目为N,则需要传递的消息总数为4N,消息传输量随着参与者数目的增加而线性增长。假设场地间传输一个消息的平均时间为T,则传输消息总用时为4T。
②分布式2PC
事务的所有参与者同时也都是协调者,都可以决定事务的提交和废弃,提交过程是完全分布地完成。由事务的始发场地完成提交的初始化工作。
假设有N个场地(参与者数目),场地间传输一个消息的平均时间为T,则需要传递的消息总数为N*(N+1),传输消息总用时为2T。可见,同集中式2PC相比,分布式2PC的响应效率高,但通信量大。
③分层式2PC
分层式2PC也称树状实现方法,协调者与参与者间的通讯结构如同一棵树。其中,协调者为根节点,参与者构成树的中间节点或叶子节点。
假设参与者的数目为N,则需要传递的消息总数为4N。假设场地间传输一个消息的平均时间为T,则传输消息总用时为4T~2NT。由此可见,同分布式方法相比,分层式2PC的报文传输数量少,但响应时间长。
④线性2PC
假设参与者的数目为N,则需要传递的消息总数至多为3×(N-1), N-1个预提交、 N-1个准备提交和N-1个提交/废弃。假设场地间传输一个消息的平均时间为T,传输消息总用时至多为2×(N-1)×T。由此可见,同其它类别的2PC相比,线性2PC的报文传输数量较少,但响应时间最长。

第7章 分布式恢复管理

1、数据库系统中的故障通常分为事物内部的故障、系统故障、存储介质故障和通信故障。
①事务内部的故障(特性看一看)
事物内部的故障大多数都是不可预期的,发生这类故障的事物将不能正常运行到其终点位置(Commit或Abort)。因此,针对这类故障,数据库恢复机制要强行废弃(undo操作)该事物,使数据库回滚到事物执行的状态。
②系统故障
③存储介质故障:破坏性最大,是一种较严重的故障类型,出现概率最低
④通信故障
3、数据日志文件:记录数据库更新操作的流水账。
记录原则(先写日志协议(Write Ahead Logging)) :先写日志文件,后写数据库。
4、反做(undo)和重做(redo)恢复策略
反做也称撤消、回滚,是将一个数据项值恢复到修改之前的值,取消一个事务所完成的操作结果。
重做也称为前滚操作,是将一个数据项的值恢复到其修改后的值,恢复一个事务的操作结果。
5、可靠性与可用性 内涵:
可靠性(Reliability):在给定环境条件下和规定的时间内,数据库系统符合其行为规范的概率(或数据库系统不发生任何失败的概率)。强调正确性。
可用性(Availability):在给定时刻t上,数据库系统正常运行的概率。强调可运行的能力。

第8章 分布式并发控制

(可提高系统运行效率、也会带来问题)
1、并发控制问题:丢失修改错误、不能重复读错误、读脏数据错误。
2、可串行化内涵:(事物的实行是并发的,但是其产生的结果和按照某一个次序串行执行的结果是一样的。可串行化事物结果一定正确、并且具有串行的特点)
冲突操作:分别属于两个事务的两个操作Oi和Oj,如果它们操作同一个数据项,且至少其中一个操作为写操作,则Oi和Oj这两个操作是冲突的,例如:R1(x) 和W2(x),W1(x)和 W2(x) 。
在这里插入图片描述

3、锁的类型和相容性
锁的分类:排它锁(exlusive)和共享锁(shared)。
排它锁(X锁或写锁):当事务T对数据A施加排它锁之后,只允许事务T读/写A,其它事务都不可读/写A。修改、更新必须加排他锁。排他锁强度最高。
共享锁(S锁或读锁):当事务T对数据A施加共享锁之后,只允许事务T读取A;后续其它事务也可申请共享锁,来读取A,即共享锁允许多个事务同时读取同一数据项A。读数据的时候用S锁。
4、两段封锁(2PL)协议
作用:解决并发控制的重要方法,保证事务的可串行化。
含义:将事务中的加锁操作和解锁操作分两阶段完成,要求并发执行的多个事务要在对数据操作之前进行加锁,且每个事务中的所有加锁操作要在解锁操作以前完成。

小点

1、分布式数据库也有设计过程,在设计过程中形成E-R图属于概念结构设计阶段,向特定模型转化属于逻辑结构设计。
2、在SQL中,更新、授权用Grant,收权用revoke。
3、分布式数据库访问有:远程请求、远程事务、分布式事务、分布式请求。
4、在远程访问网中减少通信代价作为主要目标。
5、封锁粒度与并发程度之间的关系:封锁粒度越小,封锁代价越高,并发程度越高。封锁粒度越大,封锁代价越低,并发程度越差。
6、全局查询过程有哪些主要步骤:
①具体化:分解全局查询,确定是冗余查询还是非冗余查询。②确定操作执行的次序,优化查询过程。③确定操作执行方法,涉及路径及索引的选取。④确定执行站点,从通信代价和执行效率上,落实 选用站点。
7、分布式查询系统安全措施实施的思想、层次有哪些:
安全性、完整性是数据库维护最突出的两个指标,安全性是防止非法用户窃取,完整性是防止数据破坏。
分布式数据库系统采取一些安全措施,使那些企图在没有适当授权情况下,访问数据库的作恶者付出足够高昂的代价,以阻止绝大多数这样的访问企图。
物理层、用户层、操作系统层、网络层。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐