Dre*_*reX 14 database distributed fragmentation
在DDBMS的上下文中,垂直碎片和水平碎片有什么区别?
对于垂直碎片而言,关系的扩展是否是碎片化的,而强度碎片是否是水平碎片?
San*_*pal 36
假设你有一个关系,学生.
您将关系Student分为两组(称为set1和set2),使得Student的一半属性在set1中,其中一半在set2中.这被称为"垂直碎片",因为关系沿着列分段(类似于垂直撕开页面).通过采用所有集合的自然连接来获得原始关系.对于自然连接,我们需要至少一个属性,这对于所有集合是通用的(通常它是主键).
但是,如果我们的关系被划分为使得行的子集(参见此处所有属性存在于行中)与site1(例如)一起出现,则另一个子集与site2一起出现,依此类推,这称为"水平分段",并且通过采用所有集合的联合来获得原始关系.这就像水平撕裂页面.
很明显,这是在分布式DBMS的上下文中.
Bik*_*net 18
说我们有这种关系
customer_id | Name | Area | Payment Type | Sex
1 | Bob | London | Credit card | Male
2 | Mike | Manchester | Cash | Male
3 | Ruby | London | Cash | Female
Run Code Online (Sandbox Code Playgroud)
片段1
customer_id | Name | Area | Payment Type | Sex
1 | Bob | London | Credit card | Male
2 | Mike | Manchester | Cash | Male
Run Code Online (Sandbox Code Playgroud)
片段2
customer_id | Name | Area | Payment Type | Sex
3 | Ruby | London | Cash | Female
Run Code Online (Sandbox Code Playgroud)
片段1
customer_id | Name | Area | Sex
1 | Bob | London | Male
2 | Mike | Manchester | Male
3 | Ruby | London Female
Run Code Online (Sandbox Code Playgroud)
片段2
customer_id | Payment Type
1 | Credit card
2 | Cash
3 | Cash
Run Code Online (Sandbox Code Playgroud)
图片评论:完全由您选择如何在每个站点组装柱子。
按照您喜欢的方式将这些片段分发到 DDBMS 的站点,然后重新组装它们。
(通常您希望将主键列包含到每个片段中,以便在需要时可以再次获取原始表)。
按行(水平)拆分原始表格。
按照您喜欢的方式将这些片段分发到 DDBMS 的站点,然后重新组装它们。