关系型数据库动态扩展的方法、装置及终端设备与流程

文档序号:25872480发布日期:2021-07-16 16:49阅读:173来源:国知局
关系型数据库动态扩展的方法、装置及终端设备与流程

1.本申请属于计算机技术领域,尤其涉及一种关系型数据库动态扩展的方法、装置及终端设备。


背景技术:

2.在大数据应用中,数据的存储是重要的组成部分,数据库是存放数据的仓库,随着产品或项目的发展,数据库的数据需要更新迭代,用户可以对文件中的数据进行新增、查询、更新、删除等操作。
3.数据库包括关系型数据库和非关系型数据库。非关系型数据库能较好的使用数据结构的动态扩展,在存在有数据结构动态扩展的需求时,数据存储一般会选择非关系型数据库进行存储,但是非关系型数据库结构复杂,不提供sql支持,复杂查询不方便。关系型数据库结构简单,提供sql支持,查询方便,但是关系型数据库动态扩展困难。


技术实现要素:

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.图1是本申请一实施例提供的关系型数据库动态扩展的方法应用场景示意图;
32.图2是本申请一实施例提供的关系型数据库动态扩展的方法的流程示意图;
33.图3是本申请一实施例提供的创建分表数据信息的方法的流程示意图;
34.图4是本申请一实施例提供的关系型数据库动态扩展装置与其外围连接结构示意图;
35.图5是本申请一实施例提供的数据分析装置的结构示意图;
36.图6是本申请一实施例提供的分表创建装置的结构示意图;
37.图7是本申请一实施例提供的终端设备的结构示意图;
38.图8是本申请一实施例提供的关系型数据库动态扩展的方法所适用的计算机的结构示意图。
具体实施方式
39.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
40.应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
41.还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
42.如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0043]
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0044]
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0045]
目前大数据运用不断提升,在大数据应用场景中,数据存储非常重要,随着数据的不断更新和增加,需要将数据结构进行动态扩展。目前,由于关系型数据库动态扩展困难,人人往往会选择动态扩展较为容易的非关系型数据库,但是菲关系型数据库存在不支持sql、成本较高、查询速度慢等缺陷。
[0046]
针对上述问题,本申请提供了关系型数据库的动态扩展方法,通过建立分表数据信息,当需要访问关系型数据库时,预先在分表数据信息中查询目标分表的表结构信息,根据目标分表的表结构信息修改初始访问语句,用修改后的初始访问语句访问关系型数据库,既保留关系型数据库的固有的优点,又解决了关系型数据库动态扩展困难的问题。
[0047]
图1为本申请实施例提供的关系型数据库动态扩展的方法的应用场景示意图,参见图1,上述关系型数据库动态扩展的方法可以用于对关系型数据库进行访问。其中,用户终端10用于用户输入初始访问语句,也就是用户需要查询的信息,用户终端10将初始访问
语句发送给服务器20,服务器20接收初始访问语句并对初始访问语句进行解析,然后根据解析的初始访问语句和分表数据信息进行初始访问语句的修改,最后用修改后的初始访问语句访问服务器20中的关系型数据库。
[0048]
具体地,服务器20具体可以用于获取初始访问语句,解析所述初始访问语句,得到访问信息;根据所述访问信息,在所述分表数据信息中查找目标分表的表结构信息;根据所述目标分表的表结构信息和所述访问信息,修改所述初始访问语句,获得目标访问语句。
[0049]
以下结合图1对本申请实施例的关系型数据库动态扩展的方法进行详细说明。
[0050]
图2示出了本申请提供的关系型数据库动态扩展的方法的示意性流程图,参照图2,对该关系型数据库动态扩展的方法的详述如下:
[0051]
s101,获取预先创建的分表数据信息和用于访问关系型数据库的初始访问语句,其中,所述关系型数据库中的表结构信息与所述分表数据信息中的表结构信息相同。
[0052]
在本实施例中,初始访问语句是用户发来的需要获取到的关系型数据库中的信息的访问语句,由于关系型数据库的结构特点,如果直接访问关系型数据库容易出现错误,所以预先创建一个与关系型数据库中的表结构信息相同的所述分表数据信息以方便查询关系型数据库中的表结构信息。
[0053]
作为举例:关系型数据库中2017年的一个销售表中3月份的表结构信息包括:出单人、审核人和签字人;分表数据信息对应的2017年销售表中3月份的表结构信息也包括:出单人、审核人和签字人。
[0054]
s102,解析所述初始访问语句,得到访问信息;
[0055]
在本实施例中,对所述初始访问语句进行解析是指对sql(结构化查询语言-structured query language)访问语句进行解析,解析sql的含义。访问信息可包括:关键字、上述初始访问语句中的表结构字段和扩展方式等信息。可以根据解析出来的表结构字段确定需要查询的表结构的具体内容,方便后续对初始访问语句进行修改。
[0056]
可选的,解析所述初始访问语句可以使用sql解析装置。
[0057]
作为举例,关键字可以为2017年、2017年3月、2017年3月15日等,表结构字段可以包括名称、学号、课程、出单人、销售人等,扩展方式可以包括数据查询、数据增加、数据修改等。
[0058]
例如,如果用户需要查询2017年3月份和2017年7月份的出单人和审核人信息,则对应的关键字为“2017年3月份”和“2017年7月份”,初始访问语句中的表结构字段为出单人和审核人,扩展方式为查询。
[0059]
如果用户需要查询2016级学生姓名和学号,则对应的关键字为“2016级”,初始访问语句中的表结构字段为学生姓名和学号,扩展方式为查询。
[0060]
需要说明的是,关系型数据库的动态扩展方式可以包括数据查询、数据删除、数据增加和数据修改等。数据查询指的是在关系型书库库中查找需要的信息,将需要的信息从关系型数据库中提取出来。数据删除指的删除关系型数据库中存在的数据。数据增加指的是将一些数据增加到关系型数据库中,使增加的数据在关系型数据库中存在。数据修改指的是将关系型数据库中已经存在的数据进行修改。
[0061]
s103,根据所述访问信息,在所述分表数据信息中查找目标分表的表结构信息,其中,所述目标分表为所述访问信息中所包含的需要查询的信息所在的分表。
[0062]
在一种可能的实现方式中,步骤s103的实现方式具体可以为:根据所述关键字,在所述分表信息数据中查找目标分表的表结构信息。
[0063]
具体的,根据关键字确定需要查询的信息所在的分表的创建时间;
[0064]
根据创建时间,确定分表的表号;
[0065]
根据分表的表号查找目标分表的表结构信息。
[0066]
在本实施例中,通过关键字能速提取有效的查询信息,进而根据关键字快速定位到目标分表,得到目标分表的表结构信息。
[0067]
作为举例:如果用户需要查询2017年3月份和2017年7月份的出单人和审核人信息,则对应的关键字为“2017年3月份”和“2017年7月份”,初始访问语句中的表结构字段为出单人和审核人,扩展方式为查询,则根据“2017年3月份”关键字在分表信息数据中查询到的表结构信息为出单人、审核人和签字人,根据“2017年7月份”关键字在分表信息数据中查询到的表结构信息为出单人和签字人。
[0068]
在一种可能的实现方式中,目标分表的获得方法可以包括:
[0069]
根据所述访问信息,在所述分表数据信息中查找所述需要查询的信息所在的分表,得到目标分表。
[0070]
具体的,可以根据访问信息中的关键字,在上述分表数据信息中查找需要查询的信息所在的分表,得到目标分表。其中,目标分表可以是一个,也可以是多个。
[0071]
由于一个分表表征一个时间范围内的信息,如果访问信息中的关键字在分表数据信息中存在于一个时间范围内,则目标分表只有一个,如果访问信息中的关键字在分表数据信息中存在于两个或两个以上时间范围内,则目标分表有多个。
[0072]
例如:1号分表表征2017年1月-3月的信息,2号分表表征2017年4月-6月的信息。如果关键字为“2017年1月”和“2017年3月”,则根据关键字“2017年1月”查找到对应的分表为1号分表,根据关键字“2017年3月”查找到对应的分表也为1号分表,则目标分表为1号分表。如果关键字为“2017年1月”和“2017年5月”,则根据关键字“2017年1月”查找到对应的分表为1号分表,根据关键字“2017年5月”查找到对应的分表也为2号分表,则目标分表为1号分表和2号分表。
[0073]
在一种可能的实现方式中,目标分表的获得方法可以包括:
[0074]
根据所述关键字,确定所述需要查询的信息所在的分表的创建时间;
[0075]
根据所述创建时间,确定所述分表的表号,得到目标分表。
[0076]
在本实施例中,一个分表对应一个表号,一个表号对应一个创建时间,分表的创建时间与关键字相关联,所以,可以通过确定查询的关键字,得到目标分表的创建时间,根据创建时间可以确定目标分表的表号,进而得到目标分表,使查询更准确且快速。
[0077]
作为举例:如果关键字是2017年3月份,根据2017年3月份可以确定2017年3月份的信息所在的分表创建的时间为2017年9月,且2017年9月创建的分表的表号是1,因此,需要查询的2017年3月份的信息就在表号为1的分表中,表号为1的分表就是目标分表。
[0078]
在一种可能的实现方式中,步骤s103的实现方式具体可以为:
[0079]
根据所述关键字,确定所述需要查询的信息所在的分表的创建时间;
[0080]
根据所述创建时间,在分表管理表中查找目标分表的表号;
[0081]
根据目标分表的表号,在表结构管理表中查询上述表号对应的表结构信息。
[0082]
s104,根据所述目标分表的表结构信息和所述访问信息,修改所述初始访问语句,获得目标访问语句。
[0083]
在一种可能的实现方式中,步骤s104的实现过程可以包括:
[0084]
根据所述目标分表的表结构信息、所述表结构字段和所述扩展方式,修改所述初始访问语句,获得目标访问语句。
[0085]
在一种可能的实现方式中,获得目标访问语句的方法可以包括:
[0086]
在所述需要查询的信息不存在于所述目标分表的表结构信息中的情况下,删除所述需要查询的信息在所述初始访问语句中对应的表结构字段,得到第一候选访问语句;
[0087]
在所述初始访问语句中查找不到与所述目标分表的表结构信息对应的目标表结构字段的情况下,在所述初始访问语句中增加所述目标表结构字段,得到第二候选访问语句,其中,所述目标分表的表结构信息为所述初始访问语句中需要查询的信息所在的分表的表结构信息;
[0088]
将所述第一候选访问语句和/或所述第二候选访问语句记为所述目标访问语句。
[0089]
具体的,每个目标分表对应一个初始访问语句,如果经过查询,初始访问语句中的表结构字段与目标分表的表结构信息相同,则当前目标分表的初始访问语句不用修改,将不用修改的初始访问语句记为第一分表访问语句,如果初始访问语句中的表结构字段与目标分表的表结构信息不相同,则需要修改初始访问语句,将修改后的初始访问语句记为第二分表访问语句。最后,将所有的第一分表访问语句和所有的第二分表访问语句进行组合,得到一个最终的关系型数据库的访问语句,记为目标访问语句。
[0090]
在本实施例中,通过删除所述需要查询的信息在所述初始访问语句中对应的表结构字段,以及通过在所述初始访问语句中增加相应的所述目标表结构字段,对初始访问语句进行修改,可以使修改后的初始访问语句中的表结构字段与关系型数据库的表结构信息相匹配,所以关系型数据库能正确执行目标访问语句进行数据查询,不会出现访问表字段不存在或漏返回数据字段的问题。
[0091]
作为举例,如果客户需要查询2017年3月份和2017年7月份的出单人和审核人信息,则访问信息中的关键字为2017年3月份和2017年7月份,初始访问语句中的表结构字段为出单人和审核人,扩展方式为查询。在分表数据信息查询到2017年3月份的表结构信息有出单人和审核人,则访问2017年3月份的初始访问语句不修改;在分表数据信息查询到2017年7月份的表结构信息只有出单人,则要将访问2017年7月份的初始访问语句中审核人的表结构字段删除;删除审核人的表结构字段的7月份的初始访问语句和3月份的初始访问语句共同组合成目标访问语句。
[0092]
如果客户需要查询2017年3月份和7月份的信息,但是没有具体说明是什么信息,在分表数据信息查询到2017年3月份的表结构信息有出单人和审核人,则在访问2017年3月份的初始访问语句中增加出单人和审核人的表结构字段;在分表数据信息查询到2017年7月份的表结构信息只有出单人,则要将访问2017年7月份的初始访问语句中增加出单人字段,增加表结构字段后的7月份的初始访问语句和增加表结构字段后的3月份的初始访问语句共同组合成目标访问语句。
[0093]
s105,采用所述目标访问语句对所述关系型数据库进行访问。
[0094]
在本实施例中,由于分表数据信息中并不会实际存储数据信息,所以需要查询的
数据信息还是要在关系型数据库中查询。目标访问语句中的表结构字段与需要查询的数据所在的关系型数据库中的表的表结构信息相对应,减少了查询时的出错率,提高了查询效率。
[0095]
本申请实施例,通过创建分表数据信息,当客户需要查询关系型数据库时,可以根据客户发送来的关系型数据库的初始访问语句,首先在分表数据信息中查找目标分表的表结构信息,根据表结构信息修改初始访问语句,最后用修改后的初始访问语句访问关系型数据库。本申请技能享受关系型数据库的功能与便利,还解决了关系型数据库动态扩展困难的问题,由于关系型数据库的访问语句已经根据目标分表的表结构进行了调整,所以关系型数据库能正确执行目标访问语句进行数据查询,不会出现访问表字段不存在或漏返回数据字段的问题。
[0096]
在一种可能的实现方式中,如图3所示,在获取初始访问语句和预先创建的分表数据信息之前,还可以包括:
[0097]
s201,获取用户数据信息。
[0098]
在本实施例中,用户数据信息可以是用户提供的,例如,用户数据信息可以是用户2017年的销售单,也可以是2017年3月份的销售单。
[0099]
s202,根据所述用户数据信息,创建分表数据信息。
[0100]
在本实施例中,分表数据信息包括分表、分表管理表和分表的表结构。
[0101]
在本实施例中,根据用户数据信息创建分表数据信息能保证分表数据信息的表结构信息与关系型数据库中存储的数据的表结构信息相同。创建分表数据信息可以为初始访问语句和关系型数据库之间提供桥梁,保证访问关系型数据库时更顺利,较少出错率。
[0102]
在一种可能的实现方式中,步骤s202的实现方式具体可以为:
[0103]
s2201,根据所述用户数据信息,采用时间分表策略创建至少一个分表,并设定所述分表的表号,其中,一个分表表征一个时间范围内的信息。
[0104]
在本实施例中,时间分表策略可以是按天分表、按周分表、按月分表、按年分表等。
[0105]
作为举例:用户提供的用户数据信息为2017年1月-5月的销售表,其中,1月和2月的销售表中包括出单人和审核人,3-5月的销售表中只有出单人。对于上述用户信息,在创建分表时,可以一个月创建一个分表,即1月创建一个分表记为1号分表,2月创建一个分表记为2号分表,3月创建一个分表记为3号分表,4月创建一个分表记为4号分表,5月创建一个分表记为5号分表;还可以创建两个分表,例如1-2月创建一个分表记为1号分表,3-5月创建一个分表,记为2号分表。当然,对于上述用户数据信息还可以创建按其他时间分表划分的分表。
[0106]
需要说明的是,在分表中不会记载销售单的具体内容,只会记载销售单中各个时间所包含了什么形式的内容,例如:2017年的销售单中1月份的分表,在分表中之后记载1月份有出单人和审核人,但是具体的出单人的人名和审核人的人名等信息是不会记载的,也就是分表中只是一个表结构,表结构中不会记载具体的内容,要想查找具体的内容还是需要到关系型数据库中查找。另外,在划分分表的时间范围时可以根据表结构划分,将相同表结构信息的时间划分到一个分表中,例如1月到3月的表结构信息相同,则将1-3月创建为1号表。创建分表的时间范围可以关系型数据库中的时间范围不同,例如:关系型数据库中1月为1号表,2月为2号表,3月为三号表,1-3月的表结构信息相同,则创建分表时可以将1-3
月创建成1个分表。
[0107]
在一种可能的实现方式中,步骤s2201中还包括:
[0108]
创建所述分表的主键,其中,所述主键中包括所述分表的创建时间的时间戳。
[0109]
在本实施例中,创建主键并在主键中加入时间戳是为了确保通过主键可以计算出分表的创建时间,以便于将分表数据信息与数据路由创建联系,方便后续对分表的查询或修改。
[0110]
作为举例,2019年11月8日12:00:00的时间戳是1573185600;主键为64位long型,在构造主键的时候可以高32位存时间戳,低32位存随机数+自增长值,这样主键的唯一性不受影响,同时将主键右移位运算32位就可以得到这个主键所创建的时间。
[0111]
s2202,创建用于存储所述分表对应的表号与所述分表的时间范围的分表管理表,其中,所述分表的表号与所述分表的创建时间关联。
[0112]
在本实施例中,由于一个分表对用一个表号,一个分表又表征了一段时间范围内的信息,创建一个分表管理表,将分表的表号和分表的时间范围对应存储起来,在以后通过分表的创建时间能定位到具体的分表的表号后,能通过分表管理表快速查找到分表对应的信息。
[0113]
作为举例,2017年的销售表,1-2月记为1号分表,所以1号里边表征了1月和2月的销售信息,3-5月记为2号分表,2号表中表征了3月、4月和5月的销售信息;如果根据主键计算出所要查询的信息的分表所创建的时间为2017年5月,可以得到2017年5月创建的分表的表号是2号分表,可以定位到需要查询的目标分表为2号分表。
[0114]
s2203,根据所述用户数据信息,创建各个分表的表结构以及各个分表的表结构管理表,其中,所述表结构中存储表结构信息。
[0115]
在本实施例中,表结构管理表里边存储有分表的表号和对应的分表的表结构。由于一个分表对应一个表结构信息,创建表结构管理表可以通过定位到的分表的表号快速查询到分表的表结构信息。例如,定位到2号分表,通过表结构管理表可以知道2号分表的表结构为出单人。在一种可能的实现方式中,在步骤s202之后还可以包括:
[0116]
利用分表的创建时间,将分表数据信息与数据路由关联。
[0117]
在本实施方式中,数据路由的作用是提供数据的路由调度,一个分表对应一个创建时间,利用分表的创建时间,将数据路由和分表数据信息创建关联,可以根据需要查询的信息的创建时间,利用数据路由,较快的定位到目标分表。如果没有数据路由在查询数据的时候,可能需要查询较多分表才能查询到所要查询的目标分表,有了数据路由能知道需要查询的数据在哪个分表,直接查询对应的分表即可。
[0118]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0119]
对应于上文实施例所述的关系型数据库动态扩展的方法,图4示出了本申请实施例提供的关系型数据库动态扩展装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
[0120]
参照图4,该装置100包括:分表创建装置110和数据分析装置120,所述分表创建装置110和所述数据分析装置120相连,所述数据分析装置120与关系型数据库相连,所述分表
创建装置还与外部的数据路由装置相连,其中,如图5所示,所述数据分析装置120包括:
[0121]
信息获取模块121、数据分析模块122、信息查询模块123、信息重组模块124和数据访问模块125;
[0122]
其中,信息获取模块121,用于获取预先创建的分表数据信息和用于访问关系型数据库的初始访问语句,其中,所述关系型数据库中的表结构信息与所述分表数据信息中的表结构信息相同;
[0123]
数据分析模块122,用于解析所述初始访问语句,得到访问信息;
[0124]
信息查询模块123,用于根据所述访问信息,在所述分表数据信息中查找目标分表的表结构信息,其中,所述目标分表为所述访问信息中所包含的需要查询的信息所在的分表;
[0125]
信息重组模块124,用于根据所述目标分表的表结构信息和所述访问信息,修改所述初始访问语句,获得目标访问语句;
[0126]
数据访问模块125,用于采用所述目标访问语句对所述关系型数据库进行访问。
[0127]
如图6所示,在一种可能的实现方式中,分表创建装置110包括:
[0128]
数据获取模块111,用于获取用户数据信息;
[0129]
数据创建模块112,用于根据所述用户数据信息,创建分表数据信息。
[0130]
在一种可能的实现方式中,所述分表数据信息包括分表、分表管理表和分表的表结构。
[0131]
在一种可能的实现方式中,数据创建模块112具体用于:
[0132]
分表策略单元,用于根据所述用户数据信息,采用时间分表策略创建至少一个分表,并设定所述分表的表号,其中,一个分表表征一个时间范围内的信息;
[0133]
分表管理单元,用于创建用于存储所述分表对应的表号与所述分表的时间范围的分表管理表,其中,所述分表的表号与所述分表的创建时间关联;
[0134]
表结构管理单元,用于根据所述用户数据信息,创建各个分表的表结构以及各个分表的表结构管理表,其中,所述表结构中存储表结构信息。
[0135]
在一种可能的实现方式中,与信息查询模块123相连的还包括:
[0136]
目标查询模块,用于根据所述访问信息,在所述分表数据信息中查找所述需要查询的信息所在的分表,得到目标分表。
[0137]
在一种可能的实现方式中,所述访问信息包括:关键字、所述初始访问语句中的表结构字段和扩展方式。
[0138]
可选的,所述根据所述访问信息,在所述分表数据信息中查找所述需要查询的信息所在的分表,得到目标分表,可以包括:
[0139]
根据所述关键字,在所述分表数据信息中查找需要查询的信息所在的分表,得到目标分表。
[0140]
可选的,所述根据所述访问信息,在所述分表数据信息中查找目标分表的表结构信息,可以包括:
[0141]
根据所述关键字,在所述分表信息数据中查找目标分表的表结构信息。
[0142]
可选的,所述根据目标分表的表结构信息和所述访问信息,修改所述初始访问语句,获得目标访问语句,可以包括:
[0143]
根据所述目标分表的表结构信息、所述表结构字段和所述扩展方式,修改所述初始访问语句,获得目标访问语句。
[0144]
可选的,所述根据所述关键字,在所述分表数据信息中查找需要查询的信息所在的分表,得到目标分表,可以包括:
[0145]
根据所述关键字,确定所述需要查询的信息所在的分表的创建时间;
[0146]
根据所述创建时间,确定所述分表的表号,得到目标分表。
[0147]
在一种可能的实现方式中,信息重组模块124具体可以用于:
[0148]
在所述需要查询的信息不存在于所述目标分表的表结构信息中的情况下,删除所述需要查询的信息在所述初始访问语句中对应的表结构字段,得到第一候选访问语句,其中,所述第一候选访问语句为所述初始访问语句删除表结构字段后的访问语句;
[0149]
在所述初始访问语句中查找不到与所述目标分表的表结构信息对应的目标表结构字段的情况下,在所述初始访问语句中增加所述目标表结构字段,得到第二候选访问语句,其中,所述目标分表的表结构信息为所述初始访问语句中需要查询的信息所在的分表的表结构信息,第二候选访问语句为所述初始访问语句增加目标表结构字段后的访问语句;
[0150]
将所述第一候选访问语句和/或所述第二候选访问语句记为所述目标访问语句。
[0151]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0152]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0153]
本申请实施例还提供了一种终端设备,参见图7,该终端设400可以包括:至少一个处理器410、存储器420以及存储在所述存储器420中并可在所述至少一个处理器410上运行的计算机程序,所述处理器410执行所述计算机程序时实现上述任意各个方法实施例中的步骤,例如图2所示实施例中的步骤s101至步骤s105。或者,处理器410执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块121至125的功能。
[0154]
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器420中,并由处理器410执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序段,该程序段用于描述计算机程序在终端设备400中的执行过程。
[0155]
本领域技术人员可以理解,图7仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如输入输出设备、网络接入设备、总线等。
[0156]
处理器410可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0157]
存储器420可以是终端设备的内部存储单元,也可以是终端设备的外部存储设备,例如插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。所述存储器420用于存储所述计算机程序以及终端设备所需的其他程序和数据。所述存储器420还可以用于暂时地存储已经输出或者将要输出的数据。
[0158]
总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
[0159]
本申请实施例提供的关系型数据库动态扩展的方法可以应用于计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,pda)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
[0160]
以所述终端设备为计算机为例。图8示出的是与本申请实施例提供的计算机的部分结构的框图。参考图8,计算机包括:通信电路510、存储器520、输入单元530、显示单元540、音频电路550、无线保真(wireless fidelity,wifi)模块560、处理器570以及电源580等部件。
[0161]
下面结合图8对计算机的各个构成部件进行具体的介绍:
[0162]
通信电路510可用于收发信息或通话过程中,信号的接收和发送,特别地,将图像采集设备发送的图像样本接收后,给处理器570处理;另外,将图像采集指令发送给图像采集设备。通常,通信电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noise amplifier,lna)、双工器等。此外,通信电路510还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(global system of mobile communication,gsm)、通用分组无线服务(general packet radio service,gprs)、码分多址(code division multiple access,cdma)、宽带码分多址(wideband code division multiple access,wcdma)、长期演进(long term evolution,lte))、电子邮件、短消息服务(short messaging service,sms)等。
[0163]
存储器520可用于存储软件程序以及模块,处理器570通过运行存储在存储器520的软件程序以及模块,从而执行计算机的各种功能应用以及数据处理。存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0164]
输入单元530可用于接收输入的数字或字符信息,以及产生与计算机的用户设置
以及功能控制有关的键信号输入。具体地,输入单元530可包括触控面板531以及其他输入设备532。触控面板531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板531上或在触控面板531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器570,并能接收处理器570发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板531。除了触控面板531,输入单元530还可以包括其他输入设备532。具体地,其他输入设备532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0165]
显示单元540可用于显示由用户输入的信息或提供给用户的信息以及计算机的各种菜单。显示单元540可包括显示面板541,可选的,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板541。进一步的,触控面板531可覆盖显示面板541,当触控面板531检测到在其上或附近的触摸操作后,传送给处理器570以确定触摸事件的类型,随后处理器570根据触摸事件的类型在显示面板541上提供相应的视觉输出。虽然在图8中,触控面板531与显示面板541是作为两个独立的部件来实现计算机的输入和输入功能,但是在某些实施例中,可以将触控面板531与显示面板541集成而实现计算机的输入和输出功能。
[0166]
音频电路550可提供用户与计算机之间的音频接口。音频电路550可将接收到的音频数据转换后的电信号,传输到扬声器由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路550接收后转换为音频数据,再将音频数据输出处理器570处理后,经通信电路510以发送给比如另一计算机,或者将音频数据输出至存储器520以便进一步处理。
[0167]
wifi属于短距离无线传输技术,计算机通过wifi模块560可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了wifi模块560,但是可以理解的是,其并不属于计算机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0168]
处理器570是计算机的控制中心,利用各种接口和线路连接整个计算机的各个部分,通过运行或执行存储在存储器520内的软件程序和/或模块,以及调用存储在存储器520内的数据,执行计算机的各种功能和处理数据,从而对计算机进行整体监控。可选的,处理器570可包括一个或多个处理单元;优选的,处理器570可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器570中。
[0169]
计算机还包括给各个部件供电的电源580(比如电池),优选的,电源580可以通过电源管理系统与处理器570逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0170]
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述关系型数据库动态扩展的方法各个实施例中的步骤。
[0171]
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述关系型数据库动态扩展的方法各个实施例中的步骤。
[0172]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0173]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0174]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0175]
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0176]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0177]
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1