论文部分内容阅读
近来,Skvline计算在集中式数据库、分布式数据库、数据流及分类属性数据集上的良好应用前景,使其成为当前数据库界研究的重点和热点之一,受到了学术界和工业界的广泛关注。作为一种广泛应用于多标准决策系统、数据挖掘可视化、电子商务、用户偏好查询及约束决策、城市导航系统、智能防御系统、以及地理信息系统等领域的新型数据挖掘技术,该课题的研究迄今为止都非常活跃。虽然学术界已经出现了不少有关该课题的研究成果,但在实际中,有两个主要因素会导致产生很大的Skyline点集,从而使得Skyline查询的应用受到影响:1)反相关数据集-“反相关诅咒”;2)多维数据集-“高维诅咒”。
在Skyline点集变得非常大的情况下,用户在过大的信息量面前经常不知所措,他们真正感兴趣的仅仅只有一小部分Skyline点。研究人员针对这一缺陷提出了很多非传统的Skyline概念,从而返回较小的更有用的Skyline点集。然而,计算这些少量的Skyline点也经常需要先计算全部的传统Skyline点集,因此解决此类问题的有效算法仍然值得探求。
本文在对现有技术之不足进行了改进的基础上,进一步解决了一些新型重要的实际应用带来的对Skyline查询处理的挑战。本文不仅对面向海量数据的集中式Skyline查询处理算法进行了系统地研究,并且研究了并行环境下的Skyline查询处理方法。主要成果概括为以下三个方面:
(1)基于低维大规模Skyline点的计算现有的Skyline算法在Skyline点集很大的情况下,并不能在合理的时间内终止,执行性能较差。通常当数据集是反相关的情况时,即便维度很低,Skyline点集也会变得非常大。本文提出在低维上快速计算大规模Skyline点集的新方法,在二维上的Skyline计算仅仅需要线性时间,算法扩展到三维,通过避免不必要的点之间控制关系检查,算法的性能依然很好。尽管本文提出的算法对Skyline查询的维数有限制,但是,当Skyline点集规模较大时,本文的算法性能比现有的算法要好,而且可以很容易在DBMS里实现,同时支持外部排序和BST-索引。
(2)抽取高维上感兴趣的Skyline点集通常来说,一个点不可能在所有的维度都很“好”,所以一旦数据集的维度略微增加,Skyline点将会剧烈地增长。当维度非常高时,几乎所有的点都是Skyline点。因此,在高维空间上抽取感兴趣的Skyline点变得尤为重要。从经验来看,仅仅相互比较每两个点来决定某个点是否感兴趣(识别Skyline的方法),这样的实际应用很少,更多的场景是研究它在每一维上究竟有多“好”。基于该思路,本文提出一个新的称之为Core Skyline的概念。Core Skyline包含所有从Skyline中抽取的感兴趣的点集。这个工作和现有工作的不同在于考虑了点之间的垂直关系。为了快速地识别Ckp,本文提出一个有效的树结构,叫作多链接B-树(LMB)。利用LMB,本文提出的算法可以在几秒钟从一个包含100,000个点的15维数据集中识别出Ckp。
(3)基于超平面分区的并行Skyline查询处理Skyline查询的计算代价往往很大,所以考虑用并行处理的方法,充分利用多处理器来加快查询处理的速度。一种常用的格分区方法的主要优点是当查询以部分串行方式执行时,一些数据空间分区不需要被检查。但是,对于Skyline查询的并行处理,当所有的分区都要被同时检查时,格分区的性能下降。本文提出用超平面投影的方法来获得有用的数据集分区,然后进行并行Skyline查询处理的策略。通过详尽的实验,本文说明这个策略非常适合并行非共享结构的Skyline查询处理,且比格分区和超球面分区的方法有明显优势。
综上所述,本文针对Skyline查询中存在的几类问题,分别从概念和算法上给出了一系列有效的解决方案,并进行了实验验证。所提出的在低维数据集上破解“反相关诅咒”的算法,能在线性时间内计算反相关导致的大规模Skyline点集;高效抽取感兴趣的Skyline点的计算方法,是对“高维诅咒”下的Skyline查询技术的有效补充;基于超平面投影的PPPS算法,从另一种角度解决了在并行环境下Skyline问题。理论分析和实验结果表明,文中所述的各类Skyline算法,在时间、空间复杂度方面相比同类算法具有明显的优势,特别是功能方面(如结果生成渐进性、用户友好性等)也大大加强。因此,它们非常适合大规模海量数据集上的在线Skyline处理。基于以上对Skyline查询问题的研究,本文还介绍了一个交互式的个人决策支持系统——PDA(Personal Decision Assistant),该系统的目的是方便用户获取所需的最优决策。