数据库查询语句的生成方法、装置、设备及存储介质与流程

摘要: 本技术实施例涉及计算机,特别涉及一种数据库查询语句的生成方法、装置、设备及存储介质。背景技术:1、数据库通常是基于sql(structuredquerylang...
数据库查询语句的生成方法、装置、设备及存储介质与流程

本技术实施例涉及计算机,特别涉及一种数据库查询语句的生成方法、装置、设备及存储介质。

背景技术:

1、数据库通常是基于sql(structured query language,结构化查询语言)等数据库查询语句进行操作,在数据库的模糊测试中,需要生成大量查询语句,将大量查询语句提交给数据库进行处理,以测试数据库在极端输入下的潜在缺陷等。

2、相关技术中,利用大语言模型,将用于指示数据库操作的自然语言转换为sql语句,从而生成大量sql语句。

3、但是,由于该方法仍然需要人工编写用于指示数据库操作的自然语言,导致耗费人力和时间,进而影响了数据库查询语句的生成效率。

技术实现思路

1、本技术实施例提供了一种数据库查询语句的生成方法、装置、设备及存储介质,能够提高数据库查询语句的生成效率。所述技术方案如下:

2、一方面,提供了一种数据库查询语句的生成方法,所述方法包括:

3、获取参考查询语句,所述参考查询语句用于指示对数据库执行的操作;

4、通过大语言模型,基于提示文本和所述参考查询语句,生成语句模板,所述提示文本用于指示所述大语言模型生成所述语句模板,所述语句模板用于生成所述数据库的查询语句;

5、获取所述数据库的元数据,所述元数据是指用于描述所述数据库的数据;

6、基于所述元数据和所述语句模板,生成多个测试查询语句,所述多个测试查询语句用于对所述数据库进行模糊测试。

7、可选地,所述确定所述第一语句模板的评估参数,包括以下至少一项:

8、基于所述元数据和所述第一语句模板,生成多个第一查询语句,基于所述多个第一查询语句的准确率,确定所述第一语句模板的第一评估参数,所述第一评估参数用于反映所述第一语句模板的准确性;

9、基于所述第一语句模板中的原子数量,确定所述第一语句模板的第二评估参数,所述第二评估参数用于反映所述第一语句模板的扩展性,所述原子是用于构成所述数据库的查询语句的基本单元;

10、基于所述多个第一查询语句与所述第一样本查询语句之间的相似度,确定所述第一语句模板的第三评估参数,所述第三评估参数用于反映所述第一语句模板与所述第一样本查询语句之间的匹配度。

11、可选地,所述原子库包括以下至少一种类型的原子:

12、元素原子,所述元素原子用于表示所述数据库中的基本元素;

13、操作原子,所述操作原子用于表示所述数据库执行的操作;

14、组合原子,所述组合原子是对至少一个元素原子和至少一个操作原子进行组合得到。

15、可选地,所述参考查询语句,包括以下至少一项:

16、所述数据库的历史业务查询语句,所述历史业务查询语句是指所述数据库在业务场景中已执行的查询语句;

17、所述数据库的历史测试查询语句,所述历史测试查询语句是指所述数据库在模糊测试中已执行的查询语句;

18、所述数据库的历史错误查询语句,所述历史错误查询语句是指所述数据库在执行过程中出现错误的查询语句。

19、另一方面,提供了一种数据库查询语句的生成装置,所述装置包括:

20、第一获取模块,用于获取参考查询语句,所述参考查询语句用于指示对数据库执行的操作;

21、第一生成模块,用于通过大语言模型,基于提示文本和所述参考查询语句,生成语句模板,所述提示文本用于指示所述大语言模型生成所述语句模板,所述语句模板用于生成所述数据库的查询语句;

22、第二获取模块,用于获取所述数据库的元数据,所述元数据是指用于描述所述数据库的数据;

23、第二生成模块,用于基于所述元数据和所述语句模板,生成多个测试查询语句,所述多个测试查询语句用于对所述数据库进行模糊测试。

24、可选地,所述第一生成模块,用于:

25、通过大语言模型,基于所述提示文本、所述参考查询语句和原子库,生成所述语句模板;

26、其中,所述原子库中存储有多个原子,所述原子是用于构成所述数据库的查询语句的基本单元。

27、可选地,所述第一生成模块,包括:

28、检索单元,用于在原子库中,查找与所述参考查询语句的相似度最高的参考原子;

29、第一生成单元,用于将所述提示文本、所述参考查询语句和所述参考原子输入至所述大语言模型,得到所述大语言模型输出的所述语句模板。

30、可选地,所述检索单元,用于:

31、对所述参考查询语句进行解析,得到所述参考查询语句中的多个目标语句元素;

32、在所述原子库中,分别查找与每个目标语句元素的相似度最高的参考原子。

33、可选地,所述检索单元,用于:

34、对所述参考查询语句进行解析,得到所述参考查询语句中的所有语句元素;

35、将所有语句元素中,与所述原子库中的通用原子不同的语句元素确定为所述目标语句元素,所述通用原子是指与业务逻辑无关的原子;或者,将所有语句元素确定为所述目标语句元素。

36、可选地,所述第一生成单元,用于:

37、在所述多个目标语句元素是与所述通用原子不同的语句元素的情况下,确定通用原子描述文本,所述通用原子描述文本用于描述所述通用原子;

38、将所述提示文本、所述参考查询语句、所述参考原子和所述通用原子描述文本输入至所述大语言模型,得到所述大语言模型输出的所述语句模板。

39、可选地,所述第一生成模块,包括:

40、模型训练单元,用于获取第一样本查询语句和第一标签语句模板,所述第一标签语句模板的语法结构与所述第一样本查询语句的语法结构相符;

41、所述模型训练单元,还用于基于所述提示文本、所述第一样本查询语句、所述第一标签语句模板和所述原子库,对所述大语言模型进行训练,得到模板生成模型;

42、第二生成单元,用于将所述提示文本和所述参考查询语句输入至所述模板生成模型,得到所述模板生成模型输出的所述语句模板。

43、可选地,所述模型训练单元,用于:

44、将所述提示文本、所述第一样本查询语句和所述原子库输入至所述大语言模型,得到所述大语言模型输出的第一样本语句模板;

45、以降低所述第一样本语句模板和所述第一标签语句模板之间的差异为目标,对所述大语言模型进行训练,得到所述模板生成模型。

46、可选地,所述模型训练单元,用于:

47、获取多个候选查询语句;

48、对于每个候选查询语句,将所述候选查询语句、所述提示文本和所述原子库输入至所述大语言模型,得到所述大语言模型输出的所述候选查询语句对应的第一语句模板,确定所述第一语句模板的评估参数,所述评估参数用于反映所述第一语句模板的可用性;

49、对于每个候选查询语句,若所述候选查询语句对应的第一语句模板的评估参数满足可用条件,则将所述候选查询语句确定为所述第一样本查询语句,将所述第一语句模板确定为所述第一标签语句模板。

50、可选地,所述模型训练单元,用于以下至少一项:

51、基于所述元数据和所述第一语句模板,生成多个第一查询语句,基于所述多个第一查询语句的准确率,确定所述第一语句模板的第一评估参数,所述第一评估参数用于反映所述第一语句模板的准确性;

52、基于所述第一语句模板中的原子数量,确定所述第一语句模板的第二评估参数,所述第二评估参数用于反映所述第一语句模板的扩展性,所述原子是用于构成所述数据库的查询语句的基本单元;

53、基于所述多个第一查询语句与所述第一样本查询语句之间的相似度,确定所述第一语句模板的第三评估参数,所述第三评估参数用于反映所述第一语句模板与所述第一样本查询语句之间的匹配度。

54、可选地,所述模型训练单元,用于:

55、基于所述提示文本、所述第一样本查询语句、所述第一标签语句模板和所述原子库,对所述大语言模型进行训练,得到初始模板生成模型;

56、对于每个候选查询语句,若所述候选查询语句对应的第一语句模板的评估参数满足不可用条件,则将所述候选查询语句确定为第二样本查询语句,将所述第一语句模板确定为所述第二样本查询语句对应的负标签语句模板;

57、将第一目标文本、所述第二样本查询语句、所述原子库和所述负标签语句模板输入至所述初始模板生成模型,得到所述初始模板生成模型输出的第一概率,所述第一概率表示在给定所述第二样本查询语句的情况下生成所述负标签语句模板的概率,所述第一目标文本用于指示所述初始模板生成模型预测在给定所述第二样本查询语句的情况下生成所述负标签语句模板的概率;

58、以降低所述第一概率为目标,对所述初始模板生成模型进行训练,得到所述模板生成模型。

59、可选地,所述第二样本查询语句的数量为多个;所述模型训练单元,还用于:

60、对于每个第二样本查询语句,将所述提示文本、所述第二样本查询语句和所述原子库输入至所述初始模板生成模型,得到所述初始模板生成模型输出的第二语句模板;

61、对于每个第二样本查询语句,若所述第二样本查询语句对应的第二语句模板的评估参数满足所述可用条件,则将所述第二语句模板确定为所述第二样本查询语句对应的正标签语句模板;

62、将第二目标文本、所述第二样本查询语句、所述原子库和所述正标签语句模板输入至所述初始模板生成模型,得到所述初始模板生成模型输出的第二概率,所述第二概率表示在给定所述第二样本查询语句的情况下生成所述正标签语句模板的概率,所述第二目标文本用于指示所述初始模板生成模型预测在给定所述第二样本查询语句的情况下生成所述正标签语句模板的概率;

63、以降低所述第一概率、提高所述第二概率为目标,对所述初始模板生成模型进行训练,得到所述模板生成模型。

64、可选地,所述原子库包括以下至少一种类型的原子:

65、元素原子,所述元素原子用于表示所述数据库中的基本元素;

66、操作原子,所述操作原子用于表示所述数据库执行的操作;

67、组合原子,所述组合原子是对至少一个元素原子和至少一个操作原子进行组合得到。

68、可选地,所述参考查询语句,包括以下至少一项:

69、所述数据库的历史业务查询语句,所述历史业务查询语句是指所述数据库在业务场景中已执行的查询语句;

70、所述数据库的历史测试查询语句,所述历史测试查询语句是指所述数据库在模糊测试中已执行的查询语句;

71、所述数据库的历史错误查询语句,所述历史错误查询语句是指所述数据库在执行过程中出现错误的查询语句。

72、另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行,以实现如上述方面所述的数据库查询语句的生成方法所执行的操作。

73、另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行,以实现如上述方面所述的数据库查询语句的生成方法所执行的操作。

74、另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序由处理器加载并执行,以实现如上述方面所述的数据库查询语句的生成方法所执行的操作。

75、本技术实施例提供的方法、装置、计算机设备及存储介质,利用大语言模型,根据提示文本和数据库的参考查询语句,自动生成数据库的语句模板,从而降低了对人工编写语句模板的依赖,即使面对不同数据库或者数据库发生变化,也可以快速生成针对指定数据库的语句模板,提高了语句模板的生成效率。进而,利用智能生成的语句模板以及数据库的元数据,自动生成数据库的多个测试查询语句,以便对数据库进行模糊测试。因此,语句模板的生成过程以及数据库查询语句的生成过程均无需依赖人力,从而提高了数据库查询语句的生成效率。