在DDBMS的上下文中,垂直碎片和水平碎片之间有什么区别?
对于垂直碎片而言,关系的扩展是否是碎片化的,并且强度碎片是否是水平碎片?
答案 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)
用水平片段化的简单话来说,我们将表拆分为元组,这意味着在行中表的结构保持不变,只有我们拆分一个或两个拖曳行。 在垂直分割中,我们根据属性列拆分表,然后从原始表中创建表