1.一种基于众包的skyline‑join查询处理方法,其特征在于,其步骤为:
1)在数据不缺失的数据表内对数据进行过滤,根据数据属性,过滤掉各个属性内被支配的数据元组;
2)针对数据属性值缺失的数据表,在不同的属性上,先根据数据属性值缺失的数据表的已知属性建立偏好树局部索引,根据局部索引对不同属性内的元组进行过滤;
21)构建局部索引T2
22)局部过滤算法
查询处理从偏好树的根节点开始,通过含属性缺失的数据表已知属性建的偏好关系进行众包查询,并对偏好树进行更新,返回查询结果,利用众包的过滤步骤如下:
22‑a)判断元组是否全部被遍历过,若是,算法结束,否则,判断这一轮是否还有可遍历的元组;
22‑b1)若这一轮是没有可遍历的元组,返回步骤22‑a);
22‑b2)若有可遍历的元组,则判断元组是否在第一层;
22‑b2‑c1)若元组是第一层元组,则保留T2中,返回步骤22‑a);
22‑b2‑c2)若元组不是第一层元组,则判断元组是否只有一个父节点;
22‑c2‑d1)如果只有一个父节点,则在T2中查询在缺失维度上偏好关系是否存在;
22‑c2‑d2)如果存在多个父节点,则查询父节点在缺失维度上支配关系是否存在;
22‑d1‑e1)如果步骤22‑c2‑d1)中缺失维度上偏好关系存在,则判断未知维度和已知维度的支配关系是否一致;
22‑d1‑e2)如果步骤22‑c2‑d1)中缺失维度上偏好关系不存在,则在元组间的未知属性上众包并更新T2,返回步骤22‑a);
22‑e1‑f1)如果22‑d1‑e1)中未知维度和已知维度的支配关系一致,则在T2上删除下层元组,返回步骤22‑a);
22‑e1‑f2)如果22‑e1‑f1)中未知维度和已知维度的支配关系一致,则将其保留在T2中,返回步骤22‑a);
22‑d2‑e1)如果22‑c2‑d2)中缺失维度上支配关系存在,则将在未知维度上被支配的父节点与维度之间的边断开,返回步骤22‑a);
22‑d2‑e2) 如果22‑c2‑d2)中缺失维度上支配关系不存在,则在父节点的缺失维度上众包,并更新T2,返回步骤22‑a);
3)根据步骤1)和步骤2)中数据不缺失的数据表和包含属性缺失的数据表的所有已知属性建立全局索引,在前两步的基础上进行全局过滤,返回最终结果。
2.根据权利要求1所述的一种基于众包的skyline‑join查询处理方法,其特征在于,其步骤为:所述的步骤3)中,具体方法为:
31)构建全局索引:在全局上建立偏好索引,根据步骤1)和步骤2)的返回结果,将两个表的元组按照相同的属性进行连接,并在数据不缺失的数据表和包含属性缺失的数据表的已知属性上建立skyline层次索引,即全局索引T3;
32)全局过滤算法:
查询处理从全局偏好树的根节点开始,通过完整数据表的已知属性和包含属性缺失的数据表的已知属性的偏好关系进行众包查询,并对偏好树进行更新,返回查询结果,利用众包的过滤步骤如下:
32‑a)判断元组是否全部被遍历过,若是算法结束,否则判断这一轮是否还有可遍历的元组;
32‑b1)若这一轮是没有可遍历的元组,返回步骤32‑a);
32‑b2)若还有可遍历的元组,判断元组是否在第一层,若元组在第一层,则保存在T3中;
否则判断元组是否只有一个父节点;
32‑c1)若有一个父节点,则查询父子间的属性是否一致;
32‑c2)若存在多个父节点,则判断父节点之间的属性是否相同;
32‑c1‑d1)若32‑c1)中父子间的属性一致,则保存在T3中,返回步骤32‑a);
32‑c1‑d2)若32‑c1)中父子间的属性不一致,查询链接之后的元组在未知属性上的支配关系是否存在;
32‑d2‑e1)若32‑c1‑d2)中元组在未知属性上的支配关系存在,判断未知维度和已知维度的支配关系是否一致;
32‑d2‑e2)若32‑c1‑d2)中元组在未知属性上的支配关系不存在,则众包并更新T3;
32‑f1‑e1)若32‑d2‑e1)中未知维度和已知维度的支配关系一致,将元组从T3中删除,返回步骤32‑a);
32‑f2‑e1)若32‑d2‑e1)中未知维度和已知维度的支配关系不一致,将元组保存在T3中,返回步骤32‑a);
32‑c2‑d1)若32‑c2)中父节点之间的属性相同,则判断父节点链接数据缺失表的元组是否相同;
32‑c2‑d2)若32‑c2)中父节点之间的属性不同,则在未知属性上众包并更新T3,返回步骤32‑a);
32‑c2‑d1‑e1)若32‑c2‑d1)中父节点链接数据缺失表的元组相同,在未知维度上被支配的父节点与维度断开,更新T3,返回步骤32‑b2);
32‑c2‑d1‑e2)若32‑c2‑d1)中父节点链接数据缺失表的元组不同,断掉在未知维度上较弱的一方与其之间的边即支配关系,更新T3,返回步骤32‑b2);
最终,在T3中的元组即为最终查新结果。