1.一种并行的相互子空间Skyline查询方法,其特征在于,该方法的步骤如下:+
步骤1)对所有数据对象,根据每一个维度i的坐标值建立一棵名为BDi‑tree的B树索引,以便于根据距离查询对象的远近顺序访问数据对象第i维的坐标值;
步骤2)根据用户参考点qu的起始位置并行地遍历BDi‑tree索引,遍历遵循距离参考点越近越优先以及各维度同步的原则;
步骤3)计算用户参考点的动态的子空间Skyline,维护其对象集合S1,计算过程采用虚拟点VP来避免冗余扫描;
步骤4)根据反向参考点qr的起始位置并行地再次遍历BDi‑tree索引,遍历策略与上述的步骤2)相同;
步骤5)计算反向参考点的反向子空间Skyline,维护对象集合S2,计算过程先求全局子空间的Skyline对象,再根据修剪策略消除非反向子空间Skyline的数据对象;
步骤6)计算集合S1和集合S2的交集,即从集合S1中将非反向子空间Skyline对象清除掉,获得更新的相互子空间Skyline结果列表。
2.根据权利要求1所述的一种并行的相互子空间Skyline查询方法,其特征在于:所述的步骤2)中的遍历策略指的是访问索引中节点的先后顺序以及多个维度访问时如何控制访问步进;该策略分三种情况考虑:
1)在同一个维度上,当未被访问的左边的节点与查询点的距离比未被访问的右边节点与查询点的距离更小时,先访问左边的节点,否则访问右边的节点;
2)在同一个维度上,当未被访问的左边的节点与查询点的距离等于未被访问的右边节点与查询点的距离时,左右两边的节点分别访问;
3)在不同的维度上,根据未被访问的节点与查询点距离的远近升序访问;每次访问后计算未被访问节点与查询点的L1距离;当所有维度中,有未被访问节点与查询点的距离最小时,该维度上的节点先被访问,直到未被访问节点与查询点的距离在所有维度中达到最大时为止。
3.根据权利要求1所述的一种并行的相互子空间Skyline查询方法,其特征在于:所述的步骤3)中的计算参考点qu的动态子空间Skyline的步骤包括:
1)根据参考对象qu维度i的坐标值qu[i],并行地获得其在每个维度的初始访问位置,即与qu[i]坐标值最接近的BDi‑tree上的坐标值位置;
2)根据索引遍历策略并行地获得一组访问节点,并保存在列表中,计算每个维度的虚拟点VP;
3)针对列表中的当前组节点,根据动态skyline方法计算其局部的动态子空间Skyline点;
4)运用虚拟点测试和动态Skyline方法,在局部的动态子空间Skyline点上,并行地计算动态的子空间Skyline,维护参考点的动态子空间Skyline集合;
5)利用局部的动态子空间Skyline点,并行地判断参考点qu的动态子空间Skyline是否结束;如果满足指定的条件,则终止参考点qu的动态子空间Skyline计算,获得其结果集合S1。
4.根据权利要求1所述的一种并行的相互子空间Skyline查询方法,其特征在于:所述的步骤5)中的计算参考点qr的反向子空间Skyline的步骤包括:
1)根据反向参考对象qr维度i的坐标值qr[i],并行地获得其在每个维度的初始访问位置,即与qr[i]坐标值最接近的BDi‑tree上的坐标值位置;
2)根据索引遍历策略并行地获得一组访问节点,并分发到各个分区的列表中,分区根据参考点坐标和当前数据点坐标的相对位置关系得出;
3)处理每个分区中的数据对象,获得反向参考点qr的反向子空间中的Skyline对象。
5.根据权利要求4所述的一种并行的相互子空间Skyline查询方法,其特征在于:所述步骤3)中处理每个分区中的数据对象,获得反向参考点qr的反向子空间中的Skyline对象,包括四步处理:
a)针对每个分区的数据对象,计算其全局的子空间Skyline对象;
b)针对全局的子空间Skyline对象,如果其仅被扫描一次,则通过动态子空间的Skyline集合S1中的对象,根据指定的条件判断其是否是参考点qr的反向子空间中的Skyline对象;
c)针对全局的子空间Skyline对象,如果在全部子空间的所有维度中被扫描一次,则终止反向子空间Skyline计算;
d)维护参考点qr的反向子空间中的Skyline对象,获得其结果集合S2。
6.根据权利要求1所述的一种并行的相互子空间Skyline查询方法,其特征在于:所述的步骤2)中的用户参考点qu和步骤4)中的反向参考点qr是同一个数据对象,处于同一个子空间中。
7.根据权利要求1所述的一种并行的相互子空间Skyline查询方法,其特征在于:所述的步骤2)中的用户参考点qu和步骤4)中的反向参考点qr是不同的数据对象,处于同一个子空间中。
8.根据权利要求1所述的一种并行的相互子空间Skyline查询方法,其特征在于:所述的步骤2)中的用户参考点qu和步骤4)中的反向参考点qr是不同的数据对象,处于不同的子空间中。
9.根据权利要求1或4所述的一种并行的相互子空间Skyline查询方法,其特征在于:所述的步骤5)中条件是测试当前获得的动态子空间Skyline集合中的对象与虚拟点VP的控制关系,包括两种情况:
1)存在一个动态子空间Skyline集合中的数据对象r与其对应分区的虚拟点VP相等;
2)存在数据对象r相对用户参考点qu控制其对应分区的虚拟点VP。
10.根据权利要求5所述的一种并行的相互子空间Skyline查询方法,其特征在于:所述的步骤3)中b)步的条件是:判断当前数据对象是否是反向参考点的反向子空间Skyline对象,条件要求用户参考点子空间中来自S1中的任意数据对象在任意维度相对于反向参考点都不“半控制”反向参考点的全局子空间Skyline对象;如果条件为真,则该动态子空间Skyline数据对象被设置标记,表明不是相互子空间的Skyline对象。