针对一元基数约束的查询模板参数实例化方法技术

技术编号:36890963 阅读:29 留言:0更新日期:2023-03-15 21:56
本发明专利技术公开了一种针对一元基数约束的参数实例化方法,包括如下步骤:步骤一、根据列的值域的基数和所有相关的一元基数约束,计算得到相应的一元概率约束;步骤二、根据所有的一元不等值概率约束,获取一元不等值基数约束的累计分布函数,并根据获取到的累计分布函数将整个概率空间划分为互不相交的若干区间;步骤三、使用贪心算法将所有一元等值概率约束依次插入到满足约束的最小区间,并在每次插入后更新区间数据分布信息;步骤四、根据概率分布函数和区间数据分布信息,对所有一元基数约束对应的参数进行实例化。本发明专利技术方法中的输入信息不包含数据库具体的数据信息,不会造成数据泄露,同时参数实例化后的一元基数约束的过滤比与原先的相同。与原先的相同。与原先的相同。

【技术实现步骤摘要】
针对一元基数约束的查询模板参数实例化方法


[0001]本专利技术属于分析型数据库、负载生成
,涉及一种针对一元基数约束的查询模板参数实例化方法。

技术介绍

[0002]目前,随着大数据时代的到来。数据规模不断扩大,新的应用场景也层出不穷。为了应对这些新的应用场景,对数据库进行性能评测变得越来越重要。传统基准测试(Benchmarking)已经被广泛应用于数据库系统的性能评测中。但是,如果基准所代表的应用场景和实际生产环境中的应用场景完全不一样,基本评测的可靠性就会大大降低。虽然最好的方法是使用真实应用场景下的负载对数据库系统进行评测,但是这样做会带来严重的数据泄露风险。因此,模拟真实环境下的负载特征的数据库实例变得至关重要。
[0003]针对上述需求,查询感知数据库生成器(QAG)
[1

7]应运而生。查询感知数据库生成器可以通过生成仿真数据和仿真查询来仿真特定的应用场景,面向应用的数据库生成的本质是仿真负载在仿真数据库上执行时,每个算子的输入输出与原始负载尽可能相似,即在测试数据库上执行生成负载得到的查询执行成本与在原始数据库中执行原始工作负载得到的查询执行成本尽可能相似。简而言之,仿真数据库具有和真实负载相似的数据分布特征,可以被用来进行数据库系统的性能评测。
[0004]要实现查询感知数据库生成器,为了保证数据安全,要求从数据库中获取的信息要尽可能少。为了防止数据泄露,不能暴露测试环境原始分布的具体信息,需要对原始查询的所有参数符号化,这种将参数符号化后的查询称之为查询模板。在现有的查询感知数据库生成器中,生成仿真查询和仿真数据库的一个关键步骤就是将这些符号化的参数重新实例化,即给它们赋新的值,这一过程称之为参数实例化。
[0005]当针对一元基数约束进行参数实例化时,只涉及到一个不参与连接的属性列和它们的参数。如果想要对一元基数约束的参数进行实例化,并进一步对涉及到的属性列进行生成,就必须考虑以下问题:对于一张表的某个属性列,往往有多个相关的一元基数约束,这些一元基数约束全都与该列的数据分布相关,所以想要对所有一元基数约束进行参数实例化,就要将涉及同一个列的所有一元基数约束放到一起考虑,当一元基数约束的数量增多时,如何保证一定能找到参数实例化方案就成了一个问题。
[0006]由于所有的参数已经符号化了,那么找到合理的参数实例化方案的关键就是重新确定它们的大小,即这些一元基数约束在概率空间中的相对位置。需要将问题分解成两个部分,第一是如何确定这些符号化的参数在概率中的相对位置,第二是如何根据它们在概率空间中的相对位置对它们进行参数实例化。

技术实现思路

[0007]为了解决现有技术存在的不足,本专利技术的目的是提供一种针对一元基数约束的查询模板参数实例化方法,首先通过一元非等值基数约束将概率空间划分为不相交的范围,
确定所有一元非等值基数约束涉及参数的相对位置。然后通过贪心算法将一元等值基数约束对应的概率插入满足约束的最小区间,从而确定等值一元基数约束在概率空间中的位置,并构造出列的累计概率密度模型(即与该列相关的所有一元基数约束转换成的一元概率约束的集合)。最后,通过分配值域基数的方法,对所有一元基数约束进行参数实例化。
[0008]本专利技术针对一元基数约束的参数实例化方法包括如下步骤:
[0009]步骤一、获取一元概率约束:对于给定的不参与连接的非键值列的值域和与该列相关的一元基数约束,计算每个一元基数约束对应的一元概率约束。例如给定属性列A(值域的基数为|A|)和与该列相关的k个一元基数约束UCC1,
……
,UCC
k
(unary cardinality constraint),计算每个一元基数约束对应的一元概率约束UPC1,
……
,UPC
k
(unary probability constraint)。
[0010]其中,一元基数约束是由单个列、单个关系符号和单个参数组成的数据库过滤谓词,以及经由这个谓词过滤得到的列的行数组成的,一元基数约束的形式为|AΘP
k
|=k,其中A指的是列名,P
k
指的是符号化的参数,Θ指的是符号,包括=、≠、<、>、≤、≥、(NOT)IN、(NOT)LIKE(均为数据库查询中的常见符号),|A|为列的值域的基数,k为满足谓词条件AΘP
k
的元组个数。
[0011]一元概率约束是由一元基数约束的谓词和一元基数约束对应的列的过滤比组成的,一元概率约束的形式为P(AΘP
k
)=pb,其中AΘP
k
为所述的一元基数约束,pb为满足这个基数约束的元组占表总元组数的百分比(即过滤比)。
[0012]步骤二、得到一元非等值概率约束的累计分布函数:一元等值基数约束经由步骤一得到的一元概率约束称之为一元等值概率约束,一元非等值基数约束经由步骤一得到的一元概率约束称之为一元非等值概率约束。等值与不等值根据一元基数约束中符号Θ为等值符号或非等值符号划分。对于步骤一中得到的所有一元非等值概率约束,将它们转换为累计分布函数的形式Fx(P1),
……
,Fx(P
k
),并基于所有累计分布函数将整个概率空间划分为不相交的若干区间(p
i
,p
j
],其中0<i≤j

1,j≤k。并且,划分得到的若干个区间互不相交且并集等于整个概率空间。
[0013]所述一元非等值概率约束是指由一元非等值基数约束经步骤一得到的一元概率约束,其形式为P(AΘP
k
)=pb,对应符号Θ为非等值符号,即≠,<,>,≤,≥。
[0014]所述累计分布函数是指列的值小于某个值的概率,其形式为Fx(P
k
)=P(x≤P
k
),其中Pk为一元基数约束对应的参数,Fx(P
k
)为列的值小于等于这个参数的概率。
[0015]步骤三、得到一元等值概率约束的累计分布函数:给定步骤一中得到的所有一元等值概率约束和步骤二中获得的概率空间中的区间数据分布信息,将一元等值概率约束的概率按照从小到大的顺序,使用贪心算法依次插入到步骤二得到的区间中,每次插入后更新区间数据分布信息,最终得到所有一元等值概率约束的累计分布函数和最终的区间数据分布信息。
[0016]所述一元等值概率约束是指由一元等值基数约束经步骤一得到的一元概率约束,其形式为P(AΘP
k
)=pb,对应符号Θ为等值符号,即=,IN,LIKE,NOT IN,NOT LIKE。
[0017]其中使用贪心算法通常用于解决背包问题,目的是为了找到最小能容纳等值概率的范围,以确保所有等值概率都能成功插入;具体地,在本专利技术中为了保证所有一元等值概率约束都能顺利插入到区间中,如果两个一元等值概率约束的概率相同,视作对应的参数
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对一元基数约束的参数实例化方法,其特征在于,包括如下步骤:步骤一、获取一元概率约束:对于给定的不参加连接的非键值列的值域和与该列相关的一元基数约束,计算每个一元基数约束对应的一元概率约束;步骤二、得到一元非等值概率约束的累计分布函数:对于步骤一中得到的所有一元非等值概率约束,将它们转换为累计分布函数的形式,并基于所有累计分布函数将整个概率空间划分为不相交的若干区间;步骤三、得到一元等值概率约束的累计分布函数:对于步骤一中得到的所有一元等值概率约束和步骤二中获得的概率空间中的区间数据分布信息,根据贪心算法依次将所有一元等值概率约束插入到满足约束的最小区间中,并在每次插入后更新区间数据分布信息,从而构造出所有一元等值概率约束的累计分布函数;步骤四、参数实例化:根据步骤二和步骤三得到的所有累计分布函数、最后更新得到的区间数据分布信息以及列的值域,将列的值域的基数分配给所有区间,最后根据区间分配到的基数,对所有参数进行实例化。2.如权利要求1所述的针对一元基数约束的参数实例化方法,其特征在于,步骤一中,所述一元基数约束是由单个列、单个关系符号和单个参数组成的数据库过滤谓词,以及经由这个谓词过滤得到的列的行数组成的;所述一元基数约束的形式为|AΘP
k
|=k,其中A指的是列名,P
k
指的是符号化的参数,Θ指的是符号,包括=、≠、<、>、≤、≥、(NOT)IN、(NOT)LIKE,|A|为列的值域的基数,k为满足谓词条件AΘP
k
的元组个数。3.如权利要求1所述的针对一元基数约束的参数实例化方法,其特征在于,一元概率约束是由一元基数约束的谓词和对相关列的过滤比组成的,一元概率约束的形式为P(AΘP
k
)=pb,其中AΘP
k
为所述的一元基...

【专利技术属性】
技术研发人员:李好王清帅杨程程张蓉
申请(专利权)人:华东师范大学
类型:发明
国别省市:

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

1