We study full acyclic join queries with general join predicates that involve conjunctions and disjunctions of inequality. Specifically, we provide the first non-trivial algorithms for the problem of ranked enumeration where the query results are returned incrementally in an order dictated by a given ranking function. Our approach offers strong data-complexity guarantees in the standard RAM model of computation that are surprisingly close to those of equi-joins. Given an acyclic inequality join between tables of size $n$, it returns the join answers in order and guarantees that for every value of $k$, the $k$ top-ranked answers are returned in $\mathcal{O}(n \operatorname{polylog} n + k \operatorname{log} k)$ time. This matches the best-known guarantee for equi-joins up to a polylogarithmic factor. The key ingredient is an $\mathcal{O}(n \operatorname{polylog} n)$-size factorized representation of all query results that is constructed in a preprocessing step. As a side benefit, our techniques are also applicable to the easier task of unranked enumeration (i.e., without an output ordering) where we are able to return $k$ join results in $\mathcal{O}(n \operatorname{polylog} n + k)$. This guarantee is asymptotically superior to any known alternative for large values of $k$. In an experimental study, we show that our ranked enumeration approach is not only theoretically interesting, but also fast and memory-efficient in practice.
翻译:我们研究完全的自行车联结询问, 与通用的首端连接 。 具体地说, 我们为排名查点问题提供了第一个非三进制算法, 排序查点结果按照给定的排序函数的顺序递回。 我们的方法在标准 RAM 计算模型中提供了强大的数据复数保障, 与 equi-joins 相近, 令人惊讶。 鉴于 大小为 $ 的表格存在周期性不平等, 它返回连结答案, 并且保证对于美元的每一值来说, 美元位居前的首级解答在 $\ mathal{O} (n\polername{poly} nkolver) 中, 美元位居前的首级解算值在 $n\ mark 中返回 。 在前处理中, 最知名的递归回 也是最易的 。 在前处理中, 最易排序的递归回 。