本技术涉及数据库,尤其涉及sql语句编译和执行方法、电子设备及数据库系统。
背景技术:
1、嵌入式数据库作为一种高效、紧凑的数据库,普通应用于各种电子设备,如包括但不限于手机、车载导航设备、机顶盒等,其可以帮助电子设备高效的存储、管理应用数据等。其中,嵌入式数据库不仅可以嵌入到电子设备的软件中,也可以嵌入到电子设备的硬件结构中。
2、随着物联网时代的到来,应用的数量急剧增长,电子设备中需要存储、管理的应用数据也随着增加。而对于极小资源的电子设备而言,如包括但不限于可穿戴设备、跑步机、血压计等,其存储资源、能耗资源等有限。因此,目前的嵌入式数据库,由于运行空间的限制,无法部署在这些极小资源的电子设备中,以实现对这些极小资源的电子设备中的应用数据的高效存储、管理等。
技术实现思路
1、本技术提供一种sql语句编译和执行方法、电子设备及数据库系统,能够减少嵌入式数据库在电子设备中占用的存储空间,使得极小资源的电子设备中可以部署嵌入式数据库,实现对极小资源的电子设备中的应用数据的高效存储、管理等。
2、为达到上述目的,本技术采用如下技术方案:
3、第一方面,提供一种结构化查询语言sql语句编译和执行方法,应用于第一电子设备,方法包括:响应于数据管理指令,获取第一执行计划,第一执行计划由第二电子设备对第一sql语句编译生成,第一sql语句与数据管理指令对应;执行第一执行计划。
4、基于上述技术方案,第一电子设备在接收到数据管理指令时,可以获取第一执行计划,并执行第一执行计划,进而实现对电子设备中的应用数据的存储、管理等。而第一执行计划是第二电子设备对数据管理指令对应的sql语句编译生成的,也就是说,第一电子设备自身无需对数据管理指令对应的sql语句进行编译操作,这样,在第一电子设备中部署的嵌入式数据库就可以不用包含用于编译sql语句的编译器,可以减少嵌入式数据库在电子设备中占用的存储空间,进而可以使得极小资源的电子设备中可以部署嵌入式数据库。并且,第一电子设备直接调用sql语句编译生成的执行计划,在不改变采用sql语句操作数据库的方式的同时,无需编译sql语句,对于对功耗要求较高的极小资源的电子设备而言,可以达到节省功耗的目的。
5、一种可能的设计中,获取第一执行计划,包括:sql执行引擎通过api接口获取第一执行计划。基于该设计,电子设备可以获取到由sql语句编译生成的执行计划,进而直接执行该执行计划,使得极小资源的电子设备中可以部署嵌入式数据库,实现对极小资源的电子设备中的应用数据的高效存储、管理等。
6、一种可能的设计中,执行第一执行计划,包括:sql执行引擎执行第一执行计划;sql执行引擎根据执行结果启动存储引擎进行数据读写操作。基于该设计,sql执行引擎执行第一执行计划后,根据执行结果启动存储引擎进行数据读写操作,可以实现对电子设备中的应用数据的管理操作,比如:增删改查等各种操作。
7、一种可能的设计中,数据管理指令由第一应用触发,第一执行计划由第二应用提供。基于该设计,数据管理指令触发的应用与提供执行计划的应用不同。示例性的,第一应用可以是用于为用户提供各种功能(如测量心率、计步、记录卡路里、记录跳绳数目等)的上层应用。第二应用可以是用于提供第一执行计划的专用应用程序。这样,对于不同的第一应用,均可以由第二应用来提供第一执行计划,这样,电子设备中仅需要部署一个用于提供执行计划的模块,可以节省占用的电子设备的存储空间,并且由一个应用实现提供执行计划的功能,可以实现对执行计划的统一管理。
8、一种可能的设计中,第二应用的代码中包括第二应用的源代码以及第一sql语句。基于该设计,第二应用的代码中包括自身源代码以及sql语句,这样,在将第二应用的代码编译为可执行文件时,可以将sql语句同步编译,并嵌入到该可执行文件中,进而在电子设备中部署该可执行文件时,可以将sql语句编译的执行计划也部署到电子设备中,以便后续对执行计划的调用。
9、一种可能的设计中,第二应用的源代码的编写语言与第一sql语句的编写语言不同,第二应用的源代码的编写语言与第二执行计划的编写语言相同,第二执行计划由第一sql语句编译生成,第一执行计划由第二执行计划编译生成。基于该设计,将第一sql语句的编写语言先转换成与第二应用的源代码的编写语言相同的语言,再和第二应用的源代码一起编译成可执行文件,可以使得sql语句编译后的文件与第二应用的源代码编译后的文件兼容。
10、一种可能的设计中,第一执行计划为二进制形式。基于该设计,二进制形式是计算机可以识别的形式,因此,可以使得电子设备可以成功执行第一执行计划。
11、第二方面,提供一种sql语句编译和执行方法,应用于第二电子设备,方法包括:接收目标代码,目标代码中包括第一sql语句以及第二应用的源代码,第一sql语句对应第一编写语言,第二应用的源代码对应第二编写语言,第一编写语言与第二编写语言不同;响应于编译指令,将第一sql语句编译成第二执行计划,第二执行计划对应第二编写语言;将第二执行计划与第二应用的源代码编译成可执行文件,可执行文件中包括第一执行计划,第一执行计划由第二执行计划编译生成。
12、基于该设计,第二电子设备接收到编写语言不同的sql语句以及应用的源代码之后,先将sql语句的编写语言转换成与应用的源代码的编写语言相同的语言,然后再将转换后的sql语句与应用的源代码一起编译成可执行文件,该可执行文件中是包括sql语句编译后的执行计划的,进而可以将该执行计划与应用的源代码编译后的文件一起部署到其他电子设备中,如极小资源的电子设备中。这样,电子设备可以直接采用部署的sql语句对应的执行计划对应用数据进行管理,无需在电子设备中部署用于编译sql语句的编译器,可以减少嵌入式数据库在电子设备中占用的存储空间,进而可以使得极小资源的电子设备中可以部署嵌入式数据库。
13、一种可能的设计中,将第一sql语句编译成第二执行计划,包括:第一编译工具将第一sql语句编译成第二执行计划。
14、一种可能的设计中,将第二执行计划与第二应用的源代码编译成可执行文件,包括:第二编译工具将第二执行计划与第二应用的源代码编译成可执行文件。
15、一种可能的设计中,第一编译工具中包括代码扫描器,在将第一sql语句编译成第二执行计划之前,方法还包括:代码扫描器通过扫描目标代码,获取第一sql语句。基于该设计,第一编译工具可以识别与其他应用的源代码包含在一起的sql语句,实现对sql语句的筛选。
16、一种可能的设计中,第一编译工具中还包括sql编译器以及代码生成器,第一编译工具将第一sql语句编译成第二执行计划,包括:sql编译器将第一sql语句编译成第三执行计划,第三执行计划的编写语言与第二编写语言不同;代码生成器根据第三执行计划生成第二执行计划。基于该设计,可以将sql语句转换成与第二应用的源代码编写语言相同的语句,并将转换后的sql语句编译为可执行计划。使得sql语句编译后的文件与第二应用的源代码编译后的文件兼容。
17、一种可能的设计中,可执行文件为二进制形式。基于该设计,二进制形式是计算机可以识别的形式,因此,可以使得电子设备可以成功执行第一执行计划。
18、第三方面,提供一种数据库系统,包括数据库内核和第一编译工具;数据库内核部署于第一电子设备,数据库内核用于执行如上述第一方面及其中任一设计所述的方法;第一编译工具部署于第二电子设备,第一编译工具用于将第一sql语句编译成第二执行计划。
19、一种可能的设计中,数据库内核包括api接口、sql执行引擎和存储引擎;api接口用于为sql执行引擎提供调用第一执行计划的接口;sql执行引擎用于执行第一执行计划;存储引擎用于根据第一执行计划的执行结果进行数据读写操作。
20、一种可能的设计中,第一编译工具包括代码扫描器、sql编译器和代码生成器;代码扫描器,用于扫描所述目标代码,获取所述第一sql语句;sql编译器用于将第一sql语句编译成第三执行计划,第三执行计划的编写语言与第二编写语言不同;代码生成器根据所述第三执行计划生成所述第二执行计划。
21、第四方面,提供一种第一电子设备,第一电子设备包括第一应用、第二应用,以及如上述第三方面及其中任一设计所述的数据库系统中包括的数据库内核,所述第一应用用于触发上述第一方面及其中任一设计所述方法中包括的数据管理指令,所述第二应用用于提供如上述第一方面及其中任一设计所述方法中包括的第一执行计划。
22、第五方面,提供一种第二电子设备,第二电子设备包括如上述第三方面及其中任一设计所述的数据库系统中包括的第一编译工具。
23、第六方面,提供一种电子设备,包括:处理器和存储器,存储器与处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,处理器从存储器中读取计算机指令,以使得电子设备执行如上述第一方面及其中任一设计所述的方法;或者,以使得电子设备执行如上述第二方面及其中任一设计所述的方法。可选的,该存储器可以与处理器耦合,或者,也可以独立于该处理器。
24、一种可能的设计中,电子设备还包括通信接口,该通信接口可用于电子设备与其他装置通信。示例性的,该通信接口可以为收发器、输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等。
25、一种可能的设计中,电子设备还包括显示屏,显示屏可用于电子设备执行显示操作。
26、第七方面,提供一种计算机可读存储介质,计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行如上述第一方面及其中任一设计所述的方法;或者,以使得电子设备执行如上述第二方面及其中任一设计所述的方法。
27、第八方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述第一方面及其中任一设计所述的方法;或者,使得计算机执行如上述第二方面及其中任一设计所述的方法。
28、第九方面,提供一种芯片系统,包括至少一个处理器和至少一个接口电路,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,当至少一个处理器执行指令时,至少一个处理器执行如上述第一方面或第二方面中任一方面任一设计所述的方法。
29、第十方面,提供一种通信系统,包括如上述第四方面所述的第一电子设备以及如上述第五方面所述的第二电子设备。
30、需要说明的是,上述第三方面至第十方面中任一设计所带来的技术效果可以参见第一方面或第二方面中对应设计所带来的技术效果,此处不再赘述。