基于索引的非完整数据库Skyline查询方法技术

技术编号:24168601 阅读:35 留言:0更新日期:2020-05-16 02:13
本发明专利技术公开了一种基于索引的非完整数据库Skyline查询方法,该方法为:判断针对用户输入的表R以及d个属性是否已经建立Skyline索引,如果有将Skyline索引中Skyline概率值排名前K的数据项作为搜索结果返回给用户;如果没有则根据用户的需求判断是否需要建立Skyline索引,如果不需要,则暴力索引;如果需要,则基于表R中的每个数据项的Skyline概率值以及输入的属性建立Skyline索引;并将Skyline索引中Skyline概率值排名前K的数据项作为搜索结果返回给用户。本发明专利技术充分考虑了非完整数据库的特殊性,增加查询的可用性,通过建立索引结构减少了不必要的Skyline概率计算,满足了用户的实时查询需求。

【技术实现步骤摘要】
基于索引的非完整数据库Skyline查询方法
本专利技术属于数据库领域,尤其涉及一种基于索引的非完整数据库Skyline查询方法。
技术介绍
近些年来,非完整数据库中的Skyline查询受到越来越多的关注。然而传统非完整数据库中的Skyline定义无法很好地为用户提供有效参考。概率Skyline有效地解决了非完整数据库中的Skyline查询问题,但由于牵涉大量的概率计算,传统概率Skyline查询效率低下,无法满足用户实时查询的需求。
技术实现思路
专利技术目的:为解决现有技术存在效率低等问题,本专利技术提供一种基于索引的非完整数据库Skyline查询方法。技术方案:本专利技术提供一种基于索引的非完整数据库Skyline查询方法,该方法用于实现用户在数据库中的表R中基于d个属性进行Skyline查询,具体包括如下步骤:步骤1:在数据库中定位到表R;步骤2:判断针对表R以及d个属性是否已经建立Skyline索引,如果是则转步骤4;若果没有则转步骤3;步骤3:根据用户自身需求,若用户不需要建立索引本文档来自技高网...

【技术保护点】
1.基于索引的非完整数据库Skyline查询方法,其特征在于,用于实现用户在数据库中的表R中基于d个属性进行Skyline查询,所述方法具体包括如下步骤:/n步骤1:在数据库中定位到表R;/n步骤2:判断针对表R以及d个属性是否已经建立Skyline索引,如果是则转步骤4;若果没有则转步骤3;/n步骤3:根据用户自身需求,若用户不需要建立索引则进行暴力索引,如果用户需要建立索引,则基于表R中的每个数据项的Skyline概率值以及d个属性建立Skyline索引,并转步骤4;/n步骤4:将Skyline索引中Skyline概率值排名前K的数据项作为搜索结果返回给用户。/n

【技术特征摘要】
1.基于索引的非完整数据库Skyline查询方法,其特征在于,用于实现用户在数据库中的表R中基于d个属性进行Skyline查询,所述方法具体包括如下步骤:
步骤1:在数据库中定位到表R;
步骤2:判断针对表R以及d个属性是否已经建立Skyline索引,如果是则转步骤4;若果没有则转步骤3;
步骤3:根据用户自身需求,若用户不需要建立索引则进行暴力索引,如果用户需要建立索引,则基于表R中的每个数据项的Skyline概率值以及d个属性建立Skyline索引,并转步骤4;
步骤4:将Skyline索引中Skyline概率值排名前K的数据项作为搜索结果返回给用户。


2.根据权利要求1所述的基于索引的非完整数据库Skyline查询方法,其特征在于,所述步骤3中,每个数据项的Skyline概率值的计算方法如下所示:
根据d个属性对应建立d维空间,第i维空间上的属性为第i个属性,针对表R中的任意两个数据项p和q,计算q支配p的概率为:



其中q(i),p(i)为数据项p、q的第i维空间上的属性的属性值,E(p)为与p完全相等的数据项的集合,所述完全相等为两个数据项之间未缺失属性值的相同属性的属性值相同,缺失属性值的相同属性所在的维度相同;
对于表R中的所有数据,其中的数据项p的Skyline概率值为:
P(p)=∏q∈R-p(1-P(q>p))。


3.根据权利要求1所述的基于索引的非完整数据库Skyline查询方法,其特征在于,所述步骤3中基于表R中的每个数据项的Skyline概率值以及d个属性建立Skyline索引,所述Skyline索引包括SL-map索引,建立SL-map索引的具体方法为:
步骤3.1:初始化map的table数组,数组的大小n为表R中数据项总数乘以4/3;
步骤3.2:针对每个数据项,基于其存储地址计算其hash值;
步骤3.3:将每个数据项的hash值对n取模,得到该数据项在数组中的位置,并将该数据项插入该数组的相应位置的链表中,并将存放该数据项的skyline概率值和存储地址的结点插入至链表中;
步骤3.4:将所有结点按照skyline概率值由大到小的顺序插入至跳表中,得到跳表A,并更新跳表A的指针。


4.根据权利要求3所述的基于索引的非完整数据库Skyline查询方法,其特征在于,所述步骤4的具体方法为:根据跳表A中skyline概率值排名前K的结点,获取其中存放的K个存储地址,根据该K个存储地址在SL-map索引中找到K个相应的数据项,并将该K个数据项按照skyline概率值由大到小的顺序作为检索结果返回给用户。


5.根据权利要求3所述的基于索引的非完整数据库Skyline查询方法,其特征在于,所述步骤3中建立的Skyline索引还包括SL跳表索引,该索引用于SL-map索引的更新,具体SL跳表索引的建立方法为...

【专利技术属性】
技术研发人员:秦小麟鲍斌国李星罗张彤陈骏岭
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1