首页 百科知识 数据分布策略

数据分布策略

时间:2022-10-17 百科知识 版权反馈
【摘要】:在分布式数据库中,全局数据被分成许多片段,然后将这些片段分配到合适的结点上。数据分布的目的是:便于本地数据的处理;各结点的负荷均衡;降低传输费用以及良好的可用性和可靠性。下面介绍数据分片和分布的方法和策略。所谓数据分布是指分布式数据库中的数据不是存储在一个结点上,而是根据需要将数据划分成逻辑片段,按某种策略将这些分片分散地存储在各个结点上。

10.3.3 数据分布策略

在分布式数据库中,全局数据被分成许多片段,然后将这些片段分配到合适的结点上。数据分布的目的是:便于本地数据的处理;各结点的负荷均衡;降低传输费用以及良好的可用性可靠性。下面介绍数据分片和分布的方法和策略。

将数据分片,使数据存放的单位不是关系而是片段,这既有利于按照用户的需求较好地组织数据的分布,也有利于控制数据的冗余度。

分片的方式有多种,有水平分片和垂直分片以及混合分片,无论哪种分片都应该满足以下要求:

(1)完整性(Completeness):把全局关系中的数据全部都分配到片段上。不允许有的数据不属于任何一个片段,即不允许数据的丢失。

(2)可重构性(Reconstruction):分片后的数据可以重新构造成全局的关系,这个要求的必要性是明显的,因为分割前后代表的是同一数据,它们应该完全等价。全局关系可以分割成片段,片断也应能重构全局关系。

(3)不相交性(Disjiontness):对水平分段而言,不相交性指各片段所含元组集的交集为空,即在水平分段中不应有重复的元组,当然作为整个片段可以建立副本。这种片段不相交性,可以在分布模式这一层上明确地控制数据的重复性,便于数据的管理与控制。对于垂直分段不相交性允许有少量数据项重叠,通常使每个片段包含全局关系的关键字(键属性相交),便于通过连接运算重构全局关系。

下面具体介绍各种分片方式:

(1)水平分片

水平分片是将全局关系的元组按照一定的条件划分成若干个互不相交的子集,每一个子集为全局关系的一个片段。它们是通过对全局关系施加选择运算得到的,并可通过对这些片段执行合并操作来恢复该全局关系,如图10-7所示。

img187

图10-7

(2)垂直分片

垂直分片是将全局关系按照列以属性组划分为若干个子集,每一个子集是全局关系的一个片段。为得到这些子集,对全局关系做投影运算,要求全局关系的每一个属性至少映射到一个垂直片段中,且每一个垂直片段都包含该全局关系的键。这样,可以通过对这些片段执行连接操作来恢复全局关系,如图10-8所示。

(3)混合分片

混合分片是将上述分片方法混合使用,即对按其中一种方法分片的结果再按另外一种方法进行分片,反复进行这种分片直到满足应用的要求为止。可以先水平分片再垂直分片,或先垂直分片再水平分片。对于混合分片,可以依次通过分片时所用运算的逆运算来重构,如图10-9所示。

img188

图10-8

img189

图10-9

例如:关系S(S#、SNAME、AGE、SEX)

定义关系S的两个水平分段:

DEFINE FRAGMENT SHF1

AS SELECT * FROM S WHERE SEX=“M”

DEFINE FRAGMENT SHF2

AS SELECT * FROM S WHERE SEX=“F”

定义关系S的两个垂直分片:

DEFINE FRAGMENT SVF1

AS SELECT S#,AGE,SEX FROM S

DEFINE FRAGMENT SVF2

AS SELECT S#,SNAME FROM S

定义关系的两个混合分片:

DEFINE FRAGMENT SF1

AS SELECT S#,SNAME FROM SHF1

DEFINE FRAGMENT SF2

AS SELECT * FROM SVF1 WHERE SEX=“M 1”

所谓数据分布是指分布式数据库中的数据不是存储在一个结点上,而是根据需要将数据划分成逻辑片段,按某种策略将这些分片分散地存储在各个结点上。数据分布的策略有:

(1)集中策略

这种策略是将所有数据都安排在一个结点上,对数据的控制管理都比较容易,数据的一致性和完整性能够得到保证。但除了中心结点以外,所有结点的引用本地性都降到了最低,因为它们必须通过网络来进行所有的数据访问,这也意味着很高的通信成本。同时,可靠性和可用性也很低,因为中心结点的故障可能会损失整个数据库系统。

(2)分割策略(或者称为划分策略)

所有数据只有一份,它被分割成若干个逻辑片段,每个逻辑片段被指派在某个特定的站点上。这种分布策略可以充分利用各个站点的存储设备,数据存储量大。如果数据项位于最常被使用的结点时,引用的本地性是很高的。因为没有复制,所以存储成本很低;同样,可靠性和可用性也很低,尽管会比集中式策略高一点,因为当一个结点发生故障时,只会丢失故障结点的数据。如果分布设计得合理的话,性能应该很好并且通信成本很低。

(3)完全复制策略

全局数据有多个副本,每个结点上都有一个完整的数据副本。所以,采用这种策略的系统可靠性高,响应速度快,数据恢复也比较容易,可从任意一个结点得到数据副本。然而,要保持各个结点上数据的同步修改,将要付出高昂的代价。另外,整个系统数据冗余很大,系统的数据容量也只是一个结点上数据库的容量。

(4)混合策略(或称有选择复制策略)

这种策略是分割策略、完全复制策略和集中策略的组合。全部数据被分为若干个子集,每个子集安置在不同的结点上,但任一结点都没有保存全部数据,并且根据数据的重要性决定各个子集的副本的多少。采用这种策略的目的是集其他所有方法的优点而避免其他方法的缺陷。由于具有很强的适应性,这种策略被广泛地使用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈