多向空间连接结果大小估计的研究与实践
1. 统计表达式转换
在空间数据处理中,有如下统计表达式转换:
[Size(r_i \cap r_j) = L_{r_i xy} \times N_{r_j} + L_{r_i x} \times L_{r_j y} + L_{r_i y} \times L_{r_j x} + N_{r_i} \times L_{r_j xy}]
此表达式不依赖空间数据的面积假设,可应用于任意面积分布的空间数据。在进行窗口查询和空间连接的结果大小估计时,每个关系需要 4 个统计量(如对于 (r_i),需要 (N_{r_i})、(L_{r_i x})、(L_{r_i y}) 和 (L_{r_i xy}))。若假设 x 长度分布与 y 长度分布相互独立,由于 (L_{r_i xy} = \frac{L_{r_i x} \times L_{r_i y}}{N_{r_i}}),则每个关系仅需 3 个统计量。
2. 术语定义
- 项(term) :表达式的组成部分。
- 原子项(atomic term) :表达式的基本组成部分,如 (s_{r_i,j,x})、(q_y) 和 (L_{r_i xy})。其中,对象信息 (s_{r_i,j,x_k y_l}) 称为对象项,统计信息 (L_{r_i x_k y_l}) 称为统计项。
- 复合项(compound term) :通过运算符(如 + 和 ×)组合的项。若外部运算符为 +,则称为加法项;若为 ×,则称为乘法项。
3. 多向空间连接的结果大小
3.1 树型查询图
在均匀放置分布假设下,树型多向空间连接的结果大小可按以下公式估计:
[Size(Q) = \sum_{k = 1}^{n} N_{r_k} \times \sum_{\forall i,j:Q(r_i,r_j)=1} (\overline{s}
{r_i,x} + \overline{s}
{r_j,x}) \times (\overline{s}
{r_i,y} + \overline{s}
{r_j,y})]
然而,此公式有局限性,它将所有数据的 x 长度和 y 长度近似为各轴的平均值,仅在每个关系中所有数据的 x 长度和 y 长度相等时成立。若不进行此近似,可得到公式:
[Size(Q) = \sum_{k_1 = 1}^{N_{r_1}} \cdots \sum_{k_n = 1}^{N_{r_n}} \prod_{\forall i,j:Q(r_i,r_j)=1} (s_{r_i,k_i,x} + s_{r_j,k_j,x}) \times (s_{r_i,k_i,y} + s_{r_j,k_j,y})]
其中,内部乘积项是任意 n 元组满足查询 (Q) 的概率,称为查询 (Q) 的选择性 (S)。
在树型 3 向连接((r_1 \cap r_2) 和 (r_1 \cap r_3))中,使用统计项推导上述公式可得:
[
\begin{align
}
Size(Q_3) =& L_{r_1 x^2 y^2} \times N_{r_2} \times N_{r_3} + L_{r_1 x^2 y} \times N_{r_2} \times L_{r_3 y} + L_{r_1 x y^2} \times N_{r_2} \times L_{r_3 x}\
& + L_{r_1 x y} \times N_{r_2} \times L_{r_3 xy} + L_{r_1 x^2 y} \times L_{r_2 y} \times N_{r_3} + L_{r_1 x^2} \times L_{r_2 y} \times L_{r_3 y}\
& + L_{r_1 x y} \times L_{r_2 y} \times L_{r_3 x} + L_{r_1 x} \times L_{r_2 y} \times L_{r_3 xy} + L_{r_1 x y^2} \times L_{r_2 x} \times N_{r_3}\
& + L_{r_1 x y} \times L_{r_2 x} \times L_{r_3 y} + L_{r_1 y^2} \times L_{r_2 x} \times L_{r_3 x} + L_{r_1 y} \times L_{r_2 x} \times L_{r_3 xy}\
& + L_{r_1 x y} \times L_{r_2 xy} \times N_{r_3} + L_{r_1 x} \times L_{r_2 xy} \times L_{r_3 y} + L_{r_1 y} \times L_{r_2 xy} \times L_{r_3 x}\
& + N_{r_1} \times L_{r_2 xy} \times L_{r_3 xy}
\end{align
}
]
对于树型多向空间连接,有以下两个引理:
-
引理 1
:将公式转换为统计项后,结果表达式是一个加法项,由 (4^{n - 1}) 个不同的乘法项组成,每个乘法项由 (n) 个不同的统计项组成,每个统计项来自 (r_i)((1 \leq i \leq n))。
-
引理 2
:若 (Q) 是表示 (n) 个关系的树型多向空间连接的查询图,(r_i) 是 (Q) 中表示关系的节点,(\delta_{r_i}) 是与 (r_i) 关联的边的数量,则需要 ((\delta_{r_i} + 1)^2) 个统计量来估计 (Q) 的结果大小。
3.2 团型查询图
在均匀放置分布假设下,团型多向空间连接的结果大小可按以下公式估计:
[Size(Q) = \sum_{k = 1}^{n} N_{r_k} \times \left(\sum_{i = 1}^{n} \sum_{j = 1,j \neq i}^{n} \overline{s}
{r_j,x}\right) \times \left(\sum
{i = 1}^{n} \sum_{j = 1,j \neq i}^{n} \overline{s}
{r_j,y}\right)]
若不进行平均近似,可得到公式:
[Size(Q) = \sum
{k_1 = 1}^{N_{r_1}} \cdots \sum_{k_n = 1}^{N_{r_n}} \left(\sum_{i = 1}^{n} \sum_{j = 1,j \neq i}^{n} s_{r_j,k_j,x}\right) \times \left(\sum_{i = 1}^{n} \sum_{j = 1,j \neq i}^{n} s_{r_j,k_j,y}\right)]
对于团型多向空间连接,有以下两个引理:
-
引理 3
:将公式转换为统计项后,结果表达式是一个加法项,由 (n^2) 个不同的乘法项组成,每个乘法项由 (n) 个统计项组成。
-
引理 4
:若 (Q) 是表示 (n) 个关系的团型多向空间连接的查询图,(r_i) 是 (Q) 中表示关系的节点,则每个 (r_i) 需要 4 个统计量((N_{r_i})、(L_{r_i x})、(L_{r_i y}) 和 (L_{r_i xy}))来估计 (Q) 的结果大小。
4. 实验
4.1 生成数据集
- 均匀放置和均匀面积数据 :生成多个包含 10000 个矩形的数据集,矩形放置均匀分布,x 长度和 y 长度也均匀分布。使用这些数据集进行树型和团型多向空间连接查询的结果估计,并通过 M 路 R 树连接(MRJ)获取实际执行结果。
- 均匀放置和面积偏斜数据 :从实际数据集中选择道路数据,重新分布生成均匀放置和面积偏斜的数据集。实验结果表明,使用所有统计量(Est All)的估计效果较好,而仅使用矩形数量和平均长度(Est Avg)的估计在关系数量增加时与实际结果差异较大,尤其是在星型查询中。
4.2 实际数据集
使用来自美国人口普查局的 TIGER/Line 数据中的加利福尼亚州 7 个县的道路段数据。随机提取 6 个县的数据组合,进行多向连接实验。由于数据放置分布高度偏斜,使用等面积直方图进行估计。定义误差率公式为:
[error\ rate = \frac{|estimation\ result - real\ result|}{min(estimation\ result, real\ result)} \times 100]
实验结果显示,使用所有统计量的估计(All X
Y)在大多数情况下误差率合理,而仅使用平均长度的估计(Avg X
Y)误差率较高,尤其是在星型查询中。在团型查询中,估计结果较好,因为团型查询所需的统计量较少。
实验结果表格
| 查询类型 | 统计方式 | 3 关系 | 4 关系 | 5 关系 | 6 关系 |
|---|---|---|---|---|---|
| 链型查询 | All 50*25 | 1.20E+6 | 1.19E+6 | 1.81E+7 | 353955 |
| 链型查询 | Avg 50*25 | 91510 | 1.3E+3 | 59259 | 2.6E+3 |
| 星型查询 | All 50*25 | 265486 | 1.79E+7 | 8.42E+8 | 1.35E+8 |
| 星型查询 | Avg 50*25 | 40188 | 27610 | 17771 | 3400 |
| 团型查询 | All 50*25 | 40489 | 18022 | 4298 | 205 |
| 团型查询 | Avg 50*25 | 26226 | 9449 | 3423 | 57 |
实验流程 mermaid 图
graph LR
A[生成数据集] --> B[进行树型和团型查询估计]
B --> C[获取实际执行结果]
D[选择实际数据集] --> E[重新分布数据]
E --> F[进行多向连接实验]
F --> G[计算误差率]
综上所述,在多向空间连接结果大小估计中,考虑所有统计量的方法通常能获得更准确的结果,尤其是在处理面积偏斜和放置偏斜的数据时。不同类型的查询图(树型和团型)对统计量的需求不同,在实际应用中需要根据具体情况选择合适的估计方法。
5. 结论分析与应用建议
5.1 公式局限性与扩展
以往在均匀放置分布假设下的多向空间连接结果大小估计公式,如树型的 [Size(Q) = \sum_{k = 1}^{n} N_{r_k} \times \sum_{\forall i,j:Q(r_i,r_j)=1} (\overline{s} {r_i,x} + \overline{s} {r_j,x}) \times (\overline{s} {r_i,y} + \overline{s} {r_j,y})] 和团型的 [Size(Q) = \sum_{k = 1}^{n} N_{r_k} \times \left(\sum_{i = 1}^{n} \sum_{j = 1,j \neq i}^{n} \overline{s} {r_j,x}\right) \times \left(\sum {i = 1}^{n} \sum_{j = 1,j \neq i}^{n} \overline{s} {r_j,y}\right)] ,存在明显局限性。树型公式仅在每个关系中所有数据的 x 长度和 y 长度相等时成立,团型公式则要求 x 长度和 y 长度分布相互独立。而扩展后的公式 [Size(Q) = \sum {k_1 = 1}^{N_{r_1}} \cdots \sum_{k_n = 1}^{N_{r_n}} \prod_{\forall i,j:Q(r_i,r_j)=1} (s_{r_i,k_i,x} + s_{r_j,k_j,x}) \times (s_{r_i,k_i,y} + s_{r_j,k_j,y})] (树型)和 [Size(Q) = \sum_{k_1 = 1}^{N_{r_1}} \cdots \sum_{k_n = 1}^{N_{r_n}} \left(\sum_{i = 1}^{n} \sum_{j = 1,j \neq i}^{n} s_{r_j,k_j,x}\right) \times \left(\sum_{i = 1}^{n} \sum_{j = 1,j \neq i}^{n} s_{r_j,k_j,y}\right)] (团型),适用于任意面积的空间数据。
5.2 统计项分析
将扩展后的公式转换为统计项后,树型和团型查询图的复杂度和所需统计量有很大差异。树型多向空间连接的复杂度和所需统计量远高于 2 向连接和团型多向连接。根据引理,树型查询需要 ((\delta_{r_i} + 1)^2) 个统计量,而团型查询每个关系仅需 4 个统计量。例如在树型 3 向连接中,推导后的公式 [Size(Q_3)] 包含众多统计项,计算复杂。
5.3 实验结果总结
实验结果表明,使用扩展公式和所有统计量(Est All)的估计方法在大多数情况下能提供更准确的结果。在生成数据集实验中,对于链型和星型查询,Est All 能较好地估计查询结果,而 Est Avg 在关系数量增加时与实际结果差异较大,星型查询的差异更为明显。在实际数据集实验中,由于数据放置分布高度偏斜,使用等面积直方图进行估计,All X Y 的误差率相对合理,而 Avg X Y 误差率较高。团型查询的估计结果较好,因为其所需统计量较少。
5.4 应用建议
- 数据特征判断 :在进行多向空间连接结果大小估计前,先分析数据的特征,如 x 长度和 y 长度的分布是否独立、数据放置是否均匀、面积是否偏斜等。
- 查询图类型选择 :根据查询需求和数据特征选择合适的查询图类型。如果数据特征符合简单公式的假设条件,可使用简化公式;否则,应使用扩展公式和所有统计量进行估计。
- 统计量使用 :对于树型查询,尤其是星型拓扑,要准备足够的统计量以提高估计准确性;对于团型查询,由于所需统计量较少,可相对简化估计过程。
- 误差控制 :在实际应用中,可根据误差率要求选择合适的估计方法。如果对误差率要求较高,应优先考虑使用所有统计量的估计方法。
应用建议列表
- 分析数据特征,包括长度分布、放置均匀性和面积偏斜情况。
- 根据数据特征和查询需求选择查询图类型。
- 树型查询准备足够统计量,团型查询简化估计过程。
- 根据误差率要求选择合适的估计方法。
不同查询图类型统计量需求表格
| 查询图类型 | 所需统计量 | 复杂度 |
|---|---|---|
| 树型查询 | ((\delta_{r_i} + 1)^2) 个统计量 | 高 |
| 团型查询 | 每个关系 4 个统计量((N_{r_i})、(L_{r_i x})、(L_{r_i y}) 和 (L_{r_i xy})) | 低 |
应用流程 mermaid 图
graph LR
A[分析数据特征] --> B{选择查询图类型}
B -- 树型 --> C[准备足够统计量]
B -- 团型 --> D[简化估计过程]
C --> E[进行估计]
D --> E
E --> F[计算误差率]
F -- 误差率高 --> G[调整估计方法]
F -- 误差率合理 --> H[应用结果]
6. 未来展望
虽然本次研究在多向空间连接结果大小估计方面取得了一定成果,但仍有一些方面值得进一步探索。
-
高维空间扩展
:目前研究主要集中在二维空间的矩形数据,未来可将结果扩展到 n 维空间,以适应更复杂的空间数据处理需求。
-
数据分布模型优化
:对于 x 长度和 y 长度的分布,可研究更准确的分布模型,减少对独立性和均匀性的假设,提高估计的准确性。
-
算法复杂度优化
:树型多向空间连接的复杂度较高,可探索更高效的算法和数据结构,降低计算复杂度,提高估计效率。
未来的研究将围绕这些方向展开,不断完善多向空间连接结果大小估计的理论和方法,为空间数据处理提供更有力的支持。
超级会员免费看
3605

被折叠的 条评论
为什么被折叠?



