CN113672615B - 一种基于树型表间关系自动生成sql的数据分析方法与系统 - Google Patents

一种基于树型表间关系自动生成sql的数据分析方法与系统 Download PDF

Info

Publication number
CN113672615B
CN113672615B CN202110830880.5A CN202110830880A CN113672615B CN 113672615 B CN113672615 B CN 113672615B CN 202110830880 A CN202110830880 A CN 202110830880A CN 113672615 B CN113672615 B CN 113672615B
Authority
CN
China
Prior art keywords
sub
group
path
tables
solving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110830880.5A
Other languages
English (en)
Other versions
CN113672615A (zh
Inventor
王鹏
包晨露
李青
李鹏飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Institute of Information Technology AIIT of Peking University
Hangzhou Weiming Information Technology Co Ltd
Original Assignee
Advanced Institute of Information Technology AIIT of Peking University
Hangzhou Weiming Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Advanced Institute of Information Technology AIIT of Peking University, Hangzhou Weiming Information Technology Co Ltd filed Critical Advanced Institute of Information Technology AIIT of Peking University
Priority to CN202110830880.5A priority Critical patent/CN113672615B/zh
Publication of CN113672615A publication Critical patent/CN113672615A/zh
Application granted granted Critical
Publication of CN113672615B publication Critical patent/CN113672615B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种基于树型表间关系自动生成SQL的数据分析方法与系统。所述方法包括:获取数据表总表组并配置总表组的树型表间关系;提交查询条件集、数据字段列表和分析方式;求数据字段列表中各表的全路径的公共路径,将公共路径中远离根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除第一最近公共父表之前的表并对删除后结果求并集作为第一子表组;将查询条件集中各表与第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求第一子表组相同的方法求得第二子表组;根据分析方式针对第二子表组和第一子表组生成SQL分析语句。本申请减少了在数据分析与处理时对人工操作的依赖,进而提升了数据分析与处理的效率。

Description

一种基于树型表间关系自动生成SQL的数据分析方法与系统
技术领域
本申请涉及数据处理技术领域,更为具体来说,本申请涉及一种基于树型表间关系自动生成SQL的数据分析方法与系统。
背景技术
在现代企业的生产实践中,对数据的分析与处理正变得越来越重要,企业对生产中产生的数据进行挖掘分析,从而帮助管理者做出更好的决策,实现精细化管理。为了便于用户对数据进行分析,很多工具都支持自动生成SQL的分析技术。
然而这类自动生成SQL的分析技术普遍只能支持单表分析,对有复杂表间关系的多表分析无能为力,用户依然需要自行定义表间连接方式才能完成数据分析工作。
发明内容
基于上述技术的缺点,本发明旨在建立多表之间根据查询条件集和数据列表字段的多个子表组,根据分析方式针对子表组自动生成SQL语句。
为实现上述技术目的,本申请提供了一种基于树型表间关系自动生成SQL的数据分析方法,包括以下步骤:
获取数据表总表组并配置总表组的树型表间关系,其中,所述总表组中仅配置一个根表;
提交查询条件集、数据字段列表和分析方式;
求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组;
将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组;
根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句。
优选地,所述获取数据表总表组并配置总表组的树型表间关系还包括:非根表都仅有一个外键字段与另一个数据表关联。
具体地,所述配置总表组的树型表间关系采用四元组的方式,所述四元组包括第一数据表、第一数据表的外键字段、第二数据表和第二数据表的主键字段。
进一步地,求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组,包括:
将所述数据字段列表中各表名作为第一表名集合;
求所述第一表名集合中每一个表的全路径,其中,一个表的全路径是从根表开始沿表间关系到这个表的最短路径;
求每一个表的全路径的公共路径;
将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表;
从各表的全路径中删除所述第一最近公共父表之前的表;
对删除后结果求并集作为第一子表组。
再进一步地,将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组,包括:
将所述查询条件集中各表名作为第二表名集合;
将所述第二表名集合和所述第一最近公共父表合并;
求合并后每一个表的全路径,其中,一个表的全路径是从根表开始沿表间关系到这个表的最短路径;
求每一个表的全路径的公共路径;
将所述公共路径中远离所述根表方向的最后一个表记为第二最近公共父表;
从各表的全路径中删除所述第二最近公共父表之前的表;
对删除后结果求并集作为第二子表组。
优选地,所述分析方式为计算方式,所述计算方式包括分组计数、分组求和、求最大值及求最小值。
更进一步地,根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句,包括:
创建所述第二子表组的第一视图,对所述第二子表组中所有表按前序遍历的顺序做内联接并应用所述查询条件集;
创建所述第一子表组的第二视图,对所述所述第一子表组中所有表按前序遍历的顺序做内联接,以所述第一个视图的主键为查询条件;
根据所述分析方式对所述第二视图生成SQL分析语句。
本发明第二方面提供了一种基于树型表间关系自动生成SQL的数据分析系统,所述系统包括:
获取模块,用于获取数据表总表组并配置总表组的树型表间关系,其中,所述总表组中仅配置一个根表;
提交模块,用于提交查询条件集、数据字段列表和分析方式;
第一子表组模块,用于求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组;
第二子表组模块,用于将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组;
生成模块,用于根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句。
本发明第三方面提供了一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如步骤:
获取数据表总表组并配置总表组的树型表间关系,其中,所述总表组中仅配置一个根表;
提交查询条件集、数据字段列表和分析方式;
求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组;
将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组;
根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句。
本发明第四方面提供了一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如下步骤:
获取数据表总表组并配置总表组的树型表间关系,其中,所述总表组中仅配置一个根表;
提交查询条件集、数据字段列表和分析方式;
求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组;
将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组;
根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句。
本申请的有益效果为:本发明的基于树型表间关系自动生成SQL的数据分析方法能够对有复杂表间关系的多表进行有效分析,用户不需要自行定义表间的连接方式才能完成数据分析工作,从而减少了在数据分析与处理时对人工操作的依赖,进而提升了数据分析与处理的效率。
附图说明
图1示出了本申请一示例性实施例的方法流程示意图;
图2示出了本申请一示例性实施例的总表组及表间关系配置示意图;
图3示出了本申请一示例性实施例的系统结构示意图;
图4示出了本申请一实施例所提供的一种电子设备的结构示意图;
图5示出了本申请一实施例所提供的一种存储介质的示意图。
具体实施方式
以下,将参照附图来描述本申请的实施例。但是应该理解的是,这些描述只是示例性的,而并非要限制本申请的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本申请的概念。对于本领域技术人员来说显而易见的是,本申请可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本申请发生混淆,对于本领域公知的一些技术特征未进行描述。
应予以注意的是,这里所使用的术语仅是为了描述具体实施例,而非意图限制根据本申请的示例性实施例。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。
现在,将参照附图更详细地描述根据本申请的示例性实施例。然而,这些示例性实施例可以多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。附图并非是按比例绘制的,其中为了清楚表达的目的,可能放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
实施例1:
本实施例实施了一种基于树型表间关系自动生成SQL的数据分析方法,如图1所示,包括以下步骤:
S101、获取数据表总表组并配置总表组的树型表间关系,其中,所述总表组中仅配置一个根表;
S102、提交查询条件集、数据字段列表和分析方式;
S103、求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组;
S104、将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组;
S105、根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句。
优选地,获取数据表总表组并配置总表组的树型表间关系还包括:非根表都仅有一个外键字段与另一个数据表关联。
具体地,配置总表组的树型表间关系采用四元组的方式,四元组包括第一数据表、第一数据表的外键字段、第二数据表和第二数据表的主键字段。
进一步地,求数据字段列表中各表的全路径的公共路径,将公共路径中远离根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除第一最近公共父表之前的表并对删除后结果求并集作为第一子表组,包括:
将数据字段列表中各表名作为第一表名集合;
求第一表名集合中每一个表的全路径,其中,一个表的全路径是从根表开始沿表间关系到这个表的最短路径;
求每一个表的全路径的公共路径;
将公共路径中远离根表方向的最后一个表记为第一最近公共父表;
从各表的全路径中删除第一最近公共父表之前的表;
对删除后结果求并集作为第一子表组。
再进一步地,将查询条件集中各表与第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求第一子表组相同的方法求得第二子表组,包括:
将查询条件集中各表名作为第二表名集合;
将第二表名集合和第一最近公共父表合并;
求合并后每一个表的全路径,其中,一个表的全路径是从根表开始沿表间关系到这个表的最短路径;
求每一个表的全路径的公共路径;
将公共路径中远离根表方向的最后一个表记为第二最近公共父表;
从各表的全路径中删除第二最近公共父表之前的表;
对删除后结果求并集作为第二子表组。
优选地,分析方式为计算方式,计算方式包括分组计数、分组求和、求最大值及求最小值等。当然,本申请所提及的计算方式不限于此,其它相关计算方式如求平均值等也属于本申请计算方式范围,具体不做限定。
更进一步地,根据分析方式针对第二子表组和第一子表组生成SQL分析语句,包括:
创建第二子表组的第一视图,对第二子表组中所有表按前序遍历的顺序做内联接并应用查询条件集;
创建第一子表组的第二视图,对第一子表组中所有表按前序遍历的顺序做内联接,以第一个视图的主键为查询条件;
根据分析方式对第二视图生成SQL分析语句。
实施例2:
本实施例实施了一种基于树型表间关系自动生成SQL的数据分析方法,大体包括五步,步骤详解如下。
第一步,获取数据表总表组并配置总表组的树型表间关系,其中,所述总表组中仅配置一个根表。
具体地,所述获取数据表总表组并配置总表组的树型表间关系还包括:非根表都仅有一个外键字段与另一个数据表关联。优选地,所述配置总表组的树型表间关系采用四元组的方式,所述四元组包括第一数据表、第一数据表的外键字段、第二数据表和第二数据表的主键字段。图2所示为总表组及表间关系配置示意图,总表组为(a,b,c,d,e,f,g),通过配置(表1,外键字段,表2,主键字段)四元组让所有表形成符合前述要求的树型关系,如图2所示,其表间关系四元组为:(b,a_id,a,a_id)、(c,a_id,a,a_id)、(f,a_id,a,a_id)、(d,b_id,b,b_id)、(e,b_id,b,b_id)、(g,c_id,c,c_id)。
第二步,提交查询条件集、数据字段列表和分析方式。
通过预定义格式将“查询条件集”、“数据字段列表”以及“分析方式”提交。查询条件集是一系列条件的组合,单个条件的格式为[表名.字段名][比较操作符][值],如用户表.性别=‘男’,其中表名.字段名为字段的全限定名,多个条件以逻辑操作符AND、OR相连构成多条件的组合。数据字段列表包含所有被分析字段,字段名以全限定名格式给出。分析方式是指计算方式,每种分析方式对应一个SQL模板,常见的分析方式有分组计数、分组求和、求最大值及求最小值等。当然,本申请所提及的计算方式不限于此,其它相关计算方式如求平均值等也属于本申请计算方式范围,具体不做限定。
第三步,求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组。
进一步地,求数据字段列表中各表的全路径的公共路径,将公共路径中远离根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除第一最近公共父表之前的表并对删除后结果求并集作为第一子表组,包括:将数据字段列表中各表名作为第一表名集合;求第一表名集合中每一个表的全路径,其中,一个表的全路径是从根表开始沿表间关系到这个表的最短路径;求每一个表的全路径的公共路径;将公共路径中远离根表方向的最后一个表记为第一最近公共父表;从各表的全路径中删除第一最近公共父表之前的表;对删除后结果求并集作为第一子表组。
从数据字段列表中提取表名集合C1,以“数据字段列表”[c.c1,g.g1],“查询条件集”[d.d2>10]AND[e.e2=0]为例,C1为(c,g),再如图2所示,表c的全路径为a-c,表g的全路径为a-c-g,公共路径为a-c,c即为第一最近公共父表,去掉各全路径中第一最近公共父表,“a-c”中删除a,“a-c-g”删除a,剩余部分求并集即(c)和(c,g)的并集为(c,g),记为第一子表组G1。
第四步,将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组。
再进一步地,将查询条件集中各表与第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求第一子表组相同的方法求得第二子表组,包括:将查询条件集中各表名作为第二表名集合;将第二表名集合和第一最近公共父表合并;求合并后每一个表的全路径,其中,一个表的全路径是从根表开始沿表间关系到这个表的最短路径;求每一个表的全路径的公共路径;将公共路径中远离根表方向的最后一个表记为第二最近公共父表;从各表的全路径中删除第二最近公共父表之前的表;对删除后结果求并集作为第二子表组。
以“数据字段列表”[c.c1,g.g1],“查询条件集”[d.d2>10]AND[e.e2=0]为例,C2为(d,e),C2与第一最近公共父表c合并为(c,d,e),再如图2所示,表c的全路径是a–c,表d的全路径是a-b-d,表e的全路径为a-b-e这三个全路径的公共路径为a,a为第二最近公共父表,删第二最近公共父表之前的表,a作为根表,其前已无表可删除。所以各表合路径取并集为(a,b,c,d,e,),记为第二子表组G2。
第五步,根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句。
创建第二子表组G2的第一视图V1,对第二子表组中所有表按前序遍历的顺序做内联接并应用查询条件集;创建第一子表组G1的第二视图V2,对第一子表组中所有表按前序遍历的顺序做内联接,以第一个视图的主键为查询条件;根据分析方式对第二视图V2生成SQL分析语句。其中,远离所述根表的数据表为c,第一视图V1提取到c的主键作为第一视图自身的主键,当创建第二视图V2时,以第一个视图V1的主键即表c的主键为查询条件。
这里的分析方式以“分组计数”为例,则“分组计数”的SQL模板为:“select[数据字段1],count([数据字段2])from V2 group by[数据字段1]”,基于此模块,会自动生成具体的SQL语句。
实施例3:
本实施例实施了一种基于树型表间关系自动生成SQL的数据分析系统,如图3所示,包括以下模块:
获取模块301,用于获取数据表总表组并配置总表组的树型表间关系,其中,所述总表组中仅配置一个根表;
提交模块302,用于提交查询条件集、数据字段列表和分析方式;
第一子表组模块303,用于第一子表组模块,用于求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组;
第二子表组模块304,用于将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组;
生成模块305,用于根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句。
接下来请参考图4,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图4所示,所述电子设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的基于树型表间关系自动生成SQL的数据分析方法。
其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述基于树型表间关系自动生成SQL的数据分析方法可以应用于处理器200中,或者由处理器200实现。
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的基于树型表间关系自动生成SQL的数据分析方法与系统出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的基于树型表间关系自动生成SQL的数据分析方法对应的计算机可读存储介质,请参考图5,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的基于树型表间关系自动生成SQL的数据分析方法。
所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
需要说明的是:在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (9)

1.一种基于树型表间关系自动生成SQL的数据分析方法,其特征在于,包括以下步骤:
获取数据表总表组并配置总表组的树型表间关系,其中,所述总表组中仅配置一个根表;
提交查询条件集、数据字段列表和分析方式;
求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组;
将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组;
根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句;
其中,根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句,包括:
创建所述第二子表组的第一视图,对所述第二子表组中所有表按前序遍历的顺序做内联接并应用所述查询条件集;
创建所述第一子表组的第二视图,对所述第一子表组中所有表按前序遍历的顺序做内联接,以所述第一视图的主键为查询条件;
根据所述分析方式对所述第二视图生成SQL分析语句。
2.根据权利要求1所述的基于树型表间关系自动生成SQL的数据分析方法,其特征在于,所述获取数据表总表组并配置总表组的树型表间关系还包括:非根表都仅有一个外键字段与另一个数据表关联。
3.根据权利要求2所述的基于树型表间关系自动生成SQL的数据分析方法,其特征在于,所述配置总表组的树型表间关系采用四元组的方式,所述四元组包括第一数据表、第一数据表的外键字段、第二数据表和第二数据表的主键字段。
4.根据权利要求3所述基于树型表间关系自动生成SQL的数据分析方法,其特征在于,求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组,包括:
将所述数据字段列表中各表名作为第一表名集合;
求所述第一表名集合中每一个表的全路径,其中,一个表的全路径是从根表开始沿表间关系到这个表的最短路径;
求每一个表的全路径的公共路径;
将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表;
从各表的全路径中删除所述第一最近公共父表之前的表;
对删除后结果求并集作为第一子表组。
5.根据权利要求4所述的基于树型表间关系自动生成SQL的数据分析方法,其特征在于,将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组,包括:
将所述查询条件集中各表名作为第二表名集合;
将所述第二表名集合和所述第一最近公共父表合并;
求合并后每一个表的全路径,其中,一个表的全路径是从根表开始沿表间关系到这个表的最短路径;
求每一个表的全路径的公共路径;
将所述公共路径中远离所述根表方向的最后一个表记为第二最近公共父表;
从各表的全路径中删除所述第二最近公共父表之前的表;
对删除后结果求并集作为第二子表组。
6.根据权利要求1所述的基于树型表间关系自动生成SQL的数据分析方法,其特征在于,所述分析方式为计算方式,所述计算方式包括分组计数、分组求和、求最大值及求最小值。
7.一种基于树型表间关系自动生成SQL的数据分析系统,其特征在于,所述系统包括:
获取模块,用于获取数据表总表组并配置总表组的树型表间关系,其中,所述总表组中仅配置一个根表;
提交模块,用于提交查询条件集、数据字段列表和分析方式;
第一子表组模块,用于求所述数据字段列表中各表的全路径的公共路径,将所述公共路径中远离所述根表方向的最后一个表记为第一最近公共父表,从各表的全路径中删除所述第一最近公共父表之前的表并对删除后结果求并集作为第一子表组;
第二子表组模块,用于将所述查询条件集中各表与所述第一最近公共父表合并,求合并后各表的全路径的公共路径,再用与求所述第一子表组相同的方法求得第二子表组;
生成模块,用于根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句;
其中,所述生成模块在实现根据所述分析方式针对所述第二子表组和所述第一子表组生成SQL分析语句时,执行:
创建所述第二子表组的第一视图,对所述第二子表组中所有表按前序遍历的顺序做内联接并应用所述查询条件集;
创建所述第一子表组的第二视图,对所述第一子表组中所有表按前序遍历的顺序做内联接,以所述第一视图的主键为查询条件;
根据所述分析方式对所述第二视图生成SQL分析语句。
8.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至6任一项方法的步骤。
9.一种计算机存储介质,其特征在于,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1至6任一项方法的步骤。
CN202110830880.5A 2021-07-22 2021-07-22 一种基于树型表间关系自动生成sql的数据分析方法与系统 Active CN113672615B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110830880.5A CN113672615B (zh) 2021-07-22 2021-07-22 一种基于树型表间关系自动生成sql的数据分析方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110830880.5A CN113672615B (zh) 2021-07-22 2021-07-22 一种基于树型表间关系自动生成sql的数据分析方法与系统

Publications (2)

Publication Number Publication Date
CN113672615A CN113672615A (zh) 2021-11-19
CN113672615B true CN113672615B (zh) 2023-06-20

Family

ID=78539833

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110830880.5A Active CN113672615B (zh) 2021-07-22 2021-07-22 一种基于树型表间关系自动生成sql的数据分析方法与系统

Country Status (1)

Country Link
CN (1) CN113672615B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114896280A (zh) * 2022-03-22 2022-08-12 杭州未名信科科技有限公司 一种数据查询方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153894A (zh) * 2017-12-29 2018-06-12 上海跬智信息技术有限公司 一种olap数据模型自动建模的方法、分类器
CN109656947A (zh) * 2018-11-09 2019-04-19 金蝶软件(中国)有限公司 数据查询方法、装置、计算机设备和存储介质
CN112084248A (zh) * 2020-09-11 2020-12-15 党丹 基于图数据库的智能数据检索查阅与模型获取方法
CN112434024A (zh) * 2020-10-23 2021-03-02 杭州未名信科科技有限公司 面向关系型数据库的数据字典生成方法、装置、设备及介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064441A1 (en) * 2002-09-27 2004-04-01 Tow Daniel S. Systems and methods for providing structured query language optimization
US7870174B2 (en) * 2007-10-11 2011-01-11 Oracle International Corporation Reference partitioned tables
US11093541B2 (en) * 2016-07-18 2021-08-17 International Business Machines Corporation Transforming an ontology query to an SQL query
US11507575B2 (en) * 2019-11-21 2022-11-22 Sap Se Complex query rewriting

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153894A (zh) * 2017-12-29 2018-06-12 上海跬智信息技术有限公司 一种olap数据模型自动建模的方法、分类器
CN109656947A (zh) * 2018-11-09 2019-04-19 金蝶软件(中国)有限公司 数据查询方法、装置、计算机设备和存储介质
CN112084248A (zh) * 2020-09-11 2020-12-15 党丹 基于图数据库的智能数据检索查阅与模型获取方法
CN112434024A (zh) * 2020-10-23 2021-03-02 杭州未名信科科技有限公司 面向关系型数据库的数据字典生成方法、装置、设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于XML Schema的数据库间信息交换技术;曹静;樊景博;刘爱军;张洁;;科学技术与工程(第24期);全文 *

Also Published As

Publication number Publication date
CN113672615A (zh) 2021-11-19

Similar Documents

Publication Publication Date Title
Cong et al. Over-the-cell channel routing
Alpert et al. A general framework for vertex orderings with applications to circuit clustering
US20070011637A1 (en) Method and system for performing local geometrical operation on a hierarchical layout of a semiconductor device
CN107506484B (zh) 运维数据关联审计方法、系统、设备及存储介质
CN110990403A (zh) 业务数据的存储方法、系统、计算机设备及存储介质
CN112417569B (zh) 一种Revit图元标注方法、装置、设备及储存介质
CN113672615B (zh) 一种基于树型表间关系自动生成sql的数据分析方法与系统
Kusiak Branching algorithms for solving the group technology problem
US20060236281A1 (en) Logic circuit design method, computer-readable recording medium having logic circuit design program stored therein, and logic circuit design device
US10013393B2 (en) Parallel computer system, parallel computing method, and program storage medium
JPH08110912A (ja) 動画検索装置および動画検索方法
CN101359337B (zh) 用于交互式地编辑gis拓扑数据集的方法
CN115130043B (zh) 基于数据库的数据处理方法、装置、设备及存储介质
CN104391845A (zh) 一种生成数据库脚本的方法及装置
CN100383789C (zh) 一种对系统资源进行管理的实现方法
CN116010345A (zh) 一种实现流批一体数据湖的表服务方案的方法、装置及设备
CN114328525A (zh) 数据处理方法及设备
KR20010024944A (ko) 전자 소자 및 장치의 설계 및 제조 방법
Grötschel et al. Packing Steiners Trees: A Cutting Plane Algorithm and Computational Results.
WO2009097601A1 (en) System and method for efficient and optimal minimum area retiming
US6367054B1 (en) Method of generating finite state data for designing a cascade decomposed logic circuit
CN114781295B (zh) 一种逻辑电路规模缩减方法及装置
US11379728B2 (en) Modified genetic recombination operator for cloud optimization
BARI NONLINEAR INTEGER PROGRAMMING
KR100428015B1 (ko) 빌딩 제어 시스템의 텍스트 파일 임포트 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant