一种关系数据库连接查询自动生成方法及系统

专利2026-07-05  16


本发明涉及数据库,具体为一种关系数据库连接查询自动生成方法及系统。


背景技术:

1、大数据时代,越来越多包含海量数据集的数据池出现。对数据池中数据集的访问可以给研究者、科学家等提供丰富的研究资源。然而,数据集的海量性给数据池的使用和管理带来了挑战。有许多研究者使用各种属性相似度度量方法可以识别不同数据集中具有相似语义的属性集合。这为数据池的数据表之间的连接操作提供了基础。

2、一项调查显示有41%的数据科学家会在数据池中搜集感兴趣的数据集用于研究。而他们至少51%的时间花在了了解数据集元数据和关联关系上。因此,一种能够让用户在不需要数据集元数据和关联关系这些前提知识的情况下去查询数据池中数据集的方法很有必要。有一种解决方案是将数据池中相关联的数据集通过全连接等方式合并生成一张巨大表,包含了所有相关联关系表的所有属性。然而,这种方法生成的大表太过庞大且会包含许多空值,在数据查询时也会带来很大的查询开销。且在数据池中数据更新时,更新这张大表的维护开销也很大。

3、因此,我们需要一种新的更容易维护的方式来处理在屏蔽数据集元数据和关联关系的前提下,向用户提供查询服务的方法。


技术实现思路

1、本发明提出了一种关系数据库连接查询自动生成方法及系统,用于解决数据科学家等用户在数据池等海量数据集上搜集感兴趣的数据集时,由于数据集海量性带来的了解数据集元数据和关联关系带来的巨大时间开销,导致的数据池利用率低下的问题。

2、本发明提供一种关系数据库连接查询自动生成方法,包括以下步骤:

3、确定在关系数据库中待查询的目标属性及查询条件属性;

4、确定关系数据库中所包含的关系表集合,及关系表集合包含的属性集合;

5、根据关系表集合与属性集合的包含关系,建立关系表属性连接矩阵;

6、基于关系表属性连接矩阵,并依据关系表集合中两两关系表之间是否包含公共属性,以及两两关系表之间是否存在连接路径和连接路径上的关系表数量,建立关系表属性距离关系矩阵;

7、基于关系表属性距离关系矩阵,先在关系表集合中获取包含目标属性且与查询条件属性距离最近的关系表,再根据查询目标属性与查询条件属性到同一个关系表的距离同时分别呈现递减或递增现象来确定关系表连接序列,以及关系表连接序列中相邻关系表间的连接属性集序列;

8、将关系表连接序列及连接属性集序列按照关系数据库的语句语法转化为在关系数据库的数据集上的连接查询语句,从而获得查询结果。

9、进一步地,所述根据关系表集合与属性集合的包含关系,建立关系表属性连接矩阵,包括:

10、当关系数据库中的所述关系表集合为d,关系表集合所包含的属性集合为a,则关系表属性连接矩阵的大小为|a|×|d|的数组,其中|d|表示关系数据库中中的关系表数量,|a|表示关系数据库中中出现的属性数量;

11、其中,若属性集合a中的第i个属性出现在关系数据库中第j个关系表中,则m1[i,j]=1,否则m1[i,j]=0。

12、进一步地,所述基于关系表属性连接矩阵,并依据关系表集合中两两关系表之间是否包含公共属性,以及两两关系表之间是否存在连接路径和连接路径上的关系表数量,建立关系表属性距离关系矩阵,包括:

13、当关系数据库中的所述关系表集合为d,关系表集合所包含的属性集合为a,则关系表属性距离关系矩阵的大小为|a|×|d|的数组,其中|d|表示关系数据库中中的关系表数量,|a|表示关系数据库中中出现的属性数量;

14、其中,当所述关系数据库中存在一个关系表序列,且该序列中两两相邻关系表包含公共属性,则该关系表序列为连接可达关系表序列;若属性ai不存在于关系表tk中,且至少存在一条长度为m的连接可达关系表集合<tj,...,tk>,则m[i,k]=m;

15、基于关系表属性连接矩阵m1,通过以1逐次递增检测两两关系表之间是否存在连接可达关系表序列,则多次迭代生成多个不同最大距离的关系表属性距离关系矩阵m2、m3、m4、....,直到相邻两次迭代生成的关系表属性距离关系矩阵没有数据差异,则得到最终的关系表属性距离关系矩阵。

16、进一步地,最大距离为dist的所述关系表属性距离关系矩阵的性质如下:

17、若属性ai只存在关系表tj中,且至少存在一条长度为m的连接可达关系表集合<tj,...,tk>,若m≤dist,则mdist[i,k]=m,否则mdist[i,k]=0;

18、对于给定关系表集合d、属性集合a,以及最大距离为dist的关系表属性距离关系矩阵mdist,若存在mdist[ax,ti]=d,其中d>0,则有mdist+1[ax,ti]=d;

19、当mdist[ax,tj]=1,则ax是关系表tj中的属性;

20、当mdist[ax,ti]=dist,则关系表ti与属性ax所在的关系表间存在一条连接可达关系表集合

21、当ay∈a(tj),且mdist[ay,ti]=0,则

22、当且ax是关系表tj中的属性,则ax为关系表tj之间的共同属性,则存在连接可达关系表序列

23、当ay∈a(tj),且mdist[ay,ti]=0,则mdist+1[ay,ti]=dist+1。

24、进一步地,所述基于关系表属性距离关系矩阵,先在关系表集合中获取包含目标属性且与查询条件属性距离最近的关系表,再根据查询目标属性与查询条件属性到同一个关系表的距离同时分别呈现递减或递增现象来确定关系表连接序列,以及关系表连接序列中相邻关系表间的连接属性集序列,包括以下步骤:

25、基于关系表属性距离矩阵m,以及给定的目标属性at、查询条件属性ac,初始化的关系表连接序列ts为空集、连接属性集合序列as为空集;

26、在关系表集合中获取到包含目标属性且与查询条件属性距离最近的关系表ti后,其中查询条件属性到关系表ti的距离大于0,则判断该关系表ti是否为空值;

27、当该关系表ti为空值,则输出关系表连接序列ts、连接属性集合序列as,否则将该关系表ti添加至关系表连接序列ts中;

28、当关系表ti与查询条件属性ac之间的距离dist=1,则输出该关系表ti、连接属性集合序列as;

29、当存在与目标属性at的连接长度为j,且与查询条件属性ac的连接长度为dist-j+1的关系表tk,其中j∈[2,dist],则将关系表tk添加至关系表连接序列ts中,并将关系表tk与关系表ti之间的公共属性集合添加至连接属性集合序列as中,并输出最终的关系表连接序列ts、连接属性集合序列as。

30、进一步地,由所述目标属性at,以及所述查询条件属性ac,其中at∈a,ac∈a,所确定的所述关系表连接序列,以及所述连接属性集序列,满足如下条件:

31、当目标属性at为关系表集合中的第一个表的属性,查询条件属性ac为关系表集合中的最后一个表的属性,即则:

32、所述连接属性集序列中的任意位置i上的属性集合,为关系表集合中第i张表和第i+1张表的公共属性集合;

33、若m[ax,ti]=1,且m[ax,tj]=1,则ax为关系表ti与关系表tj之间的公共属性;

34、若m[at,ti]=1,m[ac,ti]=dist>0,则目标属性at所在的关系表与查询条件属性ac所在的关系表之间存在一个连接可达关系表序列其中且对于j∈[2,dist]时,m[at,txj]=j,m[ac,txj]=dist-j+1。

35、本发明还提供一种关系数据库连接查询自动生成系统,包括:

36、待查询数据获取模块,用于确定在关系数据库中待查询的目标属性及查询条件属性;

37、确定关系数据库中所包含的关系表集合,及关系表集合包含的属性集合;

38、关系数据库元数据获取模块,用于根据关系表集合与属性集合的包含关系,建立关系表属性连接矩阵;

39、关系表属性距离关系矩阵构建模块,用于基于关系表属性连接矩阵,并依据关系表集合中两两关系表之间是否包含公共属性,以及两两关系表之间是否存在连接路径和连接路径上的关系表数量,建立关系表属性距离关系矩阵;

40、连接路径生成模块,用于基于关系表属性距离关系矩阵,先在关系表集合中获取包含目标属性且与查询条件属性距离最近的关系表,再根据查询目标属性与查询条件属性到同一个关系表的距离同时分别呈现递减或递增现象来确定关系表连接序列,以及关系表连接序列中相邻关系表间的连接属性集序列;

41、数据库查询语句生成模块,用于将关系表连接序列及连接属性集序列按照关系数据库的语句语法转化为在关系数据库的数据集上的连接查询语句,从而获得查询结果。

42、与现有技术相比,本发明的有益效果:

43、本发明中所提出的关系数据库连接查询自动生成方法,基于已经完成相似语义的属性聚合后的数据表结构,生成关系表属性距离关系矩阵,用户在使用数据池时,可以将数据池中的所有属性集合看作在一个关系表中,只需要以在单表上查询的方式提交查询请求,系统根据查询中的属性对,基于关系表属性距离关系矩阵自动生成关系表连接序列以及关系表连接序列中相邻关系表间的连接属性集序列,将关系表连接序列及连接属性集序列按照关系数据库的语句语法,如sql语句语法,转化为在数据集上的连接查询语句,最后再将查询结果返回给用户。

44、本发明所提供了关系数据库连接查询自动生成方法,其基于关系数据库元数据生成关系表属性间距离矩阵方法以及基于这个距离矩阵自动生成包含用户感兴趣的属性对的连接查询语句方法,实现了用户可以在不了解关系数据库中表结构和表关联的情况下,基于自己感兴趣的属性对关系数据库进行相关数据集的查询。这种方法能够大大降低用户在对包含大量数据表的关系数据库上进行查询前的准备工作,降低用户对海量关系数据库进行知识检索的门槛;用户提交查询时,只需要了解关系数据库中包含的所有属性集合,而不需要了解数据库中每张表具体表结构以及表间关联关系,能够减少用户查询前需要的前提知识,降低用户使用海量数据集时的门槛。

45、本发明中的关系表属性距离矩阵生成方法是一种易于维护的数据类型,其内容只与关系表结构相关,与关系表中具体数据无关,因此在数据库中关系表数据发生变化时,无需更新关系表属性距离矩阵;当关系表结构变化或是关系表数量变化时,重新生成关系表属性距离矩阵的时间和空间代价也不高。当关系表属性距离矩阵生成后,关系表连接路径生成方法可以很小的时间代价生成关系表连接路径和连接属性集合序列。


技术特征:

1.一种关系数据库连接查询自动生成方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种关系数据库连接查询自动生成方法,其特征在于:所述根据关系表集合与属性集合的包含关系,建立关系表属性连接矩阵,包括:

3.根据权利要求2所述的一种关系数据库连接查询自动生成方法,其特征在于:所述基于关系表属性连接矩阵,并依据关系表集合中两两关系表之间是否包含公共属性,以及两两关系表之间是否存在连接路径和连接路径上的关系表数量,建立关系表属性距离关系矩阵,包括:

4.根据权利要求3所述的一种关系数据库连接查询自动生成方法,其特征在于:最大距离为dist的所述关系表属性距离关系矩阵的性质如下:

5.根据权利要求1所述的一种关系数据库连接查询自动生成方法,其特征在于:所述基于关系表属性距离关系矩阵,先在关系表集合中获取包含目标属性且与查询条件属性距离最近的关系表,再根据查询目标属性与查询条件属性到同一个关系表的距离同时分别呈现递减或递增现象来确定关系表连接序列,以及关系表连接序列中相邻关系表间的连接属性集序列,包括以下步骤:

6.根据权利要求1所述的一种关系数据库连接查询自动生成方法,其特征在于:由所述目标属性at,以及所述查询条件属性ac,其中at∈a,ac∈a,所确定的所述关系表连接序列,以及所述连接属性集序列,满足如下条件:

7.一种关系数据库连接查询自动生成系统,其特征在于:包括:


技术总结
本发明公开了一种关系数据库连接查询自动生成方法及系统,涉及数据库技术领域,包括以下步骤:根据关系数据库中的关系表元数据,建立关系表属性连接矩阵,依据关系表集合中两两关系表之间是否存在连接路径和连接路径上的关系表数量,建立关系表属性距离关系矩阵;在关系表集合中获取包含目标属性且与查询条件属性距离最近的关系表,再根据查询目标属性与查询条件属性到同一个关系表的距离同时分别呈现递减或递增现象来确定关系表连接序列,以及关系表连接序列中相邻关系表间的连接属性集序列,并将其按照关系数据库的语句语法转化为在关系数据库的数据集上的连接查询语句获得查询结果。本发明减少了在关系数据库上进行查询前的准备工作。

技术研发人员:张彩彩,陈沙沙
受保护的技术使用者:浙江机电职业技术学院
技术研发日:
技术公布日:2024/7/25
转载请注明原文地址: https://bbs.8miu.com/read-441932.html

最新回复(0)