一种多子空间Skyline查询计算方法

文档序号:9288418阅读:597来源:国知局
一种多子空间Skyline查询计算方法
【技术领域】
[0001] 本发明公开了一种多子空间Skyline查询计算方法,具体涉及一种用于计算数据 库系统中同时存在的、若干个子空间上的Skyline查询的查询计算方法,属于计算机领域 中数据管理与查询技术领域。
【背景技术】
[0002] 近年来,Skyline计算及其计算方法得到了众多研究者的关注。主要因为Skyline 查询结果在很多应用中都有着非常重要的作用,例如多目标决策,数据挖掘及可视化,以及 用户偏好查询等。数据库领域最初的Skyline查询研究主要集中在全空间Skyline查询, 而随着数据库中的数据呈高维海量的趋势发展,在全空间上所求出的极大Skyline结果变 得毫无意义。在许多场景中,用户不一定对数据集的所有维度都感兴趣,很可能只关心全部 维度中的某几个维度。因此,有了子空间Skyline的概念,例如,航班信息数据库包含价格、 起飞时间、历时、经停站等属性,某用户要查找一个从北京到南京的航班,他要求价格便宜 并且历时较短,则他发出的Skyline查询就是在子空间(价格和历时)上的Skyline查询。
[0003] 传统的子空间Skyline算法主要集中于对某一特定子空间的查询和对全部子空 间的查询。而在实际应用中,用户往往有从多角度审视数据集的需求。因此,大多数情况下 用户并非关注某一特定子空间的Skyline结果,同时,全部子空间上的Skyline结果对大多 用户并无太大意义。用户通常会根据自身的兴趣点关注不同子空间的组合,主要可以概括 为以下两种情况:
[0004] 1.某一用户同时关注一个数据集的多个不同维度的组合,例如,足球队员的数据 集包括:(速度、体能、射门精度、抢断、力量)五个维度。足球教练为了掌握球员的状况,对 于前锋,教练可能关注速度以及射门精度两个维度的组合,对于后卫教练则可能关心他的 抢断及力量两个维度的组合;
[0005] 2.多个用户分别关心一个数据集的不同组合,例如,饭店数据集包括:(距离、价 位、服务态度、餐厅环境、菜码、口味)六个维度。几个人相约一同聚餐,甲关心饭店的位置 和价位两个维度的组合,乙关心菜的尺码以及口味两个维度的组合,丙关心服务员的服务 态度以及餐厅环境两个维度的组合。
[0006] 上述问题可以概括为:对于一个数据集,系统中同时存在多个不同维度组合的子 空间Skyline查询。将其称之为多子空间Skyline查询问题,目前的有关子空间Skyline 的算法大多都是集中在某一特定子空间或者全部子空间,因此在解决任意多个子空间 Sky1ine查询问题时效率底下。本发明专利关注如何高效的同时计算多个子空间上的 Skyline查询,提供了一种计算多子空间Skyline查询的算法。主要概括如下:首先,基于 Skycube的定义,提出子空间立方体群(SubspaceSkycubeGroup,SSG)概念,并设计出由 子空间集合生成子空间立方体群结构的方法。之后,设计了子空间候选集集合,充分利用子 空间立方体结构中各子空间Skyline结果的共享关系来提高多子空间Skyline查询处理的 效率。基于子空间立方体群结构,设计了一种高效求解多子空间Skyline查询的方法。

【发明内容】

[0007] 本发明从现实应用中存在的用户从多角度审视一个数据集的问题出发,进而发现 了在一个系统中,对于一个数据集S,往往会同时存在多个子空间Skyline查询的需求,并 称之为多子空间Skyline查询问题。为了克服传统Skyline查询计算方法在解决该问题时 的不足,本发明专利提供了一种基于子空间立方体群结构的多子空间Skyline查询计算方 法,该方法可以高效的计算数据库系统中同时存在的多个子空间Skyline查询,满足用户 的查询需求。
[0008] 本发明专利为解决其技术问题采用如下技术方案:
[0009] -种多子空间Skyline查询计算方法,其特征在于,包括以下步骤:
[0010] 步骤一、首先检测数据库系统中存在的多个子空间Skyline查询,并将其整合成 集合〇,之后将该子空间集合〇构造成子空间立方体群结构,以供后续计算。
[0011] 步骤二、对数据库系统中的数据集进行预处理,分别在每个维度上对数据集进行 排序,形成若干个新的数据序列。
[0012] 步骤三、计算子空间立方体群结构的过程中,对每个子空间生成子空间候选集,通 过该候选集,直接排除了一定为子空间Skyline结果的点,提高了算法效率。
[0013] 步骤四、采用求和过滤方法对数据库系统中的数据集进行裁剪和过滤,直接将一 定不属于子空间Skyline结果的点排除。
[0014] 步骤五、采用最大值裁剪方法,无法支配其他数据点的数据全部裁剪,避免多余的 支配关系判定。
[0015] 如所述步骤一中,检测系统中存在的所有子空间,形成集合0,将0作为输入,经过 createSSG算法,将集合0中的所有子空间,构造成子空间立方体群SSG。首先,将SSG初 始化为空,然后对于每个子空间,先判断以其为顶点的子空间立方体(SSC)是否已经属于 SSG,如果不属于,则对该子空间建立SSC,并加入SSG,否则,处理下一个子空间。
[0016] 如所述步骤二中,对数据集进行预处理,将数据集分别在子空间立方体群第一层 包含的所有维度上进行排序,从而形成若干个数据序列。
[0017] 如所述步骤三中,对于一个当前正在被计算的子空间V,其候选集的计算方法为: 先对V所有孩子子空间结果集求并,之后排除所有孩子子空间结果集中在V上被其它数据 点支配的数据点,最终形成的数据点的集合则为。子空间V的候选集。这个候选集有以下 几个作用:第一,实现了子空间Skyline结果的共享,保证MSSCA算法并非独立的求子空间 立方体群中的所有子空间Skyline结果,上层的求解建立在下层已经求出的结果基础上; 第二,对于每个子空间Skyline查询的计算,减小了数据点的输入量;第三,由于候选集中 的数据点一定属于当前计算子空间V的Skyline结果,因此有效的避免了对这一部分数据 点的支配判断过程,很大程度的减少了比较次数。因此子空间候选集,有效的提高了算法效 率。
[0018] 如所述步骤四中,在计算某一子空间V的Skyline结果集skyj^过程中,不可避免 一个支配关系判定的过程,本发明采用求和过滤方法来对这一过程进行优化,这个过滤条 件执行的时间复杂度为〇(1),若满足该条件,则不必对数据点P进行支配关系判定。显然, 通过该方法,在算法的执行过程中,时间复杂度为0(d)的支配关系判定过程次数将大大减 少。
[0019] 该过滤条件是利用数据点在子空间V上的维度值的和进行过滤的,对于某一数据 点P,P在子空间V的过滤器设计为:
[0020] '(P) = Z
[0021] 上述公式表明,p点在V上的过滤值为Fv (p),该值等于p点在V上所有维度值的 和。通过这个过滤器,很容易初步判定两个数据点p和q的支配关系,如果Fv(p) <Fv(q), 显然表明q在V空间上不可能支配p,因为在V上,q至少有一个维度上的值大于p。
[0022] 算法的执行过程中,两处利用这个过滤值来提高效率。首先,计算过程中所有子空 间Skyline结果集中的数据点均按照过滤值从小到大进行排序;此外,在计算某一子空间V 的Skyline结果skyjt,判定数据点p与当前sky¥中数据点q的支配关系之前进行过滤条 件测试,若Fv (p) <Fv (q),则显然成^中数据点q无法支配p,并且由于skyv中数据点按过 滤值非递减排序,所以q之后的点也无法支配P点,则P点被过滤掉,直接放入skyv中即可; 若Fv(p) >Fv(q),才需要对数据点p和q进行逐个维度上的数值比较以确定支配关系。
[0023] 如所述步骤五中,采用最大值裁剪方法,即数据点p在子空间V上的最小值若大于 目前skyv中的最大值,则显然数据点p会被sky¥中的某一点支配,因此这些数据点可以直 接被删除,利用该方法避免了一大部分数据点的支配关系判定过程。
[0024] 本发明采用以上技术方案与现有技术相比,具有以下有益效果:
[0025] (1)本发明从现实应用中存在的用户从多角度审视一个数据集的问题出发,进而 提出了多子空间Skyline查询问题。在此基础上,本发明提供了一种基于子空间立方体群 结构的多子空间Skyline查询计算方法,该方法高效的计算数据库系统中同时存在的多个 子空间Skyline查询。
[0026] (2)本发明提出了一种子空间立方体群结构,有效的将系统中的多个子空间组织 起来,形成了便于MSSCA算法进行计算的组织结构,并利用该结构中各子空间Skyline结果 的共享关系来提高多子空间Skyline查询处理的效率。
[0027] (3)基于子空间立方体群结构,本发明提供了一种高效求解多子空间Skyline查 询的算法一MSSCA算法。算法的实施过程中,设计并采用了子空间候选集、求和过滤以及最 大值过滤三种剪枝过滤方法,有效降低了数据比较次数,提高了效率。
【附图说明】
[0028] 图1是本发明的整体结构图。
[0029] 图2是子空间立方体群生成过程示意图。
[0030] 图3是四维数据集的子空间立方体群结构示例图。
[0031] 图4是子空间候选集生成过程的流程图。
[0032] 图5是多子空间Skyline查询计算方法流程图。
【具体实施方式】
[0033]为了解决数据库系统中多子空间Skyline查询的问题,本发明提供了一种高效的 多子空间Skyline查询算法,其整体流程如图1所示。
[0034] 以下结合附图和实施例对本发明的技术方案做进一步详
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1