18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 分布式数据库设计(数据库)

分布式数据库设计(数据库)

时间:2022-12-21 08:30:01 | 来源:信息时代

时间:2022-12-21 08:30:01 来源:信息时代

    分布式数据库设计 : 基于分布式数据库环境下的一种数据库设计方法。分布式数据库设计要为数据库用户提供高效管理数据的功能。在分布式数据库系统中,根据应用需求,数据可分布或复制存储于不同场地上,以减少远程访问统一的全局模式的访问代价。应用也可分散于不同场地上,用于提高并发执行度和查询效率。
1.分布式数据库中的数据分布
分布式数据库设计的最基本问题就是分布式数据库的分布问题,即如何对分布式数据库进行逻辑划分和实际物理分配。在分布式数据库设计中,需要根据各物理场地所在的位置,以及具体的实际应用需求,对全局数据进行分片设计。对全局数据的划分,称为分片(fragmentation),划分的结果即是片段(fragment),对片段的存储场地的指定,称为分配(allocation)。片段是数据的存储单位,当一个片段存储在一个以上的场地时,则称为数据复制(replication)。如果每个片段只存储在一个场地,称为数据分割(partition)存储。分布数据库采用分片思想的目标是提高系统的可靠性、可用性和系统的总体效率。
分片过程是将全局数据进行逻辑划分和实际物理分配的过程。全局数据由分片模式定义分成各个片段数据,各个片段数据由分配模式定义存储在各场地上。分片模式定义从全局模式到片段模式的映射关系。分配模式定义从片段模式到物理模式的映射关系。分片模式与分配模式为1:N时为复制分配;1:1时为分割分配。
在将分布式数据库的全局数据进行划分为片段数据分片时,必须遵循完备性、可重构性和不可相交性三个原则。完备性是指所有全局数据必须映射到某个片段上。可重构性是指所有片段必须可以重新构成全局数据。不相交性是指划分的各片段所包含的数据不允许相同。
2.对全局数据的分片设计
在分布式数据库设计过程中,根据系统实际需求对全局数据进行分片和物理分配。具体的分片方法有如下四种: 水平分片、导出水平分片、垂直分片和混合分片。
(1)水平分片: 水平分片是将关系的元组集划分成若干不相交的子集。每个水平片段由关系中的某个属性上的条件来定义,该属性称为分片属性,该条件称为分片条件。例如:存在关系EMP{ENO,ENAME,SALARY,DNO},将雇员表EMP按雇员所在部门DNO进行水平分片,假设存在有201,202和其他部门,则水平分片定义为:
E1=σDNO=201(EMP),SQL:SELECT*FROM EMP WHERE DNO=201;
E2=σDNO=202(EMP),SQL: SELECT*FROM EMP WHERE DNO=202;
E3=σDNO201 AND DNO202(EMP),SQL: SELECT*FROM EMP WHERE DNO201 AND DNO202。
其中,DNO为分片属性,DNO=201为E1的分片条件, DNO=202为E2的分片条件, DNO201AND DNO202为E3的分片条件。
(2) 导出水平分片: 一个关系的分片不是基于关系本身的属性,而是根据另一个与其有关联性质的关系的属性来划分,这种划分为导出水平划分。具体形式化定义为: 如果一个关系的水平分片的分片属性属于另一个关系,则该分片称为另一个关系的导出分片。例如: 存在关系WORKS{ENO,PRJNO,HOURS},关系EMP{ENO,ENAME,SALARY,DNO},将WORKS按DNO进行水平分片,得到的水平分片为导出水平分片。如:
W1=σDNO=201(WORKS⋈EMP)
 =WORKS⋈σDNO=201(EMP)
 =WORKS⋈E1。
同理,
W2=WORKS⋈E2;
W3=WORKS⋈E3。
(3)垂直分片: 垂直分片是将一个关系按属性集合分成不相交的子集(主关键字除外),属性集合称为分片属性。即垂直分片是将关系按列的纵向以属性组划分成若干片段。例如: 存在雇员关系EMP{ENO,ENAME,BIRTH,SALARY,DNO},假设采用垂直分片,得到分片E1{ENO,ENAME,BIRTH}和E2{ENO,SALARY,DNO},则E1和E2的垂直分片表示为:
E1=∏ENO,ENAME,BIRTH(EMP),SQL: SELECT ENO,ENAME,BIRTH FROM EMP;
E2=∏ENO,SALARY,DNO(EMP),SQL:SELECT ENO,SALARY,DNO FROM EMP。
其中,ENO,ENAME,BIRTH为E1的分片属性,ENO,SALARY,DNO为E2的分片属性。
(4)混合分片: 混合分片是既包括水平分片,又包括垂直分片的分片过程,称为混合分片。
3. 分片树
分片树是采用树表示分片的定义,同查询优化的语法树类似,很方便将全局优化树转换为片段查询树。一个分片树由以下几部分组成: 根结点表示全局关系; 叶子结点表示最后得到的片段; 中间结点表示分片过程的中间结果;边表示分片,并用h(水平)和v(垂直)表示分片类型; 结点名表示全局关系名和片段名。
图1为分片的分片树表示示例。其中,(a)为水平分片的分片树; (b)为垂直分片的分片树; (c)为混合分片的分片树。


图1 分片的分片树表示示意图


4. 分配设计
全局数据经过分片设计,得到各个划分的片段,片段到物理场地的存储映射过程称为分配设计过程。根据片段到各场地的分配情况,片段分配分为以下分配类型:
(1)非复制分配: 如果每个片段只存储在一个场地上,称为分割式分配,对应的分布库,称为全分割式分布库。
(2)复制分配: 如果每个片段在每个场地上都存有副本,称为全复制分配,对应的数据库称为全复制数据库。
(3)部分复制分配: 如果每个片段只在部分场地上存有副本,称为部分复制分配,对应的数据库称为部分复制数据库。
若每个片段在每个场地上都保存有副本,称全复制数据库。若每个片段只保存有一个副本,称全分割数据库。若每个片段有一个或一个以上的副本,称部分复制数据库。
系统是采用全分割数据库、全复制数据库或部分复制数据库,应根据应用需求及系统运行效率等因素来综合考虑。
从应用角度出发,一般需考虑: 增加事务处理的局部性; 提高系统的可靠性和可用性; 增加系统的并行性。从系统角度出发,需考虑降低系统的运行和维护开销,使系统负载均衡,方便一致性维护。
在分配设计时,应根据具体的场景进行设计。通常,考虑如下具体因素为所遵循的分配设计原则:数据库因素: 主要指片段的大小和查询对片段的选择度(查询结果的大小); 应用因素: 主要指查询对片段的读频度、查询对片段的更新频度、更新查询需访问的片段和每个查询的启动场地; 场地因素:主要指场地上存储数据的单位代价和场地上处理数据的单位代价。网络通信因素: 主要指网络带宽及网络延迟、场地间通信代价和传输的数据帧大小。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭