分布式数据库管理系统(DDBMS)中的水平与垂直碎片

时间:2011-04-25 09:58:03

标签: database distributed fragmentation

在DDBMS的上下文中,垂直碎片水平碎片之间有什么区别?

对于垂直碎片而言,关系的扩展是否是碎片化的,并且强度碎片是否是水平碎片?

8 个答案:

答案 0 :(得分:35)

假设你有一个关系,学生。

将两个集合中的关系划分为Student(称为set1和set2),使得Student的一半属性在set1中,其中一半在set2中。这被称为“垂直碎片”,因为关系沿着列分段(类似于垂直撕开页面)。通过采用所有集合的自然连接来获得原始关系。对于自然连接,我们需要至少一个对所有集合都通用的属性(通常它是主键)。

但是如果我们的关系被划分以便行的子集(参见此处所有属性存在于行中)与site1(例如)一起出现,则另一个子集与site2一起出现,依此类推,这称为“水平分段” ',并且通过采用所有集合的联合来获得原始关系。这就像水平撕裂页面一样。

很明显,这是在分布式DBMS的背景下。

答案 1 :(得分:18)

说我们有这种关系

customer_id | Name | Area       | Payment Type  | Sex
      1     | Bob  | London     | Credit card   | Male
      2     | Mike | Manchester | Cash          | Male
      3     | Ruby | London     | Cash          | Female

水平分段是元组(行)的子集

片段1

customer_id | Name | Area       | Payment Type  | Sex
      1     | Bob  | London     | Credit card   | Male
      2     | Mike | Manchester | Cash          | Male

片段2

customer_id | Name | Area       | Payment Type  | Sex
      3     | Ruby | London     | Cash          | Female

垂直碎片是属性的子集

片段1

customer_id | Name | Area       | Sex
      1     | Bob  | London     | Male
      2     | Mike | Manchester | Male
      3     | Ruby | London     Female

片段2

customer_id | Payment Type
      1     | Credit card 
      2     | Cash        
      3     | Cash        

答案 2 :(得分:2)

仅对分布式数据库需要垂直碎片。说一个关系R有几个属性。其中一些属性包含在R1中,另一些属于R2。然后我们垂直加入页面。这称为垂直碎片。

答案 3 :(得分:1)

基本上,水平分段按行分开表。 如果是垂直碎片,则按列拆分表。

在水平分段表中保持与之前相同。只有行是分裂。 在垂直分段中,一个表分成两个或多个表。

答案 4 :(得分:1)

数据碎片是分布式数据库管理系统(DDBMS)的一个重要特性 水平分段是将表格水平分割为元组或行。例如,具有1000条记录的COMPANY表可以水平分段为10个片段,每个片段具有100个唯一记录。

垂直分段是将表分段为称为set或site的列,其中每个站点必须至少有一个共同的列,例如主键属性列(这样当分段的站点时所需的可以使用公共列再次形成整个(父)表。 例如,EMPLOYEE表具有ENO(PRIMARY KEY),ENAME,ADDRESS,EMAIL&薪水。将此表垂直分段为两个站点,例如site1和site2。 site1中的列是ENO,ENAME&地址。 site2中的列是ENO,EMAIL& SALARY。

答案 5 :(得分:0)

水平分段将关系划分为称为行

的元组

垂直碎片将关系划分为称为列的属性。

根据我们的应用程序视图要求,我们可以将关系分段为水平或垂直。

碎片程度&基于应用程序视图的正确性规则

答案 6 :(得分:0)

水平分段按行拆分表。它与垂直分段的不同之处在于键列和非键列之间的关系保持不变。表格的内容因键值而异。

水平碎片,例如: 该公司希望每个部门都维护自己的数据。在此示例中,每个部门的Department表中只有一行,而其他表只包含部门员工的数据。

答案 7 :(得分:0)

用水平片段化的简单话来说,我们将表拆分为元组,这意味着在行中表的结构保持不变,只有我们拆分一个或两个拖曳行。 在垂直分割中,我们根据属性列拆分表,然后从原始表中创建表