在DDBMS的背景下,垂直分片和水平分片有什么区别?
是这样吗,对于垂直分片,关系扩展被分片,而对于水平分片,关系内涵被分片?
在DDBMS的背景下,垂直分片和水平分片有什么区别?
是这样吗,对于垂直分片,关系扩展被分片,而对于水平分片,关系内涵被分片?
假设我们有这个关系:
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
垂直分片仅适用于分布式数据库。假设关系R有多个属性,其中一些属性包含在R1中,其他属性包含在R2中。然后我们进行垂直分片。这被称为垂直分片。
水平分割将关系划分为称为行的元组。
垂直分割将关系划分为称为列的属性。
根据我们的应用程序视图要求,我们可以将关系分解为水平或垂直。
分解程度和正确性规则基于应用程序视图。
水平分片按行拆分表格。它与垂直分片不同之处在于关键列和非关键列之间的关系保持不变。表格的内容根据关键值而异。
例如,水平分片: 公司希望每个部门都维护自己的数据。在这个例子中,每个部门的“部门”表中只有一行,其他表格仅包含该部门员工的数据。
简单来说,在水平分片中,我们将表格拆分成元组,也就是按行拆分,表格的结构保持不变,只是拆分了一行或两行。 在垂直分片中,我们根据属性列拆分表格,从原始表格中创建更多的表格。