首页> 中国专利> 基于PME图模型的一对一型PSJ聚集查询方法

基于PME图模型的一对一型PSJ聚集查询方法

摘要

本发明公开了一种基于PME图的一对一型PSJ聚集查询方法。具体步骤包括:1)首先利用PME图模型将一对一型PSJ建模为一个树状PME图;2)其次基于动态规划思想先计算出子树的聚集值概率分布,然后在子树的结果上计算出整棵树的聚集值概率分布;3)在计算概率分布的过程中,引入生成函数方法,并基于分治策略计算多个生成函数的乘积。本发明充分考虑一对一型PSJ的依赖关系,在PME图模型的基础上,解决了一对一型PSJ的COUNT查询和SUM查询问题,在数据库、联机分析处理以及数据仓库中具有广阔的应用前景。

著录项

  • 公开/公告号CN108121765A

    专利类型发明专利

  • 公开/公告日2018-06-05

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN201711208879.9

  • 发明设计人 陈岭;王俊凯;

    申请日2017-11-27

  • 分类号

  • 代理机构杭州天勤知识产权代理有限公司;

  • 代理人胡红娟

  • 地址 310013 浙江省杭州市西湖区余杭塘路866号

  • 入库时间 2023-06-19 05:35:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-17

    授权

    授权

  • 2018-06-29

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20171127

    实质审查的生效

  • 2018-06-05

    公开

    公开

说明书

技术领域

本发明涉及概率型相似性连接(Probabilistic Similarity Join,PSJ)的聚集查询领域,具体涉及基于概率互斥图(Probabilistic Mutual Exclusion Graphs,PME图)模型的一对一型PSJ聚集查询方法。

背景技术

连接聚集查询在数据库、联机分析处理以及数据仓库中应用广泛,此类查询通常先采用连接操作将多张关系表合并起来,然后再执行聚集运算。然而,由于信息时代数据爆炸式增长,数据本身的不确定性以及数据采集和集成过程中引入的不确定性,导致大量数据具有不完整性和模糊性。不确定性数据的存在常常使得多表之间无法连接,进而导致基于连接操作的聚集查询失败。

PSJ查询基于相似性度量函数,能够将相似的元组连接起来,有效解决了不确定性数据的连接问题。按照映射约束的不同,PSJ可分为三类:一对一型PSJ、一对多型PSJ和多对多型PSJ。然而,PSJ查询的原始结果通常为一组带概率的连接,这组连接并不满足映射约束。从这组PSJ连接中选取出部分连接,使其满足映射约束,则该部分连接同时出现的状态称为一个可能世界,该可能世界的概率为该部分连接同时出现的联合概率。在PSJ连接上执行聚集查询,实质上是对所有可能世界求聚集值。但是,PSJ连接的可能世界数量众多,基于PSJ的聚集查询面临挑战。

在PSJ上做聚集查询的方法较少。部分方法通过限制连接条数或者划定概率阈值来减少可能世界数量,但是这些方法不但丢失了大量信息,而且不考虑映射约束。有方法在考虑映射约束的情况下,基于动态规划思想解决了一对一型PSJ的聚集查询问题。但是该方法需逐个计算聚集值的概率,效率较低,因此在一对一型PSJ上做聚集查询的方法仍存在较大优化空间。

发明内容

本发明的目的是提供一种基于PME图模型的一对一型PSJ聚集查询方法,该方法能够在保证查询信息质量的前提下,极大地提升聚集值的计算效率,缩短一对一型PSJ聚集查询时间。

为实现上述目的,本发明提供的技术方案为:

本发明实施方式提供了一种基于PME图模型的一对一型PSJ聚集查询方法,包括以下步骤:

(1)基于PME图模型,将PSJ作为顶点,互斥关系作为边,构造树状PME图,所述树状PME图包括叶子极大团、中间极大团以及根极大图,基于聚集查询谓词条件为所述树状PME图的顶点添加属性;

(2)基于步骤(1),计算所述树状PME图的聚集值概率分布。

上述技术方案中,采用概率互斥图模型为PSJ建模,无需划定概率阈值,也无需限定连接条数,保全了数据之间的依赖关系,能够保证查询信息的质量。

为了更准确对PSJ构造树状PME图,在构造树状PME图前,采用Kruskal算法删除PSJ构成的二分图中的回路,构造所述PSJ的最大生成树,并基于所述最大生成树构造所述树状PME图。

所述基于聚集查询谓词条件为顶点添加属性包括:为满足COUNT查询谓词条件的顶点增加标志属性;为满足SUM查询谓词条件的顶点增加求和属性,具体的步骤为:

删除不满足聚集查询谓词条件的私有顶点,其他顶点都保留;

若聚集查询为COUNT查询,为剩余的所有顶点增加一个属性F,表示是否满足谓词条件,针对顶点v,若顶点v满足谓词条件,那么F=1,否则F=0;

若聚集查询为SUM查询,为剩余的所有顶点增加一个属性F,表示求和属性值的大小,针对顶点v,若顶点v满足谓词条件,那么F等于顶点v对应的PSJ连接的求和属性值,否则F=0。

F是新增的一个属性列,刚开始时没有值,需要被赋值。赋值的时候,根据对应的顶点是否满足谓词条件而定。如果满足,就将该顶点对应的PSJ连接的属性值拿过来,当作该顶点的F属性的值。

作为优选,当COUNT查询时,在为顶点添加属性后,还需要对属于同一极大团的私有顶点进行合并。每一个极大团中至多出现一个顶点,由于私有顶点不与其他极大团有联系,在计算COUNT值时,私有顶点vp_1出现,和私有顶点vp_2出现,他们的效果是一样的,COUNT值都为1,因此COUNT=1的概率为p(vp_1)+p(vp_2)。与其将它们的COUNT值计算出来后再将概率相加,不如提前将两个顶点看作一个顶点,将概率相加。这样能够加快计算效率,并且减少存储空间。

本发明中,采用动态规划思想先计算出子树的聚集值概率分布,然后在子树的结果上计算出整棵树的聚集值概率分布,这样子可以快速准确地计算聚集值,提升计算效率。

在计算所述树状PME图的聚集值概率分布时,按照自底向上的计算逻辑,分别计算叶子极大团、中间极大团以及根极大团的聚集值概率分布,此处的聚集值是指顶点出现的数量(COUNT)与顶点的属性值之和(SUM)。具体地,针对每一类极大团,其处理思路为:以该极大团为根,计算其子树的聚集值概率分布。为了计算方便,在该阶段引入生成函数方法,将概率分布表示为生成函数,具体地,所述步骤(2)包括:

(2-1)对于所述叶子极大团,在出现父亲顶点和不出现父亲顶点两种情况下,分别计算以所述叶子极大团为根的子树的聚集值条件概率分布;

(2-2)基于步骤(2-1),对于所述中间极大团,在出现父亲顶点和不出现父亲顶点两种情况下,分别计算以所述中间极大团为根的子树的聚集值条件概率分布;

(2-3)基于步骤(2-2),对于所述根极大团,在出现一个私有顶点和不出现私有顶点两种情况下,分别计算整棵树的聚集值条件概率分布;

(2-4)合并步骤(2-3)中两种情况下的聚集值条件概率分布的生成函数,得到整棵树的聚集值概率分布的总生成函数,然后将所述总生成函数还原为离散序列,得到整棵树的聚集值概率分布。

作为优选,所述步骤(2-1)包括:

当出现父亲顶点vf情况下,计算所述叶子极大团为根的子树Tleaf的聚集值条件概率分布的生成函数如公式(1)所示:

当不出现父亲顶点vf情况下,计算所述叶子极大团为根的子树Tleaf的聚集值条件概率分布的生成函数如公式(2)所示:

其中,F表示顶点的属性,p(vp_i)表示第i个私有顶点vp_i的概率,p(vf)表示父亲顶点vf的概率,m表示叶子极大团中私有顶点的总个数。

作为优选,所述步骤(2-2)包括:

当出现父亲顶点vf情况下,计算所述中间极大团为根的子树Tmia的聚集值条件概率分布的生成函数如公式(3)所示:

当不出现父亲顶点vf情况下,计算所述中间极大团为根的子树Tmid的聚集值条件概率分布的生成函数如公式(4)所示:

作为优选,所述步骤(2-3)包括:

当出现一个私有顶点vp_i(0<i≤m)时,计算整棵树T的聚集值条件概率分布的生成函数如公式(5)所示:

当不出现私有顶点情况下,情况的条件表示为其概率为计算整棵树T的聚集值条件概率分布的生成函数如公式(6)所示:

由于在中间极大团和根极大团的聚集值条件概率分布计算中,涉及大量生成函数相乘,如:为提高计算效率,令采用分治策略快速计算这些生成函数的乘积。具体地,在计算中间极大团和根极大团的聚集值条件概率分布时,采用以下处理方式:

首先,采用递归方式将k个生成函数折半分为前后两段,直到每段只包含两个生成函数相乘;

然后,采用快速傅里叶变换(FFT)对每段中的两个生成函数求卷积。

本发明实施方式提供的方法在考虑一对一映射约束的情况下,利用概率互斥图模型对PSJ建模,并在建模结果上基于动态规划和分治策略计算PSJ的聚集值概率分布。与现有方法相比,本发明的优点包括:

(1)采用概率互斥图模型为PSJ建模,无需划定概率阈值,也无需限定连接条数,保全了数据之间的依赖关系。

(2)引入生成函数方法,能够直接计算聚集值的概率分布,避免逐个计算聚集值,极大的提升了算法效率。

(3)采用分治策略计算多个生成函数的乘积,再次提升了算法的效率。

附图说明

图1是实施例提供的基于PME图模型的一对一型PSJ聚集查询方法的流程框图;

图2是实施例提供的一对一型PSJ的建模过程示意图;

图3是实施例提供的顶点压缩过程示意图;

图4是实施例提供的计算概率分布的顺序示意图;

图5是实施例提供的叶子极大团示意图;

图6是实施例提供的中间极大团示意图;

图7是实施例提供的根极大团示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。

图1是实施例提供的基于PME图的一对一型PSJ聚集查询方法的流程框图。该方法分为预处理阶段、计算概率分布阶段以及快速生成函数乘积阶段三部分,能够解决一对一型PSJ的COUNT查询和SUM查询问题,有效地计算一对一型PSJ的COUNT值和SUM值概率分布。

参见图1,本实施例提供的一对一型PSJ聚集查询方法包括:

预处理阶段:该阶段主要是将PSJ构造为树状PME图,可分为构造最大生成树、构造PME图、处理谓词条件、顶点压缩四个步骤。参见图2,每个步骤的具体内容如下:

S101,构造最大生成树:采用Kruskal算法删除PSJ连接构成的二分图中的回路,构造PSJ的最大生成树。

S101的具体过程为:

S1011,给定一组带有一对一映射约束的PSJ连接={l1,l2,…,ln},对应的概率为{p1,p2,…,pn};

S1012,将该组PSJ连接的左右两张表编号,表中的元组也编号,该组连接构成一个二分图。

本步骤中,元组(tuple)也称为记录(record),即一条一条的数据。元组存储于表(table)中,表存储于数据库(database)中。图2中,{r1,r2,…,r5}是左表中元组的编号,{s1,s2,,s3}是右表中元组的编号,{l1,…,l7}是左右两张表做PSJ查询得到的PSJ连接(link),{p1,…,p7}表示两条元组能够连接成功的可能性(probability)。

S1013,采用Kruskal算法删除二分图中的回路,构造一棵最大(概率)生成树。

此处的回路就是环,从左边的元组出发,沿着中间的实线(PSJ连接)走,最终能够回到该元组,那就有回路。

S102,构造树状PME图:采用PME图模型对PSJ连接建模,将PSJ连接表示为顶点,互斥关系表示为边,构造树状PME图。

具体地,采用PME图模型将每一条PSJ连接表示为一个顶点,互斥关系表示为边,得到的树状PME图,表示为T(V,E),如图2所示。

在树状PME图T(V,E)中,有两两互斥关系的顶点组成的最大集合标记为极大团,只属于一个极大团的顶点称为私有顶点,如顶点v1,属于多个极大团的顶点称为联合顶点,如顶点v3

树状PME图T(V,E)中的极大团分为三类:叶子极大团、中间极大团和根极大团。没有孩子极大团的极大团,称为叶子极大团,如C3;同时具有父亲极大团和孩子极大团的极大团,称为中间极大团,如C2;最顶端的极大团称为根极大团,如C1

S103,处理谓词条件:为满足COUNT查询谓词条件的顶点增加标志属性,为满足SUM查询谓词条件的顶点增加求和属性。具体如下:

删除不满足聚集查询谓词条件的私有顶点,其他顶点都保留。

查询类型一:若聚集查询为COUNT查询,则:为剩余的所有顶点增加一个属性F,表示其是否满足谓词条件。针对顶点v∈V,如果该顶点满足谓词条件,那么F=1,否则F=0。

查询类型二:若聚集查询为SUM查询,则:为剩余的所有顶点增加一个属性F,表示其求和属性值的大小。针对顶点v∈V,如果该顶点满足谓词条件,那么F等于顶点v对应的PSJ连接的求和属性值,否则F=0。

S104,顶点压缩:将同属于一个极大团的私有顶点进行合并(该步骤只针对COUNT查询)。具体如下:

查询类型一:若聚集查询为COUNT查询,则:将同属于一个极大团的私有顶点合并成一个顶点。例如,假设PME图T(V,E)中出现极大团C,C包含m(m≥0)个私有顶点{v1,…,vm},其对应的概率为{p(v1),…,p(vm)},将这些顶点合并为一个顶点vp,其概率该过程如图3所示。查询类型二:若聚集查询为SUM查询,则不执行此步骤。

计算概率分布阶段:该阶段主要是计算树状PME图的聚集值概率分布,此处的聚集值是指顶点出现的数量(COUNT)与顶点的属性值之和(SUM)。按照自底向上的计算逻辑,如图4中的箭头所示。该阶段的计算过程分为四个步骤:处理叶子极大团、处理中间极大团、处理根极大团、合并生成函数。针对每一类极大团,其处理思路为:以该极大团为根,计算其子树的聚集值概率分布。为了计算方便,该阶段引入生成函数方法,将概率分布表示为生成函数。具体过程为:

S201,处理叶子极大团:在出现父亲顶点和不出现父亲顶点两种情况下,分别计算以叶子极大团为根的子树的聚集值条件概率分布。

给定一个叶子极大团Cleaf,该极大团构成一棵子树Tleaf,如图5所示。假设Cleaf的私有顶点有m个(m≥0),表示为{vp_1,…,vp_m},其概率为{p(vp_1),…,p(vp_m)},其属性值为{vp_.F,…,vp_m.}。vf是叶子极大团Cleaf与中间极大图Cf的联合顶点,也称为Cleaf的父亲顶点,概率为p(vf)。对vf分两种情况,分别计算子树Tleaf的聚集值条件概率分布:

情况一:父亲顶点vf出现。此种情况下,子树Tleaf的聚集值条件概率分布的生成函数表示为G(PrD,Tleaf|vf),如式(1)所示:

情况二:父亲顶点vf不出现。此种情况下,子树Tleaf的聚集值条件概率分布的生成函数表示为具体如式(2)所示:

S202,处理中间极大团:在出现父亲顶点和不出现父亲顶点两种情况下,分别计算以所述中间极大团为根的子树的聚集值条件概率分布。

给定一个中间极大团Cmid,以该极大团为根的子树表示为Tmid,如图6所示。假设Cmid的私有顶点有m个(m≥0),表示为{vp_1,…,vp_m},其概率为{p(vp_1),…,p(vp_m)},其属性值为{vp_1.F,…,vp_m.F}。中间极大团Cmid与极大图Cf的联合顶点vf称为Cmid的父亲顶点,概率为p(vf)。Cmid与k个子极大团相交,分别为{C1,…,k},对应的联合顶点称为Cmid的子顶点,它们的概率分别是{p(v1),…,(vk)}。令以C1,…,k为根的子树分别为T1,…,k,假设这些子树的聚集值条件概率分布都已得到。对父亲顶点vf分两种情况,分别计算子树Tmid的聚集值条件概率分布:

情况一:父亲顶点vf出现。此种情况下,子树Tmid的聚集值条件概率分布的生成函数表示为G(PrD,Tmid|vf),如式(3)所示。

情况二:父亲顶点vf不出现。此种情况下,子树Tmid的聚集值条件概率分布的生成函数表示为如式(4)所示。

S203,处理中间极大团:在出现一个私有顶点和不出现私有顶点两种情况下,分别计算整棵树的聚集值条件概率分布。

同一个极大团中的私有顶点具有排他性,每一个极大团中只会有一个私有顶点出现。

给定一个根极大团Croot,整个PME图T(V,E)就是以Croot为根的树,如图7所示。假设Croot的私有顶点有m个(m≥0),表示为{vp_1,…,vp_m},其概率为{p(vp_1),…,p(vp_m)},其属性值为{vp_1.F,…,vp_m.}。Croot与k个子极大团相交,分别为{C1,…,Ck},对应的联合顶点称为Cmid的子顶点,它们的概率分别是{p(v1),…,(vk)}。令以C1,…,k为根的子树分别为T1,…,k,假设这些子树的聚集值条件概率分布都已得到。对私有顶点vp分两种情况,分别计算树T的聚集值条件概率分布:

情况一:任意一个私有顶点vp_i(0<i≤m)出现。此种情况下,树T的聚集值条件概率分布的生成函数表示为G(PrD,T|vp_i),如式(5)所示。

情况二:所有私有顶点都不出现。将此种情况的条件表示为其概率为树T的聚集值条件概率分布的生成函数表示为如式(6)所示。

S204,合并生成函数:将S203中两种情况下得到的生成函数合并,并将条件概率分布转换为概率分布,得到整棵树T的聚集值概率分布的生成函数如式(7)。将生成函数还原为离散序列,则得到了整棵树T的聚集值概率分布。

快速生成函数乘积阶段:该阶段主要用于快速计算多个生成函数的乘积。在中间极大团和根极大团聚集值条件概率分布计算中,涉及大量生成函数相乘,例如:采用分治策略快速计算这些生成函数的乘积。该模块分为递归拆分生成函数列表和快速傅里叶变换两个步骤,具体为:

S301,递归拆分生成函数列表。采用递归方式将k个生成函数折半分为前后两段,直到每段只包含两个生成函数相乘。

针对k个生成函数相乘,将前后两段各自的乘积表示为G(half1)和G(half2),如表1所示。

表1快速生成函数乘积的逻辑

因此,G(PrD)可表示为式(8)。递归拆分G(half1)和G(half2),直到G(half1)和G(half2)都只包含两个生成函数相乘。

G(PrD)=G(half1)×G(half2)(8)

S302,快速傅里叶变换。两个生成函数相乘,可采用快速傅里叶变换(FFT)求卷积。

以上描述的方法中,采用概率互斥图模型为PSJ建模,无需划定概率阈值,也无需限定连接条数,保全了数据之间的依赖关系。且引入生成函数方法,能够直接计算聚集值的概率分布,避免逐个计算聚集值,极大的提升了算法效率。此外,采用分治策略计算多个生成函数的乘积,再次提升了算法的效率。

以上所述的具体实施方式对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的最优选实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号