设计方法、内容和目标

分布式数据库设计的方法

根据设计是基于现存的数据系统还是构造一个全新的数据库系统,有两种方法创建分布式数据库:

  • 组合法:基于现有的系统,建立一个协调管理系统。采用自底向上的方式构建。
  • 重构法:创建全新的数据库系统。采用自顶向下的方式构建。

分布式数据库设计的内容
(1)数据库设计基础——需求分析:

  • 数据需求
  • 应用需求:
    • 应用的原发站点:发出应用请求的站
    • 应用在站点被**的频率
    • 应用对数据对象访问次数、类型和分布统计

(2)数据库设计(设计的核心任务):

  • 全局模式设计
  • 局部数据库设计
  • 数据分片设计
  • 片段的位置分配设计

分布式数据库设计的目标

  • 确保数据库数据和应用具有最大程度的本地性
  • 分布式数据的可用性可靠性
  • 工作负荷分布
  • 存储的能力和费用

自顶向下方法构建数据库设计步骤:

分布式数据库的设计

分布式数据库系统比集中式数据库系统多了全局逻辑模型的设计、分片设计、分布设计以及局部逻辑设计。

数据库的分片和分布设计

数据库的分片设计

  • 什么叫“片段”?——片段指在分布式数据库系统中, 某一站点上存储的数据集合。
  • 分片设计的目的?——产生全局数据的一个合理的划分,从而使每个站点只获得它所需要的数据,最大可能保证应用的本地性
  • 分片应遵循的一般规则:设R={R1,R2,..Rn}
    • 完整性:即,t∈R,则必有t∈Ri(i= 1, 2... n)
    • 可重构性:即,R=∪Ri(i= 1, 2.. n )或R =∞Ri(i= 1,..., n )
    • 不相交性:即,Ri∩Rj=φ(i,j=1,...,n,且i≠j)或Ri∩Rj =主码属性(i,j=1,...,n且i≠j )
  • 分片的基本类型和方法:水平分片、垂直分片、混合分片
    • 水平分片:对全关系进行选择操作,把具有相同性质的元组进行分组,构成若干不相交的子集。
      • 初级分片:以关系自身属性性质分组
      • 导出分片:用其他关系的属性对某一全关系进行分组

分布式数据库的设计

分布式数据库的设计

  • 垂直分片:利用投影操作把全关系的属性分成若干组,目标是把频繁使用的属性聚集在一起,且各片段只在键属性下重叠。

分布式数据库的设计

  • 混合分片:就是将垂直分片、水平分片,把他们组合在一起,比如先进行垂直分片再进行水平分片,或者是先进行水平分片再进行垂直分片。

数据库片段位置分配的设计:

  • 非冗余分配:一个片段映射到一个站点
  • 冗余分配:一个片段映射到多个站点

非冗余"最佳适应"分配法:

  • ➢计算:Bij=Lk(Fkj*Nki),即计算所有的应用在站点j上访问片段i的总次数
  • ➢对所有站点j确定j‘,使得Bij' = max( Bij ),即把片段Ri分配到有最大访问次数的站点j’

分布式数据库的设计

冗余分配比较复杂,一般采用下列方法之一进行估算:

  • 所有得益站点法
  1. 对所有站点确定非冗余分配方案
  2. 从全部结点中选择一组站点,使得给这组站点分配片段Ri的一个拷贝所得到的检索效益,大于从其它站点对Ri实施更新的代价
  3. 把片段Ri拷贝分配给该组站点
  • 附加拷贝法
  1. 对所有站点确定非冗余分配方案
  2. 计算把片段Ri分配给所有站点所能得到的总效益fi (以及一个站点分得Ri所得到的效益)
  3. 从分得片段Ri能够获取最大益处的站点起,对各站点依次附加片段Ri的一个拷贝,直到增加片段Ri不能使系统得到明显效益(或者说效益增大"接近”fi )为止

总结:数据库片段及位置分配的设计所需要的参数均从应用需求中得来,总结这些参数可用如下三个表表达:

  • 频率表:各站点每一应用**的次数
  • 划分表:各实体的潜在水平分片规则
  • 极化表:给定站点发出一给定应用访问一给定片段的概率

分布式数据库的设计

 分布式数据库设计实例

订票系统维护分布在三个网络站点(与机场1,2 , 3处于同一地理区域)上的数据库。数据库存储机场规程班机起降旅客订票等数据。

(1)概念设计——全局概念模式( E-R图)

分布式数据库的设计

(2)收集数据与其最相关的应用知识——用操作模式表示

  • 订票:用于旅客预订机票。

分布式数据库的设计

[o]:表示用来进行输出显示的      [k]:表示关键信息      [w]:表示需要写回数据库        数字:表示的是每次操作显示的实物数

  • 登记:用于旅客登机登记任务记录。 

分布式数据库的设计

  • 起飞应用:查询即将从一个机场起飞的30个班机信息 。

分布式数据库的设计

(3)在操作模式的基础上,对每一实体估算应用的定量数据,建立逻辑访问表

分布式数据库的设计

(4)分布需求分析

  • 频率表:调研并给出在三个站点上使用各个应用的频率(**的次数)

分布式数据库的设计

  • 划分表:分析各个实体各种可能的分片方式及其选择性
    • *基本划分

分布式数据库的设计

  • *导出划分

分布式数据库的设计

  • *注释表 

分布式数据库的设计

  • 极化表:调研并给出从一个站点发出一个应用所需要访问某片段的概率

分布式数据库的设计

(5)飞机订票系统的分布式设计

  • a.为各个实体选择合适的分片,原则:本地性,不造成应用困难。
    • 对本例来说,各个实体采用水平分片:
    • ➢"机场” 由基于区域的基本水平分片(片段(F1~F3):机场1,机场2,机场3)
    • ➢"班机” 由基于起飞机场区域的导出水平分片(片段(A1~A3) :班机1,班机2,班机3)
    • ➢“旅客” 由基于旅客订票涉及的班机起飞机场所在区域的导出水平分片(片段(P1~P7):旅客1 ,旅客2,旅客3,...旅客7 )
  • b.进行片段的非冗余分配:
    • 对本例来说,各个实体采用水平分片:

分布式数据库的设计

  • c.进行片段的冗余分配:
    • 根据应用可以将旅客4、5、 6分配在两个站点上,旅客7分配在三个站点上。

(6)重构局部模式

 

分布式数据库的设计

分布式数据库的设计

分布式数据库的设计

之后可以构建局部数据库的逻辑模式,然后进行数据库的定义和实施。

 

 

【北京工业大学-高级数据库系统】

https://next.xuetangx.com/course/BJUT08091000021/1075768

相关文章: