数据库table垂直分区时,分区后的table和分区前的table有什么关系?
When a database table is vertically partitioned, what is the relationship between the partitioned table and the table before partitioning?
在学习数据库相关内容时,遇到了以下问题:
When table R
is vertically partitioned into R1
, R2
, R3
..., Rn
, it is
said that it can be expressed as R
= R1
⋈R2
⋈R3
...⋈Rn
. (⋈
is the join
symbol)
但是,如果在没有任何特殊条件的情况下使用连接符号,它就会变成笛卡尔积,那么这不会导致比原始 table R 多得多的元组吗?您能否解释一下为什么现有 table 表示为分区 table 的连接?
该运算符表示自然连接。见 https://en.m.wikipedia.org/wiki/Relational_algebra:
Natural join (⋈) is a binary operator that is written as (R ⋈ S) where R and S are relations.[2] The result of the natural join is the set of all combinations of tuples in R and S that are equal on their common attribute names.
⋈ 是自然连接。 (当与 2 个关系参数一起使用且没有其他参数时。)当没有公共列时,自然连接是笛卡尔积。但是在引用中假设分区已经完成,所以有一组键值供所有 table 使用。所以笛卡尔积没有出现。每个分区都有相同的行数和相同的键内容,并且它们在附加列内容上有所不同。每个连接都会添加一些额外的列数据,直到您取回原始 table.
在学习数据库相关内容时,遇到了以下问题:
When table
R
is vertically partitioned intoR1
,R2
,R3
...,Rn
, it is said that it can be expressed asR
=R1
⋈R2
⋈R3
...⋈Rn
. (⋈
is thejoin
symbol)
但是,如果在没有任何特殊条件的情况下使用连接符号,它就会变成笛卡尔积,那么这不会导致比原始 table R 多得多的元组吗?您能否解释一下为什么现有 table 表示为分区 table 的连接?
该运算符表示自然连接。见 https://en.m.wikipedia.org/wiki/Relational_algebra:
Natural join (⋈) is a binary operator that is written as (R ⋈ S) where R and S are relations.[2] The result of the natural join is the set of all combinations of tuples in R and S that are equal on their common attribute names.
⋈ 是自然连接。 (当与 2 个关系参数一起使用且没有其他参数时。)当没有公共列时,自然连接是笛卡尔积。但是在引用中假设分区已经完成,所以有一组键值供所有 table 使用。所以笛卡尔积没有出现。每个分区都有相同的行数和相同的键内容,并且它们在附加列内容上有所不同。每个连接都会添加一些额外的列数据,直到您取回原始 table.