论文部分内容阅读
Skyline查询是数据库领域中的一项关键应用,可用于多标准优化决策应用、推荐系统、地理信息系统和大数据处理等应用当中。传统的Skyline单点问题在近几年已经被广泛研究。大量的研究工作关注于Skyline的高效计算及其一些衍生问题。这些工作都是假设属性值之间的偏好关系是确定的,不确定性只体现在数据上。因此,这些工作不能应用于分析基于不确定偏好关系的查询当中。此外,上述工作只是分析Skyline单点问题,因此上述工作不足以回答需要研究一组点而不是单点的查询。上述两个问题严重制约了Skyline查询的应用范围。在大数据环境下,查询是在各种各样的情况下发生的,扩展Skyline查询使其能够满足不同用户的需求具有非常大的研究意义。为了增强大数据时代中Skyline查询的应用范围,我们从两个方面扩展Skyline查询。(1)从确定偏好查询扩展到不确定偏好查询,(2)从单点Skyline查询扩展到Skyline团组查询。本文的主要贡献包括:1.基于不确定偏好关系的Skyline查询:本文研究了基于不确定偏好关系的Skyline查询的并行计算问题。目前的研究工作存在重大理论缺陷,所以目前研究工作中所提出的算法的正确性不能得到证明。我们首先分析现阶段的研究工作,并给出了一个详尽的理论分析,这个理论分析为基于不确定偏好的Skyline查询奠定了理论基础。基于不确定偏好的Skyline概率是通过容斥原理计算的,因此,计算量非常大的,尤其是在计算大数据集的Skyline的时候。我们提出了一个新颖的并行算法来计算给定元组的Skyline概率。并且,我们提出了添加和删除算法来处理动态环境中新元组加入和过期元组删除的情况。除此之外,我们还扩展了所提出的并行算法,使得我们的算法从每次计算一个给定元组的Skyline概率到一次计算数据集中所有元组的概率。实验结果表明我们的并行算法在使用16条并行进程情况下能够比当前的串行算法快10倍以上。2.Skyline团组的并行查询:本文研究了Skyline团组查询的并行计算问题。与传统的Skyline单点相比较,计算Skyline团组更加复杂而且计算量也更大。这种计算上的挑战促使我们设计出一种并行算法来计算Skyline团组。我们为并行算法设计了一个能够高效更新的数据结构,并且使用这个数据结构存储全局共享的Skyline层次。通过使用这个数据结构,我们能够最小化支配测试并且能够保持高吞吐量。基于这个数据结构我们并行计算数据集上的Skyline层次。基于Skyline层次的结果,我们设计了一个高效的并行算法计算Skyline团组。实验结果表明,我们的并行算法在使用16条线程并行的时候能够比当前的串行算法快10倍以上。3.基于Skyline团组的top-k支配查询:本文研究了基于Skyline团组的top-k支配查询。我们发现Skyline团组的输出可能是非常大的,这对于Skyline团组的应用范围来说是一个潜在的限制。我们系统地开展了一个针对Skyline团组的top-k查询研究,并且提出了一套高效的查询算法用来查询Skyline团组中的top-k团组。除此之外,我们还设计一个基于位图索引的算法来计算每个Skyline团组的分数,同时我们使用位图压缩技术来最小化位图索引的空间开销。实验结果表明我们的top-k算法比暴力算法快1-2个数量级。