20

在 DDBMS 的上下文中, Vertical FragmentationHorizo​​ntal Fragmentation有什么区别?

是不是关系的外延是纵向的碎片化,内涵的碎片化是横向的碎片化?

4

9 回答 9

46

假设你有一个亲戚,学生。

您将关系 Student 分成两组(称为 set1 和 set2),这样 Student 的一半属性在 set1 中,而其中一半在 set2 中。这称为“垂直碎片”,因为关系沿列分散(类似于垂直撕裂页面)。原始关系是通过所有集合的自然连接获得的。对于自然连接,我们需要至少一个所有集合共有的属性(通常是主键)。

但是,如果我们的关系划分为 site1 存在行的子集(参见此处,所有属性都存在于行中)(例如),另一个子集存在于 site2,依此类推,这称为“水平碎片”,并且原始关系是通过对所有集合进行并集得到的。这就像水平撕裂一页。

很明显,这是在分布式 DBMS 的上下文中。

于 2011-06-17T19:16:27.523 回答
24

假设我们有这种关系

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        
于 2013-08-31T10:25:17.873 回答
4

原表-。 在此处输入图像描述


在此处输入图像描述

图片评论:您完全可以选择如何在每个站点组装列。


  1. 按属性拆分原始表格(垂直)。
  2. 将这些片段分发到您喜欢的 DDBMS 站点并重新组装它们。

    (通常您希望将主键列包含到每个分片中,以便在需要时可以再次获取原始表)。


在此处输入图像描述


  1. 按行拆分原始表格(水平)。

  2. 将这些片段分发到您喜欢的 DDBMS 站点并重新组装它们。


于 2020-05-08T13:31:34.120 回答
2

只有分布式数据库才需要垂直分片。假设关系 R 之一有几个属性。其中一些属性存在于 R1 中,其他属性存在于 R2 中。然后我们垂直加入页面。这称为垂直碎片。

于 2011-11-20T20:15:26.260 回答
2

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

Vertical Fragmentation是将表分割成称为集合或站点的列,其中每个站点必须至少有一个共同的列,例如主键属性列(以便在需要时可以将碎片站点再次形成一个整体(父) 使用公共列的表)。例如,EMPLOYEE 表具有 ENO (PRIMARY KEY)、ENAME、ADDRESS、EMAIL 和 SALARY 等属性。将此表垂直分割为两个站点,例如站点 1 和站点 2。site1 中的列是 ENO、ENAME 和 ADDRESS。site2 中的列是 ENO、EMAIL 和 SALARY。

于 2016-05-01T15:14:35.170 回答
1

Horizo​​ntal Fragmentation 将关系划分为称为行的元组

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

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

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

于 2013-07-05T08:34:49.980 回答
1

基本上 Horizo​​ntal Fragmentation 按行拆分表格。在垂直碎片的情况下,按列拆分表。

在水平碎片表中保持与以前相同。只有行是拆分的。在 Vertical Fragmentation 中,一张表拆分为两张或多张表。

于 2014-11-17T16:46:31.017 回答
0

Horizo​​ntal Fragmentation 按行拆分表。它与 Vertical Fragmentation 的不同之处在于键列和非键列之间的关系保持不变。表的内容因键值而异。

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

于 2015-11-29T10:46:20.040 回答
0

简而言之,在水平碎片中,我们将表拆分为元组,这意味着在行中表的结构保持不变,只是我们拆分了一行或两行。在垂直碎片中,我们根据属性列拆分表,我们从原始表中制作更详细的表

于 2019-06-16T04:51:05.497 回答