您的当前位置:首页正文

数据库查询方法和装置及数据库系统[发明专利]

2023-05-20 来源:年旅网
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号(10)申请公布号 CN 103902543 A(43)申请公布日 2014.07.02

(21)申请号 201210571717.2(22)申请日 2012.12.25

(71)申请人华为技术有限公司

地址518129 广东省深圳市龙岗区坂田华为

总部办公楼

申请人中国科学院计算技术研究所(72)发明人贾禛 陈兴振 詹剑锋 张立新(74)专利代理机构深圳市深佳知识产权代理事

务所(普通合伙) 44285

代理人唐华明(51)Int.Cl.

G06F 17/30(2006.01)

权利要求书2页 说明书14页 附图4页权利要求书2页 说明书14页 附图4页

(54)发明名称

数据库查询方法和装置及数据库系统(57)摘要

本发明实施例公开了数据库查询方法和装置及数据库系统。其中,数据库查询方法可包括:接收来自客户端的查询语句;解析查询语句以得到查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在与函数标识对应的第一函数,其中,M和N为自然数;若查找到了与函数标识对应的第一函数,则获取第一函数对应的第一函数调用接口信息,并通过获取到的第一函数调用接口信息调用第一函数对数据库进行查找操作,向客户端反馈第一函数对数据库进行查找操作而得到的处理结果。本发明实施例提供的技术方案有利于丰富数据库查询功能,增强数据库查询的易用性。CN 103902543 ACN 103902543 A

权 利 要 求 书

1/2页

1.一种数据库查询方法,其特征在于,包括:接收来自客户端的查询语句;

解析所述查询语句以得到所述查询语句所包含的函数标识;

在N个标准函数和已注册的M个自定义函数中查找是否存在与所述函数标识对应的第一函数,其中,所述M和N为自然数;

若查找到了与所述函数标识对应的第一函数,则获取所述第一函数对应的第一函数调用接口信息,并通过获取到的所述第一函数调用接口信息调用所述第一函数对数据库进行查找操作,向所述客户端反馈所述第一函数对数据库进行查找操作而得到的处理结果。

2.根据权利要求1所述的方法,其特征在于,

所述在N个标准函数和已注册的M个自定义函数中查找是否存在所述函数标识对应的函数,包括:

在可用函数列表中查找是否存在与所述函数标识匹配的记录;其中,所述可用函数列表中的记录包括用于记录函数标识的第一字段和用于记录函数调用接口信息的第二字段,所述可用函数列表中记录了N个标准函数的函数标识和函数调用接口信息,所述可用函数列表中还记录了M个自定义函数的函数标识和函数调用接口信息。

3.根据权利要求1或2所述的方法,其特征在于,所述M个自定义函数中的部分或全部函数为查询原语。

4.根据权利要求1至3任一项所述的方法,其特征在于,所述第一函数为所述M个自定义函数中的一个;

所述接收来自客户端的查询语句的步骤之前还包括:接收来自客户端的函数注册请求;

解析所述函数注册请求以得到所述函数注册请求所包含的第一函数的函数标识和第一函数调用接口信息,并在所述可用函数列表中添加一条记录,所述添加的一条记录包含所述第一函数的函数标识和第一函数调用接口信息。

5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一函数为用于计算标准差的函数或用于画散点图的函数或用于画柱状图的函数、或用于画折线图的函数、用于计算相关系数的函数、用于计算方差的函数、用于计算相关自系数的函数、用于计算加权平均值的函数或用于取对数的函数。

6.一种数据库查询装置,其特征在于,包括:第一接收单元,用于接收来自客户端的查询语句;第一解析单元,用于解析所述接收单元接收到的所述查询语句以得到所述查询语句所包含的函数标识;

查找单元,用于在N个标准函数和已注册的M个自定义函数中查找是否存在与所述函数标识对应的第一函数,其中,所述M和N为自然数;

函数调用单元,用于若所述查找单元查找到了与所述函数标识所对应的第一函数,则获取所述第一函数对应的函数调用接口信息,并通过获取到的所述函数调用接口信息调用所述第一函数对数据库进行查找操作;

反馈单元,用于向所述客户端反馈所述第一函数对数据库进行查找操作而得到的处理

2

CN 103902543 A

权 利 要 求 书

2/2页

结果。

7.根据权利要求6所述的数据库查询装置,其特征在于,所述查找单元具体用于,在可用函数列表中查找是否存在与所述函数标识匹配的记录;其中,所述可用函数列表中的记录包括用于记录函数标识的第一字段和用于记录函数调用接口信息的第二字段,所述可用函数列表中记录了N个标准函数的函数标识和函数调用接口信息,所述可用函数列表中还记录了M个自定义函数的函数标识和函数调用接口信息。

8.根据权利要求6至7任一项所述的数据库查询装置,其特征在于,所述第一函数为所述M个自定义函数中的一个;所述数据库查询装置还包括:第二接收单元,用于在所述第一接收单元接收来自客户端的所述查询语句之前,接收来自客户端的函数注册请求;

注册单元,用于解析所述第二接收单元接收到的所述函数注册请求以得到所述函数注册请求所包含的第一函数的函数标识和第一函数调用接口信息,并在所述可用函数列表中添加一条记录,所述添加的一条记录包含所述第一函数的函数标识和第一函数调用接口信息。

9.根据权利要求6至8任一项所述的数据库查询装置,其特征在于,所述第一函数为用于计算标准差的函数、或用于画散点图的函数或用于画柱状图的函数、或用于画折线图的函数、用于计算相关系数的函数、用于计算方差的函数、用于计算相关自系数的函数、用于计算加权平均值的函数或用于取对数的函数。

10.一种数据库系统,其特征在于,包括:客户端、虚拟解释层和数据库;其中,所述客户端用于发送查询语句;所述虚拟解释层,用于接收来自所述客户端的查询语句;解析所述查询语句以得到所述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在所述函数标识对应的函数,其中,所述M和N为自然数;若查找到了所述函数标识对应的第一函数,则获取所述第一函数对应的函数调用接口信息,并通过获取到的所述函数调用接口信息调用所述第一函数对所述数据库进行查找操作,向所述客户端反馈所述第一函数对所述数据库进行查找操作而得到的处理结果。

3

CN 103902543 A

说 明 书

数据库查询方法和装置及数据库系统

1/14页

技术领域

[0001]

本发明涉及计算机技术领域,具体涉及一种数据库查询方法和装置及数据库系

统。

背景技术

[0002] 随着计算机技术的发展,出现越来越多的系统和应用。系统和机器的规模也越来越大,对于规模较大的系统,系统调优是必需工作。系统调优的基础是分析性能数据,而采集性能数据的方式多为采样。[0003] 由于采样间隔短(一般可能为秒级)、机器规模大和系统中的应用运行长等问题,使得性能数据的采样点可能极多,从而导致了需要处理和分析的数据量很大,存取这些数据也会比较复杂。在大规模数据的处理和存取上,数据库有较好的性能。但在数据库查询方面,现有的简单数据库查询和计算功能有时候很难满足用户对性能数据分析的要求。例如,用户往往希望通过简单的操作得到想要的数据、可能希望能将数据直接以图形的方式展现出现,而不必再结果进行手工绘图。发明内容

本发明实施例提供数据库查询方法和装置及数据库系统,以期丰富数据库查询功能,增强数据库查询的易用性。

[0005] 本发明第一方面提供一种数据库查询方法,包括:[0006] 接收来自客户端的查询语句;

[0007] 解析所述查询语句以得到所述查询语句所包含的函数标识;

[0008] 在N个标准函数和已注册的M个自定义函数中查找是否存在与所述函数标识对应的第一函数,其中,所述M和N为自然数;

[0009] 若查找到了与所述函数标识对应的第一函数,则获取所述第一函数对应的第一函数调用接口信息,并通过获取到的所述第一函数调用接口信息调用所述第一函数对数据库进行查找操作,向所述客户端反馈所述第一函数对数据库进行查找操作而得到的处理结果。

[0010] 结合第一方面,在第一种可能的实施方式中,所述在N个标准函数和已注册的M个自定义函数中查找是否存在所述函数标识对应的函数,包括:

[0011] 在可用函数列表中查找是否存在与所述函数标识匹配的记录;[0012] 其中,所述可用函数列表中的记录包括用于记录函数标识的第一字段和用于记录函数调用接口信息的第二字段,所述可用函数列表中记录了N个标准函数的函数标识和函数调用接口信息,所述可用函数列表中还记录了M个自定义函数的函数标识和函数调用接口信息。

[0013] 结合第一方面或第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述M个自定义函数中的部分或全部函数为查询原语。

[0004]

4

CN 103902543 A[0014]

说 明 书

2/14页

结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的

实施方式,在第三种可能的实施方式中,所述第一函数为所述M个自定义函数中的一个;[0015] 所述接收来自客户端的查询语句的步骤之前还包括:[0016] 接收来自客户端的函数注册请求;解析所述函数注册请求以得到所述函数注册请求所包含的第一函数的函数标识和第一函数调用接口信息,并在所述可用函数列表中添加一条记录,所述添加的一条记录包含所述第一函数的函数标识和第一函数调用接口信息。[0017] 结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述第一函数为用于计算标准差的函数或用于画散点图的函数或用于画柱状图的函数、或用于画折线图的函数、用于计算相关系数的函数、用于计算方差的函数、用于计算相关自系数的函数、用于计算加权平均值的函数或用于取对数的函数。[0018] 本发明第二方面提供一种数据库查询装置,包括:[0019] 第一接收单元,用于接收来自客户端的查询语句;[0020] 第一解析单元,用于解析所述接收单元接收到的所述查询语句以得到所述查询语句所包含的函数标识;[0021] 查找单元,用于在N个标准函数和已注册的M个自定义函数中查找是否存在与所述函数标识对应的第一函数,其中,所述M和N为自然数;[0022] 函数调用单元,用于若所述查找单元查找到了与所述函数标识所对应的第一函数,则获取所述第一函数对应的函数调用接口信息,并通过获取到的所述函数调用接口信息调用所述第一函数对数据库进行查找操作;[0023] 反馈单元,用于向所述客户端反馈所述第一函数对数据库进行查找操作而得到的处理结果。

[0024] 结合第二方面,在第一种可能的实施方式中,[0025] 所述查找单元具体用于,在可用函数列表中查找是否存在与所述函数标识匹配的记录;其中,所述可用函数列表中的记录包括用于记录函数标识的第一字段和用于记录函数调用接口信息的第二字段,所述可用函数列表中记录了N个标准函数的函数标识和第一函数调用接口信息,所述可用函数列表中还记录了M个自定义函数的函数标识和第一函数调用接口信息。

[0026] 结合第二方面或第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述第一函数为所述M个自定义函数中的一个;[0027] 所述数据库查询装置还包括:[0028] 第二接收单元,用于在所述第一接收单元接收来自客户端的所述查询语句之前,接收来自客户端的函数注册请求;[0029] 注册单元,用于解析所述第二接收单元接收到的所述函数注册请求以得到所述函数注册请求所包含的第一函数的函数标识和函数调用接口信息,并在所述可用函数列表中添加一条记录,所述添加的一条记录包含所述第一函数的函数标识和函数调用接口信息。[0030] 结合第二方面或第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述第一函数为用于计算标准差的函数、或用于画散点图的函数或用于画柱状图的函数、或用于画折线图的函数、用于计算相关系数的函数、

5

CN 103902543 A

说 明 书

3/14页

用于计算方差的函数、用于计算相关自系数的函数、用于计算加权平均值的函数或用于取对数的函数。

[0031] 结合第二方面或第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式或第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述M个自定义函数中的部分或全部函数为查询原语。

本发明第三方面提供一种数据库系统,可包括:

[0033] 客户端、虚拟解释层和数据库;[0034] 其中,所述客户端用于发送查询语句;[0035] 所述虚拟解释层,用于接收来自所述客户端的查询语句;解析所述查询语句以得到所述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在所述函数标识对应的函数,其中,所述M和N为自然数;若查找到了所述函数标识对应的第一函数,则获取所述第一函数对应的函数调用接口信息,并通过获取到的所述函数调用接口信息调用所述第一函数对所述数据库进行查找操作,向所述客户端反馈所述第一函数对所述数据库进行查找操作而得到的处理结果。[0036] 由上可见,本发明实施例方案在接收来自客户端的查询语句;解析上述查询语句以得到上述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在上述函数标识对应的第一函数;若查找到了上述函数标识对应的第一函数,则通过第一函数对应的第一函数调用接口调用第一函数对数据库进行查找操作,并反馈第一函数对数据库进行查找操作而得到的处理结果。由于本实施例方案中提出了引入自定义函数的机制,这样就在一定程度上打破了标准函数查询功能单一的缺陷,如此有利于扩展丰富数据库查询功能,增强数据库查询可用性。

[0032]

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

[0038] 图1是本发明实施例提供的一种数据库查询方法的流程示意图;[0039] 图2-a是本发明实施例提供的一种数据库系统的架构示意图;

[0037] [0040] [0041] [0042] [0043] [0044] [0045]

图2-b是本发明实施例提供的另一种数据库系统的架构示意图;图3-a是本发明实施例提供的一种数据库查询装置的示意图;图3-b是本发明实施例提供的另一种数据库查询装置的示意图;图4-a是本发明实施例提供的一种计算机系统的示意图;图4-b是本发明实施例提供的另一种计算机系统的示意图;图5是本发明实施例提供另的一种数据库系统的架构示意图。

具体实施方式

[0046] 本发明实施例提供数据库查询方法和装置及数据库系统,以期丰富数据库查询功能,增强数据库查询的易用性。

6

CN 103902543 A[0047]

说 明 书

4/14页

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的

附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

[0048] 以下分别进行详细说明。

[0049] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。[0050] 本发明数据库查询方法的一个实施例,一种数据库查询方法可包括:接收来自客户端的查询语句;解析上述查询语句以得到上述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在上述函数标识对应的函数;若查找到了上述函数标识对应的第一函数,则获取第一函数对应的函数调用接口信息,并通过获取到的上述函数调用接口信息调用第一函数对数据库进行查找操作,向上述客户端反馈第一函数对数据库进行查找操作而得到的处理结果。[0051] 参见图1,本发明实施例提供的一种数据库查询方法可包括:[0052] 101、接收来自客户端的查询语句。[0053] 在实际应用中,用户可通过客户端发送查询语句,以请求对数据库进行相应的查询操作。

[0054] 102、解析上述查询语句以得到该查询语句所包含的函数标识。[0055] 在本发明的一些实施例中,接收来自客户端的查询语句后,可先检查查询语句的语法是否正确,若语法正确,再解析该查询语句以得到该查询语句所包含的函数标识,若语法不正确,可提示语法不正确。当然,也可默认查询语句的语法是正确的而不进行语法检查。可以理解的是,查询语句中可能包含一个或多个函数的函数标识(例如可包含第一函数的函数标识,还可包含第二函数的函数标识等),可通过解析查询语句以得到该查询语句所包含的一个或多个函数的函数标识。[0056] 103、在N个标准函数和已注册的M个自定义函数中查找是否存在与上述函数标识对应的第一函数。[0057] 其中,N和M可为自然数或正整数。[0058] 在本发明的一些实施例中,上述M个自定义函数中的部分或全部可为查询原语。[0059] 在本发明的一些实施例中,可维护一张可用函数列表,其中,该可用函数列表中的记录可包括用于记录函数标识的第一字段和用于记录函数调用接口信息的第二字段,可用函数列表中例如记录了N个标准函数的函数标识和函数调用接口信息,可用函数列表中还记录了M个自定义函数的函数标识和函数调用接口信息,其中,上述M和N为自然数。举例来说,可用函数列表的记录a中记录有标准函数a1的函数标识和标准函数a1的函数调用

7

CN 103902543 A

说 明 书

5/14页

接口信息,可用函数列表的记录b中记录有自定义函数b1的函数标识和自定义函数b1的函数调用接口信息,当然,可用函数列表中还可记录其它信息,例如函数所存储的位置和/或所属函数库名称等。

[0060] 在本发明的一些实施例中,例如可在可用函数列表中查找是否存在与解析得到的函数标识匹配的记录;若在可用函数列表查找到与解析得到的函数标识匹配的记录,则表示查找到了该函数标识对应的第一函数(为便于引述,下面称之为第一函数),即解析得到的函数标识对应的第一函数是可用函数,后续能够调用第一函数进行查询操作。[0061] 其中,第一函数可能是用于实现各种功能的函数,例如第一函数可为用于计算标准差的函数或用于画散点图的函数、或用于画柱状图的函数、或用于画折线图的函数、用于计算相关系数的函数、用于计算方差的函数、用于计算相关自系数的函数、用于计算加权平均值的函数、用于取对数的函数或用于实现其它功能的函数。[0062] 104、若查找到了上述函数标识对应的第一函数,则获取第一函数对应的函数调用接口信息(为便于引述,下面可称第一函数调用接口信息),并通过获取到的第一函数调用接口信息调用第一函数对数据库进行查找操作。[0063] 在本发明一些实施例中,若未查找到上述函数标识对应的函数,则向客户端反馈提示信息以提示查询失败或查询函数无效。例如,若在可用函数列表中未查找到与解析得到的函数标识匹配的记录,则表示未查找到了该函数标识对应的函数,解析得到的函数标识对应的函数可能是不可用函数。[0064] 105、向上述客户端反馈第一函数对数据库进行查找操作而得到的处理结果。[0065] 在本发明的一些实施例中,若第一函数为上述已注册的M个自定义函数中的其中一个;接收来自客户端的查询语句之前还可包括如下举例方式的第一函数注册过程:接收来自客户端的函数注册请求;解析该函数注册请求以得到该函数注册请求所包含的第一函数的函数标识和函数调用接口信息,并可在可用函数列表中添加一条记录,该添加的一条记录包含第一函数的函数标识和第一函数的函数调用接口信息,当然该添加的一条记录还可包含其它与第一函数相关的信息。可以理解,进行函数注册的目的之一是使的该函数变成系统的可用函数。在实际应用中,可提供自定义函数接口,以便利用自定义函数接口来更新可用函数列表(例如在可用函数列表中增加、删除和/或修改记录),以实现自定义函数的注册等。

[0066] 在本发明的一些实施例中,例如可以在客户端和数据库之间的新部署虚拟解释层,本实施例的上述方案例如可在虚拟解释层上具体实施,当然本实施例的上述方案亦可在其它查询实体上实施。[0067] 由上可见,本实施例方案在接收来自客户端的查询语句;解析上述查询语句以得到上述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在上述函数标识对应的第一函数;若查找到了上述函数标识对应的第一函数,则通过第一函数的函数调用接口调用第一函数对数据库进行查找操作,并反馈第一函数对数据库进行查找操作而得到的处理结果。由于本实施例方案中提出了引入自定义函数的机制,这样就在一定程度上打破了标准函数查询功能单一的缺陷,如此有利于扩展丰富数据库查询功能,增强数据库查询可用性。可通过注册各种功能的自定义函数,来支持例如求方差、相关系数等等复杂计算、查询结果图形化、可视化等复杂的展示特性,这样有利于更充分深

8

CN 103902543 A

说 明 书

6/14页

入的使用分析数据库中的数据(例如可有利于更充分深入的使用分析数据库中的性能数据等),进而有利于为后续的操作提供更可靠更准确的分析数据奠定基础。[0068] 为便于更好的理解和实施本发明实施例的上述方案,下面通过举例一些应用场景进行说明。

[0069] 参见图2-a和图2-b,图2-a和图2-b是本发明实施例提供的两种数据库系统的架构图。

[0070] 如图2-a所示,客户端210和数据库230之间部署了虚拟解释层220,虚拟解释层220可调用函数库240中的函数。其中,2-a所示虚拟解释层220可包括查询接口221、自定义函数接口222、可用函数列表223、逻辑处理单元224。其中如图2-b所示,数据库系统还可包括查询结果整合单元225。其中,客户端210可以是浏览器。[0071] 查询接口221主要负责接收来自客户端210的查询语句。[0072] 下面举例一条查询语句:[0073] select std(E1),xplot(E2)from all where app=”search”[0074] 其中,假设std和xplot可能是自定义查询原语,假设std()功能为计算标准差,xplot()的功能为画出数据的散点图,则上述查询语句意思为在数据库230里查询app为“search”时的数据库中数据,并返回E1列的标准差和E2列的散点图。其中,std和xplo均可看做是函数标识。

在实际应用中,用户可通过客户端210发送查询语句,以请求对数据库230进行相

应的查询操作。

[0076] 查询接口221接收来自客户端210的查询语句后,可先检查该查询语句的语法是否正确,若语法正确,则查询接口221向逻辑处理单元224传递该语法的查询语句;若语法不正确,查询接口221可向客户端210反馈提示信息,以提示语法不正确。

[0077] 逻辑处理单元224主要负责解析上述查询语句以得到该查询语句所包含的函数标识,在可用函数列表223中查找是否存在与解析得到的函数标识匹配的记录。其中,逻辑处理单元224若在可用函数列223表查找到与解析得到的函数标识匹配的记录,则表示查找到了该函数标识对应的第一函数,即,解析得到的函数标识对应的函数是可用函数,后续能够调用第一函数进行查询操作。其中,第一函数例如可为用于计算标准差的函数或用于画散点图的函数或用于实现其它功能的函数。[0078] 其中,虚拟解释层220维护的可用函数列表223中的记录可包括用于记录函数标识的第一字段和用于记录函数调用接口信息的第二字段,可用函数列表223中例如记录了N个标准函数的函数标识和函数调用接口信息,可用函数列表223中还记录了M个自定义函数的函数标识和函数调用接口信息,其中该M和N为自然数。举例来说,可用函数列表223的记录a中记录有标准函数a1的函数标识和标准函数a1的函数调用接口信息,可用函数列表223的记录b中记录有自定义函数b1的函数标识和自定义函数b1的函数调用接口信息,当然,可用函数列表223中还可记录其它信息,例如,函数所存储的位置和/或所属函数库名称等。

[0075]

在本发明的一些实施例中,上述M个自定义函数中的部分或全部可为查询原语。

[0080] 逻辑处理单元224若查找到了上述函数标识对应的第一函数,则获取第一函数对应的函数调用接口信息,并通过获取到的上述函数调用接口信息调用第一函数对数据库

[0079]

9

CN 103902543 A

说 明 书

7/14页

230进行查找操作。第一函数可通过数据库230提供的数据访问接口获取数据库230中的相应数据。

[0081] 查询结果整合单元225主要负责将第一函数对数据库230进行查找操作而得到的处理结果进行整合,向客户端210反馈整合处理结果。例如查找操作得到的处理结果包括数据和图形,查询结果整合单元225可将数据和图形进行融合并向客户端210反馈融合的结果。

自定义函数接口222主要负责接收来自客户端310的函数注册请求;自定义函数接口222解析该函数注册请求以得到该函数注册请求所包含的函数标识和函数调用接口信息,并可在可用函数列表223中添加一条记录,该添加的一条记录包含解析得到的函数标识和函数调用接口信息,当然该添加的一条记录还可包含其它与第一函数相关的信息。用户可通过客户端20将自定义函数发送给虚拟解释层220,自定义函数接口222将来自客户端210的自定义函数添加到函数库240中。

[0083] 函数库240中可包括多个标准函数和多个自定义函数。函数库240中的一些函数之间可以相互调用。函数库240中例如可包括如下自定义函数:[0084] 用于画散点图的函数xplot、[0085] 用于画柱状图的函数xhist、[0086] 用于画折线图的函数xline、[0087] 用于计算标准差的函数std、[0088] 用于计算相关系数的函数corr、[0089] 用于计算方差的函数variance、

[0090] 用于计算自相关系数的函数self_corr、[0091] 用于计算加权平均值的函数weight_ave、[0092] 用于计算集合平均值的函数geo_ave、[0093] 用于计算取对数的函数log等。

[0094] 下面举例虚拟解释层220的一种工作过程。

[0095] 下面以查询接口221接收到的来自客户端210的查询语句如下为例:[0096] select std(E1),xplot(E2)from all where app=”search”[0097] 首先,查询接口221接收到上述查询语句,查询接口221判断该查询语句的语法是否正确。假设上述查询语句语法正确,查询接口221进而将该查询语句传递给逻辑处理单元224。逻辑处理单元224解析该查询语句得到该查询语句包含的函数标识std和xplot,假设std和xplot对应的函数为自定义函数,逻辑处理单元224在可用函数列表223中查询到这函数标识std和xplot对应的记录。并可在可用函数列表223中查到自定义函数std和xplot的函数调用接口信息,逻辑处理单元224利用自定义函数std和xplot的函数调用接口信息调用函数库240中的自定义函数std和xplot。被调用的自定义函数std和xplot通过数据库230提供的访问接口获得数据库230中的数据。例如,函数std获得数据库230中app为search的all数据表中的E1列数据,并对这列数据计算标准差,然后

[0082]

将计算的标准差结果返回给虚拟解释层220。函数xplot获取数据库230中app为search的all数据表中E2列数据,将E2列数据画成散点图,然后将散点图返回给虚拟解释层220。虚拟解释层220得到了标准差结果和散点图,查询结果整合单元225将该标准差结果和散

10

CN 103902543 A

说 明 书

8/14页

点图整合在一起,将整合后的结果返回给客户端210。[0098] 可以理解,图2-a和图2-b所示的功能单元组合方式的虚拟解释层220仅为举例说明,在实际应用中,功能单元的架构还可能灵活变化。[0099] 由上可见,本实施例的方案中,在客户端210和数据库230之间引入虚拟解释层220,虚拟解释层220用于接收来自客户端210的查询语句;解析上述查询语句以得到上述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在上述函数标识对应的函数;若查找到了上述函数标识对应的第一函数,则通过第一函数的函数调用接口调用第一函数对数据库进行查找操作,并反馈第一函数对数据库进行查找操作而得到的处理结果。由于本实施例方案中提出了引入自定义函数的机制,这样就在一定程度上打破了标准函数查询功能单一的缺陷,如此有利于扩展丰富数据库查询功能,增强数据库查询可用性。并且,引入数据库查询装置220来解除客户端210和数据库230直接耦合,有利于简化客户端210和数据库230的对外接口。[0100] 例如,可通过注册各种功能的自定义函数,来支持例如求方差、相关系数等等复杂计算、数据图形化可视化等复杂的展示特性,这样有利于更充分深入的使用分析数据库中的数据(举例来说,可有利于更充分深入的使用分析数据库中的性能数据等),进而有利于为后续的操作提供更可靠更准确的分析数据奠定基础。

[0101]

为便于更好实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关

装置。

参见图3-a、本发明实施例提供一种数据库查询装置300,可包括:

[0103] 第一接收单元310、第一解析单元320、查找单元330、函数调用单元340和反馈单元350。

[0104] 其中,第一接收单元310,用于接收来自客户端的查询语句;[0105] 第一解析单元320,用于解析第一接收单元310接收到的上述查询语句以得到上述查询语句所包含的函数标识;[0106] 查找单元330,用于在N个标准函数和已注册的M个自定义函数中查找是否存在与第一解析单元320得到的上述函数标识对应的第一函数;[0107] 函数调用单元340,用于若上述查找单元330查找到了与上述函数标识对应的第一函数,则获取第一函数对应的第一函数调用接口信息,并通过获取到的第一函数调用接口信息调用第一函数对数据库进行查找操作,[0108] 反馈单元350,用于向上述客户端反馈第一函数对数据库进行查找操作而得到的处理结果。

[0109] 在本发明的一些实施例中,在第一接收单元310接收来自客户端的查询语句后,第一解析单元320可先检查查询语句的语法是否正确,若语法正确,再解析该查询语句以得到该查询语句所包含的函数标识,若语法不正确,可提示语法不正确。当然,也可默认查询语句的语法是正确的而不进行语法检查。可以理解的是,查询语句中可能包含一个或多个函数的函数标识(例如可包含第一函数的函数标识,还可包含第二函数的函数标识等),第一解析单元320可通过解析查询语句以得到该查询语句所包含的一个或多个函数的函数标识。

[0102] [0110]

在本发明的一些实施例中,可维护一张可用函数列表,其中,该可用函数列表中的

11

CN 103902543 A

说 明 书

9/14页

记录可包括用于记录函数标识的第一字段和用于记录函数调用接口信息的第二字段,可用函数列表中例如记录了N个标准函数的函数标识和函数调用接口信息,可用函数列表中还记录了M个自定义函数的函数标识和函数调用接口信息,其中,上述M和N为自然数。举例来说,可用函数列表的记录a中记录有标准函数a1的函数标识和标准函数a1的函数调用接口信息,可用函数列表的记录b中记录有自定义函数b1的函数标识和自定义函数b1的函数调用接口信息,当然,可用函数列表中还可记录其它信息,例如函数所存储的位置和/或所属函数库名称等。

[0111] 在本发明的一些实施例中,上述已经注册的M个自定义函数中的部分或全部可为查询原语。

[0112] 在本发明的一些实施例中,查找单元330可具体用于,在可用函数列表中查找是否存在与上述函数标识匹配的记录。在本发明一些实施例中,查找单元330若未查找到上述函数标识对应的函数,则反馈单元350还可向客户端反馈提示信息以提示查询失败或查询函数无效。例如,若查找单元330在可用函数列表中未查找到与第一解析单元320解析得到的函数标识匹配的记录,则表示未查找到了该函数标识对应的函数,第一解析单元320解析得到的函数标识对应的函数可能是不可用函数。

其中,第一函数可能是用于实现各种功能的函数,例如第一函数可为用于计算标

准差的函数或用于画散点图的函数、或用于画柱状图的函数、或用于画折线图的函数、用于计算相关系数的函数、用于计算方差的函数、用于计算相关自系数的函数、用于计算加权平均值的函数、用于取对数的函数或用于实现其它功能的函数。[0114] 参见图3-b,在本发明的一些实施例中,若第一函数为上述已注册的M个自定义函数中的其中一个,数据库查询装置300还可包括:第二接收单元360和注册单元370。[0115] 第二接收单元360,用于在第一接收单元310接收来自客户端的上述查询语句之前,接收来自客户端的函数注册请求。[0116] 注册单元370,用于解析第二接收单元360接收到的上述函数注册请求,以得到上述函数注册请求所包含的第一函数的函数标识和第一函数调用接口信息,并在上述可用函数列表中添加一条记录,上述添加的一条记录包含第一函数的函数标识和第一函数调用接口信息。

[0117] 可以理解的是,本实施例的数据库查询装置300的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

[0118] 由上可见,本实施例数据库查询装置300接收来自客户端的查询语句;解析上述查询语句以得到上述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在上述函数标识对应的函数;若查找到了上述函数标识对应的第一函数,则通过第一函数的函数调用接口调用第一函数对数据库进行查找操作,并反馈第一函数对数据库进行查找操作而得到的处理结果。由于本实施例方案中提出了引入自定义函数的机制,这样就在一定程度上打破了标准函数查询功能单一的缺陷,如此有利于扩展丰富数据库查询功能,增强数据库查询可用性。可通过注册各种功能的自定义函数,来支持例如求方差、相关系数等等复杂计算、数据图形化可视化等复杂的展示特性,这样有利于更充分深入的使用分析数据库中的数据(例如可有利于更充分深入的使用分析数据库中的性能数

[0113]

12

CN 103902543 A

说 明 书

10/14页

据等),进而有利于为后续的操作提供更可靠更准确的分析数据奠定基础。[0119] 图4-a为本发明提供的一种计算机系统的结构示意图,如图4-a所示,本实施例的计算机系统包括至少一个总线401、与总线401相连的至少一个处理器402以及与总线401相连的至少一个存储器403。[0120] 其中,处理器402通过总线401调用存储器403中存储的代码,以用于接收来自上述客户端的查询语句;解析上述查询语句以得到上述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在上述函数标识对应的第一函数,其中,上述N和M为自然数;若查找到了上述函数标识对应的第一函数,则获取第一函数对应的第一函数调用接口信息,并通过获取到的第一函数调用接口信息调用第一函数对数据库进行查找操作,向客户端反馈第一函数对数据库进行查找操作而得到的处理结果。[0121] 在本发明一些实施例中,处理器402在接收来自客户端的查询语句后,可先检查查询语句的语法是否正确,若语法正确,再解析该查询语句以得到该查询语句所包含的函数标识,若语法不正确,可提示语法不正确。当然也可默认查询语句的语法是正确的而不进行语法检查。可以理解的是,查询语句中可能包含一个或多个函数的函数标识,处理器402可通过解析查询语句以得到该查询语句所包含的一个或多个函数的函数标识。

其中,N和M可为自然数或正整数。

[0123] 在本发明的一些实施例中,上述M个自定义函数中的部分或全部可为查询原语。[0124] 在本发明的一些实施例中,处理器402可维护一张可用函数列表,该可用函数列表中的记录可包括用于记录函数标识的第一字段和用于记录函数调用接口信息的第二字段,可用函数列表中例如记录了N个标准函数的函数标识和函数调用接口信息,可用函数列表中还记录了M个自定义函数的函数标识和函数调用接口信息,其中,上述M和N为自然数。举例来说,可用函数列表的记录a中记录有标准函数a1的函数标识和标准函数a1的函数调用接口信息,可用函数列表的记录b中记录有自定义函数b1的函数标识和自定义函数b1的函数调用接口信息,当然,可用函数列表中还可记录其它信息,例如函数所存储的位置和/或所属函数库名称等。

[0125] 在本发明的一些实施例中,处理器402例如可在可用函数列表中查找是否存在与解析得到的函数标识匹配的记录;若在可用函数列表查找到与解析得到的函数标识匹配的记录,则表示查找到了该函数标识对应的函数(为便于引述,下面称之为第一函数),即,解析得到的函数标识对应的函数是可用函数,后续能够调用第一函数进行查询操作。[0126] 其中,第一函数可能是用于实现各种功能的函数,例如第一函数可为用于计算标准差的函数或用于画散点图的函数、或用于画柱状图的函数、或用于画折线图的函数、用于计算相关系数的函数、用于计算方差的函数、用于计算相关自系数的函数、用于计算加权平均值的函数、用于取对数的函数或用于实现其它功能的函数。[0127] 在本发明的一些实施例中,处理器402若未查找到上述函数标识对应的函数,则处理器402向客户端反馈提示信息以提示查询失败或查询函数无效。例如,若在可用函数列表中未查找到与解析得到的函数标识匹配的记录,则表示未查找到了该函数标识对应的函数,解析得到的函数标识对应的函数可能是不可用函数。

[0122] [0128]

在本发明的一些实施例中,若第一函数为上述已注册的M个自定义函数中的其中一个;处理器402接收来自客户端的查询语句之前还可包括执行如下举例方式的第一函数

13

CN 103902543 A

说 明 书

11/14页

注册过程:即,处理器402还可用于,接收来自客户端的函数注册请求;解析该函数注册请求以得到该函数注册请求所包含的第一函数的函数标识和第一函数的的第一函数调用接口信息,并可在可用函数列表中添加一条记录,该添加的一条记录包含第一函数的函数标识和第一函数的第一函数调用接口信息,当然,该添加的一条记录还可包含其它一些与第一函数相关的信息。可以理解的是,进行函数注册的目的之一是使的该函数变成系统的可用函数。

[0129] 在实际应用中,处理器402可提供自定义函数接口,以便利用自定义函数接口来更新可用函数列表(例如,在可用函数列表中增加、删除和/或修改记录等),以实现自定义函数的注册等。

[0130] 在本发明一些实施例中,处理器402可将第一函数对数据库进行查找操作而得到的处理结果进行整合,向客户端反馈整合处理结果。例如查找操作而得到的处理结果包括数据和图形,处理器402可将数据和图形进行融合,向客户端反馈融合的结果。[0131] 参见图4-b,图4-b为本发明实施例提供的另一种计算机系统400的结构示意图,计算机系统400还可包括输入装置404和输出装置405,输入装置404和输出装置405与总线401。

[0132] 本实施例提供的计算机系统,可以用于执行上述方法实施例的技术方案中计算机系统对应执行的部分,其实现原理和技术效果类似,此处不再赘述。图4-a或图4-a仅为本发明提供的计算机系统的结构的一种示意图,具体结构可根据实际进行调整。[0133] 由上可见,本实施例计算机系统400接收来自客户端的查询语句;解析上述查询语句以得到上述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在上述函数标识对应的函数;若查找到了上述函数标识对应的第一函数,则通过第一函数的函数调用接口调用第一函数对数据库进行查找操作,并反馈第一函数对数据库进行查找操作而得到的处理结果。由于本实施例方案中提出了引入自定义函数的机制,这样就在一定程度上打破了标准函数查询功能单一的缺陷,如此有利于扩展丰富数据库查询功能,增强数据库查询可用性。可通过注册各种功能的自定义函数,来支持例如求方差、相关系数等等复杂计算、数据图形化可视化等复杂的展示特性,这样有利于更充分深入的使用分析数据库中的数据(例如可有利于更充分深入的使用分析数据库中的性能数据等),进而有利于为后续的操作提供更可靠更准确的分析数据奠定基础。[0134] 参见图5,本发明实施例还提供一种数据库系统,可包括:客户端510、虚拟解释层520和数据库530。[0136] 其中,客户端510用于发送查询语句。[0137] 其中,客户端510可以是浏览器。[0138] 虚拟解释层520,用于接收来自上述客户端的查询语句;解析上述查询语句以得到上述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在上述函数标识对应的第一函数,其中,上述N和M为自然数;若查找到了上述函数标识对应的第一函数,则获取第一函数对应的第一函数调用接口信息,并通过获取到的上述函数调用接口信息调用第一函数对数据库530进行查找操作,向客户端510反馈第一函数对数据库530进行查找操作而得到的处理结果。[0139] 在本发明的一些实施例中,虚拟解释层520在接收来自客户端510的查询语句后,

[0135]

14

CN 103902543 A

说 明 书

12/14页

可先检查查询语句的语法是否正确,若语法正确,再解析该查询语句以得到该查询语句所包含的函数标识,若语法不正确,可提示语法不正确。当然也可默认查询语句的语法是正确的而不进行语法检查。可以理解的是,查询语句中可能包含一个或多个函数的函数标识,虚拟解释层520可通过解析查询语句以得到该查询语句所包含的一个或多个函数的函数标识。

其中,N和M可为自然数或正整数。

[0141] 在本发明的一些实施例中,上述M个自定义函数中的部分或全部可为查询原语。[0142] 在本发明的一些实施例中,虚拟解释层520可维护一张可用函数列表,其中,该可用函数列表中的记录可包括用于记录函数标识的第一字段和用于记录函数调用接口信息的第二字段,可用函数列表中例如记录了N个标准函数的函数标识和函数调用接口信息,可用函数列表中还记录了M个自定义函数的函数标识和函数调用接口信息,其中,上述M和N为自然数。举例来说,可用函数列表的记录a中记录有标准函数a1的函数标识和标准函数a1的函数调用接口信息,可用函数列表的记录b中记录有自定义函数b1的函数标识和自定义函数b1的函数调用接口信息,当然,可用函数列表中还可记录其它信息,例如函数所存储的位置和/或所属函数库名称等。[0143] 在本发明的一些实施例中,虚拟解释层520例如可在可用函数列表中查找是否存在与解析得到的函数标识匹配的记录;若在可用函数列表查找到与解析得到的函数标识匹配的记录,则表示查找到了该函数标识对应的第一函数,即解析得到的函数标识对应的第一函数是可用函数,后续能够调用第一函数进行查询操作。[0144] 其中,第一函数可能是用于实现各种功能的函数,例如第一函数可为用于计算标准差的函数或用于画散点图的函数、或用于画柱状图的函数、或用于画折线图的函数、用于计算相关系数的函数、用于计算方差的函数、用于计算相关自系数的函数、用于计算加权平均值的函数、用于取对数的函数或用于实现其它功能的函数。[0145] 在本发明一些实施例中,虚拟解释层520若未查找到上述函数标识对应的函数,则向客户端反馈提示信息以提示查询失败或查询函数无效。例如,若在可用函数列表中未查找到与解析得到的函数标识匹配的记录,则表示未查找到了该函数标识对应的函数,解析得到的函数标识对应的函数可能是不可用函数。[0146] 在本发明的一些实施例中,若第一函数为上述已注册的M个自定义函数中的其中一个;虚拟解释层520接收来自客户端的查询语句之前还可包括执行如下举例方式的第一函数注册过程:即,虚拟解释层520还可用于,接收来自客户端510的函数注册请求;解析该函数注册请求以得到该函数注册请求所包含的第一函数的函数标识和第一函数的第一函数调用接口信息,并可在可用函数列表中添加一条记录,该添加的一条记录包含第一函数的函数标识和第一函数的第一函数调用接口信息,当然,该添加的一条记录还可包含其它与第一函数相关的信息。可以理解的是,进行函数注册的目的之一是使的该函数变成系

[0140]

统的可用函数。在实际应用中,虚拟解释层520可提供自定义函数接口,以便利用自定义函数接口来更新可用函数列表(例如在可用函数列表中增加、删除和/或修改记录),以实现自定义函数的注册等。

[0147] 在本发明一些实施例中,虚拟解释层520可将第一函数对数据库530进行查找操作而得到的处理结果进行整合,向客户端510反馈整合处理结果。例如查找操作而得到的

15

CN 103902543 A

说 明 书

13/14页

处理结果包括数据和图形,虚拟解释层520可将数据和图形进行融合,向客户端510反馈融合的结果。

[0148] 由上可见,本实施例的方案在客户端510和数据库530之间引入虚拟解释层520,虚拟解释层520用于接收来自客户端510的查询语句;解析上述查询语句以得到上述查询语句所包含的函数标识;在N个标准函数和已注册的M个自定义函数中查找是否存在上述函数标识对应的函数;若查找到了上述函数标识对应的第一函数,则通过第一函数的函数调用接口调用第一函数对数据库进行查找操作,并反馈第一函数对数据库进行查找操作而得到的处理结果。由于本实施例方案中提出了引入自定义函数的机制,这样就在一定程度上打破了标准函数查询功能单一的缺陷,如此有利于扩展丰富数据库查询功能,增强数据库查询可用性。并且,引入数据库查询装置520来解除客户端510和数据库530直接耦合,有利于简化客户端510和数据库530的对外接口。可通过注册各种功能的自定义函数,来支持例如求方差、相关系数等等复杂计算、数据图形化可视化等复杂的展示特性,这样有利于更充分深入的使用分析数据库中的数据(例如可有利于更充分深入的使用分析数据库中的性能数据等),进而有利于为后续的操作提供更可靠更准确的分析数据奠定基础。[0149] 本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的数据库查询方法的部分或全部步骤。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和单元并不一定是本发明所必须的。

[0151] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

[0152] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

[0153] 上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

[0154] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

[0150]

上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式

[0155]

16

CN 103902543 A

说 明 书

14/14页

体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

[0156] 以上上述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

17

CN 103902543 A

说 明 书 附 图

1/4页

图1

18

CN 103902543 A

说 明 书 附 图

2/4页

图2-a

图2-b

19

CN 103902543 A

说 明 书 附 图

3/4页

图3-a

图3-b

20

CN 103902543 A

说 明 书 附 图

4/4页

图4-a

图4-b

图5

21

因篇幅问题不能全部显示,请点此查看更多更全内容