CN110874367B - 结构化查询语言语句的可视化方法和装置 - Google Patents
结构化查询语言语句的可视化方法和装置 Download PDFInfo
- Publication number
- CN110874367B CN110874367B CN201811021309.3A CN201811021309A CN110874367B CN 110874367 B CN110874367 B CN 110874367B CN 201811021309 A CN201811021309 A CN 201811021309A CN 110874367 B CN110874367 B CN 110874367B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- view
- flow structure
- structured query
- 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
Links
- 238000007794 visualization technique Methods 0.000 title abstract description 10
- 238000009877 rendering Methods 0.000 claims abstract description 21
- 238000004458 analytical method Methods 0.000 claims abstract description 13
- 238000000034 method Methods 0.000 claims description 58
- 238000012545 processing Methods 0.000 claims description 52
- 230000000007 visual effect Effects 0.000 claims description 24
- 150000001875 compounds Chemical class 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000001914 filtration Methods 0.000 claims description 6
- 239000002131 composite material Substances 0.000 claims description 3
- 238000002910 structure generation Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 claims description 2
- 238000012800 visualization Methods 0.000 abstract description 12
- 238000010586 diagram Methods 0.000 description 16
- 230000009471 action Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 239000000284 extract Substances 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000012216 screening Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Landscapes
- Machine Translation (AREA)
Abstract
本申请公开了一种结构化查询语言语句的可视化方法和结构化查询语言语句的可视化装置。该结构化查询语言语句的可视化方法包括:对结构化查询语言(SQL)语句的语法结构进行语义解析,生成所述SQL语句的流程结构;根据SQL语句的流程结构生成视图模型;根据所述视图模型渲染得到对应的视图,所述视图利用元素节点和连接元素节点的边来显示SQL语句所包含的逻辑关系。本发明基于可视化的方式,将结构化查询语言的语法,按照语义进行抽象,提炼出一组能表述逻辑关系的视图模型。并将结构化查询语言语句转换为用此模型描述的形式,有效降低了手动编辑结构化查询语言语句的难度和出错率。
Description
技术领域
本申请涉及计算机处理领域,特别是涉及一种结构化查询语言语句的可视化方法和结构化查询语言语句的可视化装置。
背景技术
因为结构化查询语言(SQL)语句本身的复杂性,业务人员在手动编写结构化查询语言语句的过程中,无法避免会产生一些逻辑关系错误。尤其针对复杂的结构化查询语言语句,嵌套层次深,逻辑关系辨识度低,更会增加对结构化查询语言语句理解和编辑的难度。
为了解决这一技术问题,业内提出了一些结构化查询语言语句的可视化的方案,用于结构化查询语言开发及数据库维护,例如WWW结构化查询语言Designer、My结构化查询语言Workbench、结构化查询语言Maestro等,这些产品主要用于展示数据表之间的关联关系、表的字段信息、描述数据表所对应的实体之间的关系等。但是,现有技术提出的方案仅是实体之间的关系,对于编写具体到一条结构化查询语言语句中的逻辑关系,难以提供直观的帮助。
发明内容
鉴于上述问题,本发明一实施例提出一种结构化查询语言语句的可视化方法和结构化查询语言语句的可视化装置,以解决现有技术存在的问题。
为了解决上述问题,本申请一实施例公开一种结构化查询语言的可视化方法和装置,以解决现有技术存在的问题。
为了解决上述问题,本申请一实施例公开一种结构化查询语言语句的可视化方法,包括:
对结构化查询语言(SQL)语句的语法结构进行语义解析,生成所述SQL语句的流程结构;
根据SQL语句的流程结构生成视图模型;
根据所述视图模型渲染得到对应的视图,所述视图利用元素节点和连接元素节点的边来显示SQL语句所包含的逻辑关系。
为了解决上述问题,本申请一实施例公开一种结构化查询语言的可视图生成装置,其特征在于,包括:
流程结构生成模块,用于对结构化查询语言(SQL)语句的语法结构进行语义解析,生成所述SQL语句的流程结构;
视图模型生成模块,根据SQL语句的流程结构生成视图模型;
渲染模块,根据所述视图模型渲染得到对应的视图,所述视图利用元素节点和连接元素节点的边来显示SQL语句所包含的逻辑关系。
本申请一实施例还公开一种计算处理设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述计算处理设备执行上述的方法。
本申请一实施例还公开一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得计算处理设备执行上述的方法。
由上述可知,本申请实施例包括以下优点:
本发明基于可视化的方式,将结构化查询语言的语法,按照语义进行抽象,提炼出一组能表述逻辑关系的视图模型。并将结构化查询语言语句转换为用此模型描述的形式,使得语句的逻辑关系能够被更清晰的方式表达,提高代码逻辑的可读性。有效降低了手动编辑结构化查询语言语句的难度和出错率。
在本发明实施例提出的结构化语言的可视化方法和装置中,信息展示粒度细致,展示内容涵盖的业务范围广,不仅包括了数据表之间的关系,还包括了结构化查询语言语句的过滤、分组、联合等逻辑信息,与结构化查询语言语句的映射对称性高,可视化展示效果良好,能有效帮助结构化查询语言语句作者进行逻辑的理解和排查错误。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本申请一实施例的生成的视图模型的方法的流程示意图。
图2是本申请第一实施例的结构化查询语言的可视图生成方法的流程图。
图3是一实施例的生成的视图模型的示意图。
图4是另一实施例的生成的视图模型的示意图。
图5是再一实施例的生成的视图模型的示意图。
图6是又一实施例的生成的视图模型的示意图。
图7是本申请第二实施例的结构化查询语言的可视图生成方法的流程图。
图8是光标悬浮时显示元素节点关联信息的示意图。
图9是光标点击显示编辑窗口的示意图。
图10所示为步骤S201的子步骤的流程图。
图11所示为一可选实施例的子步骤S2021包括的分步骤的执行流程示意图。
图12所示为一可选实施例的子步骤S2022包括的分步骤的流程图。
图13是本申请第三实施例的结构化查询语言的可视图生成装置的方框图。
图14是本申请第三实施例的结构化查询语言的可视图生成装置的方框图。
图15示意性地示出了用于执行根据本发明的方法的计算处理设备的框图。
图16示意性地示出了用于保持或者携带实现根据本发明的方法的程序代码的存储单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
本申请的核心思想之一在于,提出一种结构化查询语言的可视化视图生成方法和装置,结合图1所示,基于结构化查询语言的语法结构——例如AST语法树100,生成包含多个流程子结构的流程化模型200,并将流程化模型200利用视图转换的方式转换为视图元素信息并生成视图模型300。本发明基于可视化的方式,将结构化查询语言的语法,按照语义进行抽象,提炼出一组能表述逻辑关系的视图模型。并将结构化查询语言语句转换为用此模型描述的形式,使得语句的逻辑关系能够被更清晰的方式表达,提高代码逻辑的可读性。有效降低了手动编辑结构化查询语言语句的难度和出错率。
第一实施例
本发明第一实施例提出一种结构化查询语言的可视图生成方法。图2所示为本发明第一实施例的结构化查询语言的可视图生成方法的步骤流程图。如图2所示,本发明实施例的结构化查询语言的可视图生成方法包括如下步骤:
S101,对结构化查询语言(SQL)语句的语法结构进行语义解析,生成所述SQL语句的流程结构;
结构化查询语言(SQL)可以利用各种现有的工具,例如解析器等,生成语法结构,该语法结构例如为AST语法树(abstract syntax code,抽象语法树)。AST语法树是源代码的抽象语法结构的树状表示,树上包括多个节点,每一个节点都表示源代码中的一种结构。
在这一步骤中,可以通过流程解析的步骤,将语法结构的多个节点生成流程结构。流程解析是将AST语法树数据结构,根据语法含义,利用AST语法树表达的“类型”、“运算符”、“流程语句”、“函数”、“对象”等概念,对每一个语法结构的节点进行流程解析,生成树状结构的流程结构。
流程结构是一种树状的数据结构,是在将SQL语句进行AST语法树解析之后,再根据解析结果进一步解析生成的中间态结构。这个结构既是可以被计算机系统理解,又可以被后续的生成视图的程序直接读取和理解。流程结构的树状的层次和包含关系可以对应原始SQL语句的语法结构,流程结构包含多个独立的流程子结构,也就是流程结构的节点。这些流程子结构是根据AST语法树的节点的层级结构遍历每一个节点生成的数据结构,每一个流程子结构中至少包括一个对应于视图的元素的语句。例如,可以包括两个元素节点和二者之间的操作关系连线的语句、一个元素节点和对它的操作连线的语句、一个元素节点的语句等。流程子结构的层级关系对应于视图中元素节点之间的连接关系。这些流程子结构的集合构成流程结构。
此处的流程子结构中,每一个流程子结构对应单一的语法结构的节点、单一的层级结构。如果一个节点包含多个层级结构,可以对这些层级结构进行拆分,针对拆分获得的每一个层级结构对应获得流程子结构。流程子结构针对的是单一的节点和单一的层级结构。
举例来说,针对某一结构化查询语言语句的语法结构,生成包含多个流程子结构的流程结构的方法如下:
针对“select*from a”这一SQL语句,该语句的内容为获得a的全部字段值,针对该语句生成的AST语法树代码如下:
在生成流程结构的过程中,可以设置如下描述内容:
当前层级关系与上级关系,用relation表示,取值为root/primary/slave;
当前层级动作,用于action表示,取值为select/insert/union;
动作对应的代码位置,用action_index表示;
动作的描述信息,用actionDesc表示;
动作的描述信息对应的代码位置,用actionDesc_index表示;
列筛选条件,用conditionColumn表示;
列筛选条件对应的代码位置,用conditionColumn_index表示;
表示操作的表名:table;
表示表的分区信息:tablePartition。
基于上述描述内容,对前述AST语法树进行解析,生成的流程结构如下:
上述的每一个语句可以为一个流程子结构。流程结构的每个流程子结构是针对抽象语法结构的节点的进一步解析,与抽象语法树的节点的语义含义对应,并与结构化查询语言的语义含义对应。
在执行步骤S101之后,可以执行步骤S102如下:
S102,根据SQL语句的流程结构生成视图模型;
SQL语言定义了多个关键字,例如SELECT/INSERT/DELETE/UPDATE等。每一关键字有其自有的含义。例如SELECT表示从数据库表中检索数据行和列;INSERT表示向数据库表添加新数据行,DELETE表示从数据库表中删除数据行、UPDATE表示更新数据库表中的数据等。结构化查询语言中的关键字及其含义是本领域技术人员所公知的,在此不再赘述。
在将SQL语言转换为AST语法树,并转换为包含流程子结构的流程结构之后,流程子结构对应的内容实质上是AST语法树的节点对应的内容,但是由于从SQL到AST语法树,以及从AST语法树到流程结构,流程结构所包含的流程子结构的语法含义与AST语法树的节点对应的内容始终不变,并且与SQL语句对应的内容不变。
在这一步骤中,可以将每一个流程子结构转换为视图元素信息。视图元素信息可以包括元素节点和元素节点之间的连接关系(也就是连接元素节点的边)。视图元素信息例如为将要生成的视图元素的相关信息,包括元素节点、连接关系等信息。
在一实施例中,根据业务的需要,可以定义多个元素节点,例如分为用于描述数据库中的表的实体类节点和用于描述操作的操作类节点。这些元素节点的设置,可以与大多数解析后的流程结构对应,也即,可以与结构化查询语言的语法关键字对应。
例如,实体类元素节点可以表示语法功能为描述一个指定数据库中的表,例如源表、维表、中间表、目标表等业务中常用的表。操作类元素节点可以表示语法功能为描述一个对结果的操作,例如分类统计、筛选、合并、关联。
例如,在上述步骤S101的流程结构的多个流程子结构中,根据"relation":"root"这一语句片段可以判断出当前的节点为根节点,并且从"relation":"root"到"conditionColumn_index":null之间的语句为根节点的描述。根据"children":[{
这一内容可以判断该根节点包括子节点,并且根据"table":"a"这一语句可以判断子节点包括源表a。根据"action":"select"这一语句可以判断出当前执行的操作为选择操作。根据"relation":"primary"可以判断子节点与根节点的连接为内连接。
值得注意的是,关于内连接和外连接的内容属于现有技术,在此不再赘述。在此可以将"relation":"primary"定义为内连接,而将"relation":"slave"定义为外连接。对于"relation"的第三种取值"root",表示其为根节点。
因此,可以根据上述流程子结构,确定视图元素信息如下:源表a、经过选择操作生成中间表、内连接。
在这一步骤中,可以利用获得的视图元素信息,生成视图模型。即,可以利用开源软件计算各视图元素信息的位置,经过渲染由视图元素信息生成视图模型。
例如,开源的布局软件dagre可以计算出视图元素信息中的元素节点的位置,并计算出元素节点之间的连线的位置。因此可以利用这一布局软件,确定每一个视图元素信息的位置和区域坐标。
图3所示为根据前述的流程结构生成的视图模型的示意图。如图3所示,a、tmp和实线连线分别代表源表、中间表和内连接。
在本发明实施例中,可以针对多个元素节点和连接关系设置多个图形,用于直观地表达元素节点的内容和连接。例如,下面表1中所示的内容,即为元素节点的分类、含义、名称和图形。对于元素节点的连接关系,可以设置实线表示内连接,虚线表示外连接。这些设置的图形和线性仅为举例之用,使用者可以随意变更,在此并不限制。
表1
在执行步骤S102之后,可以执行步骤S103如下:
S103,根据所述视图模型渲染得到对应的视图,所述视图利用元素节点和连接元素节点的边来显示SQL语句所包含的逻辑关系。
在这一步骤中,可以对生成的视图模型进行渲染,例如将每一个视图元素信息的图形和线型进行实体化,显示为使用者易懂和清晰的视图。
以下通过三个具体示例,说明生成的视图模型与原SQL语句的对应关系。
图4、图5和图6所示分别为其他实施例的根据SQL语句生成的视图模型的示意图。如图4所示,原始语句为如下SQL语句:
SELECT name,age
FROM user
WHERE age>20;
图4所生成的视图模型中,包括源表user;中间表name,age;筛选操作age>20三个元素节点,并且连接均为内连接。
从原SQL语义含义的角度分析,“FROM user”这一语句可以判断出user为源表;“SELECT name,age”这一语句可以判断出需要选择信息生成中间表;“WHERE age>20”表明需要执行筛选操作。因此SQL语句语义含义与生成的视图模型的含义是对应的,便于使用者理解和操作。
如图5所示,原始语句为如下SQL语句用于查询order表和user表中的user_id相同的值:
SELECT name,age
FROM user
JOIN order
ON user.id=ORDER.user_id;
图5所生成的视图模型中,包括两个源表order和user、关联操作、中间表name,age四个元素节点。
对于不同的“源表”(order表和user表),因为进行关联的关系不同,决定了连线的不同。具体为:user表的关系,解析自SQL语句“FROM user”;order表的关系,解析自SQL语句“JOIN order”。因此,关联操作和源表order之间的连接为外连接,在图5中以虚线表示;源表user表和关联操作之间的连接为内连接,在图5中以实线表示。
从原SQL语义含义的角度分析,可以从包含FROM和JOIN这两个关键字的语句中判断出源表order和user;从包含SELECT的关键字的语句中判断出中间表name,age;根据ONuser.id=ORDER.user_id这一语句,将name,age的中间表与order和user进行关联。因此SQL语句语义含义与生成的视图模型的含义是对应的。
将以上的解析思路应用于长度较大的结构化查询语言语句,即可将复杂结构化查询语言语句的逻辑关系进行可视化展现,提高逻辑脉络的辨识度。例如,针对以下的复杂结构化查询语言语句:
经过处理之后,可以生成如图6所示的视图模型。
其中,根据包含关键字的语句FROM cdm.dim_seller、FROM cdm.rsk_slr、FROMcdm.rsk_industry,可以分别判断出源表有cdm.dim.seller、cdm.rsk_slr、cdm.rsk_industry;
根据包含关键字的语句SELECT user_id、SELECT seller_id、SELECT a.seller_id、SELECT industry_id、SELECT'${bizdate}'AS stat_date,分别判断出中间表有user_id、seller_id、a.seller_id、industry_id、_bizdate_;
根据包含关键字的INSERT OVERWRITE TABLE ads_rsk_table PARTITION语句,判断出目标表ads_rsk_table。
根据包含关键字的三处WHERE ds='${bizdate}',可以判断出中间表ds='${bizdate}'。由于user_id和a.seller_id的关联关系为外部操作,user_id到关联元素节点的连线可以用虚线表示;同样地由于industry_id和a.seller_id的关联关系为外部操作,user_id到关联元素节点的连线同样可以用虚线表示;其他的元素节点之间的关系均为内部操作,所以用实线表示。
值得注意的是,并非所有SQL语言的关键字以及生成的语法结构的节点均需要对应到视图元素信息。在一些实施例中,可以仅设置业务中高频使用的关键字和语法与视图元素信息对应,在需要可视化时,仅在遇到这些关键字和语法结构的节点时才需要生成视图元素信息,其他的关键字和语法结构的节点可以不处理。这些关键字例如为对应到前述表1中节点名称的关键字和语法,在此不再赘述。
由上述可以看出,虽然经过语法结构解析和流程结构生成的过程,本发明实施例提出的结构化语言可视化方法中,生成的视图模型中的元素节点和连接线与SQL语言的对应程度很高。
因此,综上所述,本发明第一实施例提出的结构化查询语言的可视图生成方法至少具有如下技术效果:
本发明基于可视化的方式,将结构化查询语言的语法,按照语义进行抽象,提炼出一组能表述逻辑关系的视图模型。并将结构化查询语言语句转换为用此模型描述的形式,使得语句的逻辑关系能够被更清晰的方式表达,提高代码逻辑的可读性。有效降低了手动编辑结构化查询语言语句的难度和出错率。
第二实施例
本发明第二实施例提出一种结构化查询语言的可视图(也就是可视化视图)生成方法。图7所示为本发明第二实施例的结构化查询语言的可视图生成方法的步骤流程图。如图7所示,本发明实施例的结构化查询语言的可视图生成方法如下步骤:
S201,对结构化查询语言(SQL)语句的语法结构进行语义解析,生成所述SQL语句的流程结构;
S202,根据SQL语句的流程结构生成视图模型;
S203,根据所述视图模型渲染得到对应的视图,所述视图利用元素节点和连接元素节点的边来显示SQL语句所包含的逻辑关系。
上述步骤S201至步骤S203与上一实施例的步骤S101至步骤S103相同或相似,在此不再赘述。本实施例重点说明与上一实施例的不同之处。
在本发明一实施例中,所述方法还可以包括如下基于结构化查询语言生成语法结构的步骤,如下:
S200,根据所述SQL语句生成所述SQL语句的语法结构。
在这一步骤中,可以利用现有的工具,例如解析器,将结构化查询语言语句生成其对应的语法结构,例如AST语法树。该语法结构包括多个节点。这一生成过程为现有技术,在此不再赘述。语法结构包括一个根节点和多个子节点。抽象语法树(abstract syntaxcode,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构。
抽象语法树不依赖于具体的文法,同时不依赖于语言的细节,这样可以给编译器后端提供了清晰,统一的接口。即使是前端采用了不同的文法,都只需要改变前端代码,而不用连累到后端。即减少了工作量,也提高的编译器的可维护性。语法分析和语义分析后,产生抽象语法树形成中间代码作为输出,供后端处理。
在一可选实施例中,所述方法还包括如下步骤:
S204,当检测到对所述节点的光标悬停操作时,显示所述元素节点的数据信息;
在这一步骤中,结合图8所示,当使用者将鼠标悬浮于节点上时,可以对节点的详细信息进行展现。上述的关联信息例如可以包括该表的类型(例如图中的中间表)、该表的名称(例如图中的industry_id,c_seller)和该表的其他信息(例如图中的查询视图)。
在一可选实施例中,所述方法还包括如下步骤:
S205,当检测到对所述节点的点击操作时,显示所述元素节点对应的SQL语句片段。
在这一步骤中,结合图9所示,当使用者通过该鼠标点击该节点时,可以关联出结构化查询语言编辑器,并定位到节点对应的语句。在可选实施例中,可以如图9一样高亮显示该语句,方便用户将节点与原始结构化查询语句对应。
在一实施例中,所述SQL语句的语法结构和所述流程结构均为包括多个节点的树形结构。图10所示为步骤S201的子步骤的流程图。如图10所示,所述步骤S201,即对SQL语句的语法结构进行语义解析,生成SQL语句的流程结构的步骤可以包括如下子步骤:
S2011,按照层级关系顺序遍历所述语法结构中的多个节点,以生成所述流程结构中的节点;
在这一步骤中,可以针对每一个层级,遍历该层级中的每一个节点,通过该节点的语法关键字,确定该节点为基本类型还是复合类型。复合数据类型是由基本数据类型复合而成的数据类型。
S2012,根据所述语法结构中节点的层级关系合并所述流程结构中的节点,以生成所述流程结构。
在这一步骤中,可以将处理获得的多个流程结构进行合并。即,利用抽象语法结构的表现出的元素和节点的关系,合并生成的多个流程子结构,形成流程结构。
图11所示为一可选实施例的子步骤的流程示意图。在一可选实施例中,如图11所示,所述步骤S2011,即按照层级关系顺序遍历所述语法结构中的多个节点,以生成所述流程结构中的节点的步骤可以包括如下子步骤:
S2011a,针对结构化查询语言语句的语法结构,确定当前处理的节点的语法结构层级;
在这一子步骤中,首先可以从生成的AST语法树的根节点出发,确定一个需要处理的层级。例如可以从根节点出发,依照不同的层级进行处理。
例如,该抽象语法树包括根节点、第一层子节点A1、第二层子节点a1~an,可以首先确定需要处理的语法结构层级,即从根节点出发,确定当前需要处理的是上述三个层级中的哪一层级。
通常来说,可以从根节点出发,当遍历该层级的所有节点后,再跳转到下一层级的节点进行遍历,直到遍历所有的语法结构层级。
S2011b,针对该语法结构层级中的每一个节点,判断该节点的语法关键字是否为基础类型关键字;
在确定了需要遍历的层级之后,可以针对确定的层级(例如子节点层A1),遍历该子节点层A1中的每一个子节点a1~an,通过该子节点的语法关键字,确定该子节点为基本类型还是复合类型。复合数据类型是由基本数据类型复合而成的数据类型。
在一实施例中可以根据SQL语言的语义含义来定义基础类型关键字和复合类型关键字,例如,常用的属于复合类型的语法关键字包含:from,join,union等,可以设置其他未定义的关键字可以为基础类型关键字。
基础类型关键字或者复合类型关键字属于本领域一般技术人员能够轻易判断获得并设置的,在此并不赘述。
S2011c,当判断该节点的语法关键字为基础类型关键字时,根据该节点所在的语句生成流程子结构。
在这一步骤中,当正在遍历的子节点a1~an为基础类型关键字时,针对该节点的语法关键字进行处理,生成流程子结构。例如,针对某一节点,确定其对应的语法关键字并根据其语法关键字对应地生成流程子结构。前述的流程结构的每一行语句均可以是流程子结构。
在一实施例中该,如图11所示,所述步骤S201,即将结构化查询语言生成的语法结构进行语法含义解析,生成流程结构的步骤还可以包括如下子步骤:
S2011d,当判断该节点的语法关键字为复合类型关键字时,针对所述语法结构节点的多个层级分别执行如下操作:
针对结构化查询语言语句的语法结构,确定当前处理的节点的语法结构层级;
针对该语法结构层级中的每一个节点,判断该节点的语法关键字是否为基础类型关键字;
当判断该节点的语法关键字为基础类型关键字时,根据该节点所在的语句生成流程子结构。
在这一步骤中,当该子节点为复合数据类型时,需要对该复合数据类型进行解析。例如针对复合数据类型,确认其中的包含的层级。针对前述的from,join,union等关键字,可以确定该关键字包含的嵌套关系的关键字的层级。例如可以首先遍历一个嵌套语句的外层,在遍历完成之后再遍历该嵌套语句的内层,针对复合类型关键字的每一层级,可以执行子步骤S2011a到S2011c,使得每一节点都能被遍历到,并生成流程子结构。
在本发明一实施例中,如图12所示,所述步骤S202,即根据SQL语句的流程结构生成视图模型的步骤包括:
S2021,根据预设的语义规则,将流程结构中的节点转换为相应的视图元素信息,所述视图元素信息包括元素节点和/或边的数据信息,所述语义规则用于定义视图中的元素节点和边;
S2022,合并所述视图元素信息,以生成所述视图模型。
上述子步骤S2021,根据预设的语义规则,将流程结构中的节点转换为相应的视图元素信息可以包括:
S2021a,判断流程结构中的节点的语法含义是否与所述语义规则定义的多个类型的元素节点其中之一的语法含义对应;
S2021b,若是,将所述流程结构中的节点转换为所对应的元素节点的数据信息;
在上述步骤中,当流程结构中的节点的语法含义与通过语义规则事先定义的的语法含义定义时,例如当节点的语法含义满足前述表1设置的多个节点类型相符时,则将该节点进行转换,使之成为对应的元素节点的数据信息。后续再经过渲染成为实体的元素节点。
在一可选实施例中,上述子步骤S2021还可以包括:
S2021c,判断流程结构中的节点的语法含义是否与所述语义规则定义的多个类型的边其中之一的语法含义对应;
S2021d,若是,将所述流程结构中的节点转换为所对应的边的数据信息。
在上述步骤中,当流程结构中的节点的语法含义与通过语义规则事先定义的的语法含义定义时,例如当节点的语法含义满足前述表1设置的边的类型相符时,则将该节点进行转换,使之成为对应的边的数据信息,后续再经过渲染成为实体的边。
在一实施例中,上述子步骤S2022,合并所述视图元素信息,以生成所述视图模型,可以包括:
S2022a,在生成视图元素信息之后,确定多个视图元素信息的布局信息;
在这一子步骤中,针对生成的多个视图元素信息,可以利用开源的布局软件例如dagre计算出视图元素信息的布局。布局信息例如包括每一视图元素信息的位置和形状,例如针对元素节点,可以计算出元素节点的位置、区域;针对连线,可以确定连线的轨迹和形状。
S2022b,根据所述布局信息将所述多个视图元素信息生成视图模型;
在这一步骤中,可以根据布局信息生成可视化的视图模型。例如,在确定了布局信息之后,可以结合布局信息和前述的视图元素信息生成视图模型。
前述的布局信息可以是图形的位置、占据的区域、形状等,视图元素信息可以是渲染之前的图形、结构等。可以根据前述的布局信息将所述多个视图元素信息生成视图模型。
在生成视图模型之后,可以渲染所述视图模型以得到视图。
在这一步骤中,可以对生成的视图模型进行渲染,采用类似渲染网页的方法,生成渲染后的视图模型。渲染例如可以由浏览器完成,包括加载、解析、渲染。加载是向服务器发起请求,接收HTML、JS、CSS图像等文件。解析是对加载到的资源(例如、JS、CSS图像等文件)进行语法解析,建议相应的内部数据结构(比如HTML的DOM树,JS的(对象)属性表,CSS的样式规则等等)。渲染例如是构建渲染树,对各个元素节点和连线进行位置计算、样式计算等等,然后根据渲染树对页面进行渲染。
综上所述,本实施例提出的结构化查询语言的可视图生成方法至少具有如下优点:
本发明基于可视化的方式,将结构化查询语言的语法,按照语义进行抽象,提炼出一组能表述逻辑关系的视图模型。并将结构化查询语言语句转换为用此模型描述的形式,使得语句的逻辑关系能够被更清晰的方式表达,提高代码逻辑的可读性。有效降低了手动编辑结构化查询语言语句的难度和出错率。
除此之外,本实施例提出的结构化查询语言的可视图生成方法至少还包括如下优点:
在本发明实施例提出的结构化语言的可视化方法和装置中,信息展示粒度细致,展示内容涵盖的业务范围广,不仅包括了数据表之间的关系,还包括了结构化查询语言语句的过滤、分组、联合等逻辑信息。另外,本发明优选实施例遍历语法树的每一层级生成完整的流程结构,保证了生成的模型与原SQL语句映射对称性高;通过设置多个预设的视图元素信息,使得大多数的SQL语句的关键字能够映射至相对少量的视图元素信息中,对应度高,符合业务的需要。本发明优选实施例利用视图元素信息和布局信息生成便于使用者观看和对照的视图模型,可视化展示效果良好,并且能够在光标悬停或者点击时提供更具体的信息,能有效帮助结构化查询语言语句作者进行逻辑的理解和排查错误。
第三实施例
本发明第三实施例提出一种结构化查询语言的可视图生成装置,如图13所示,该装置包括:
流程结构生成模块1101,用于对结构化查询语言(SQL)语句的语法结构进行语义解析,生成所述SQL语句的流程结构;
视图模型生成模块1102,根据SQL语句的流程结构生成视图模型;
渲染模块1103,根据所述视图模型渲染得到对应的视图,所述视图利用元素节点和连接元素节点的边来显示SQL语句所包含的逻辑关系。
综上所述,本实施例提出的结构化查询语言的可视图生成装置至少具有如下优点:
本发明基于可视化的方式,将结构化查询语言的语法,按照语义进行抽象,提炼出一组能表述逻辑关系的视图模型。并将结构化查询语言语句转换为用此模型描述的形式,使得语句的逻辑关系能够被更清晰的方式表达,提高代码逻辑的可读性。有效降低了手动编辑结构化查询语言语句的难度和出错率。
第四实施例
本发明第四实施例提出一种结构化查询语言的可视图生成装置,如图14所示,该装置包括:
流程结构生成模块1201,用于对结构化查询语言(SQL)语句的语法结构进行语义解析,生成所述SQL语句的流程结构;
视图模型生成模块1202,用于根据SQL语句的流程结构生成视图模型;
渲染模块1203,用于根据所述视图模型渲染得到对应的视图,所述视图利用元素节点和连接元素节点的边来显示SQL语句所包含的逻辑关系。
在一可选实施例中,所述流程结构生成模块1201包括:
遍历子模块,用于按照层级关系顺序遍历所述语法结构中的多个节点,以生成所述流程结构中的节点;
流程结构生成子模块,用于根据所述语法结构中节点的层级关系合并所述流程结构中的节点,以生成所述流程结构。
在一可选实施例中,所述遍历子模块包括:
层级确定单元,用于针对结构化查询语言语句的语法结构,确定当前处理的节点的语法结构层级;
判断单元,用于针对该语法结构层级中的每一个节点,判断该节点的语法关键字是否为基础类型关键字;
第一执行单元,用于当判断该节点的语法关键字为基础类型关键字时,根据该节点所在的语句生成流程子结构。
在一可选实施例中,所述流程结构生成模块1201还包括:
第二执行单元,用于当判断该节点的语法关键字为复合类型关键字时,针对所述语法结构节点的多个层级分别执行如下操作:
针对结构化查询语言语句的语法结构,确定当前处理的节点的语法结构层级;
针对该语法结构层级中的每一个节点,判断该节点的语法关键字是否为基础类型关键字;
当判断该节点的语法关键字为基础类型关键字时,根据该节点所在的语句生成流程子结构。
在一可选实施例中,所述视图模型生成模块1202包括:
转换子模块,用于根据预设的语义规则,将流程结构中的节点转换为相应的视图元素信息,所述视图元素信息包括元素节点和/或边的数据信息,所述语义规则用于定义视图中的元素节点和边;
合并子模块,用于合并所述视图元素信息,以生成所述视图模型。
在一可选实施例中,上述转换子模块包括:
节点判断单元,用于判断流程结构中的节点的语法含义是否与所述语义规则定义的多个类型的元素节点其中之一的语法含义对应;
节点转换单元,用于在判断为是时,将所述流程结构中的节点转换为所对应的元素节点的数据信息。
在一可选实施例中,上述转换子模块还包括:
连接关系判断子模块,用于判断流程结构中的节点的语法含义是否与所述语义规则定义的多个类型的边其中之一的语法含义对应;
连接关系转换子模块,用于在判断为是时,将所述流程结构中的节点转换为所对应的边的数据信息。
其中所述连接关系包括内连接和外连接。可以通过“边”指示元素节点之间的关系,所述语义规则定义的边包括指示连续操作关系或内连接关系的边、和指示外连接关系的边。
所述语义规则定义的元素节点包括用于描述数据库中的表的实体类节点、和/或用于描述操作的操作类节点。
具体地,在一可选实施例中,所述预设的元素节点包括用于描述数据库中的表的实体类节点。在一可选实施例中,所述实体类节点包括源表、维表、中间表、目标表。
在一可选实施例中,所述预设的元素节点包括用于描述操作的操作类节点。在一可选实施例中,所述操作类节点包括分类统计、筛选、合并、关联。
在一可选实施例中,所述视图模型生成模块1202包括:
布局信息确定子模块,用于在生成视图元素信息之后,确定多个视图元素信息的布局信息;
视图模型生成子模块,用于根据所述布局信息将所述多个视图元素信息生成视图模型。
在一可选实施例中,所述装置还包括:
检测模块1204,用于检测对所述视图所显示的元素节点的操作,所述操作包括光标悬停操作或点击操作,
第一显示模块1205,用于:
当检测到对所述节点的光标悬停操作时,显示所述元素节点的数据信息;或者
第二显示子模块1205,用于当检测到对所述节点的点击操作时,显示所述元素节点对应的SQL语句片段。
在一可选实施例中,所述装置还包括:
语法结构生成模块1200,用于根据所述SQL语句生成所述SQL语句的语法结构。
综上所述,本实施例提出的结构化查询语言的可视图生成装置至少具有如下优点:
本发明基于可视化的方式,将结构化查询语言的语法,按照语义进行抽象,提炼出一组能表述逻辑关系的视图模型。并将结构化查询语言语句转换为用此模型描述的形式,使得语句的逻辑关系能够被更清晰的方式表达,提高代码逻辑的可读性。有效降低了手动编辑结构化查询语言语句的难度和出错率。
除此之外,本实施例提出的结构化查询语言的可视图生成装置至少还包括如下优点:
在本发明实施例提出的结构化语言的可视化方法和装置中,信息展示粒度细致,展示内容涵盖的业务范围广,不仅包括了数据表之间的关系,还包括了结构化查询语言语句的过滤、分组、联合等逻辑信息。另外,本发明优选实施例遍历语法结构的每一层级生成完整的流程结构,保证了生成的模型与原SQL语句映射对称性高;通过设置多个预设的视图元素信息,使得大多数的SQL语句的关键字能够映射至相对少量的视图元素信息中,对应度高,符合业务的需要。本发明优选实施例利用视图元素信息和布局信息生成便于使用者观看和对照的视图模型,可视化展示效果良好,并且能够在光标悬停或者点击时提供更具体的信息,能有效帮助结构化查询语言语句作者进行逻辑的理解和排查错误。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
图15为本申请一实施例提供的计算处理设备的硬件结构示意图。如图15所示,该计算处理设备可以包括输入设备90、处理器91、输出设备92、存储器93和至少一个通信总线94。通信总线94用于实现元件之间的通信连接。存储器93可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,存储器93中可以存储各种程序,用于完成各种处理功能以及实现本实施例的方法步骤。
可选的,上述处理器91例如可以为中央处理器(Central Processing Unit,简称CPU)、应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,该处理器91通过有线或无线连接耦合到上述输入设备90和输出设备92。
可选的,上述输入设备90可以包括多种输入设备,例如可以包括面向用户的用户接口、面向设备的设备接口、软件的可编程接口、摄像头、传感器中至少一种。可选的,该面向设备的设备接口可以是用于设备与设备之间进行数据传输的有线接口、还可以是用于设备与设备之间进行数据传输的硬件插入接口(例如USB接口、串口等);可选的,该面向用户的用户接口例如可以是面向用户的控制按键、用于接收语音输入的语音输入设备以及用户接收用户触摸输入的触摸感知设备(例如具有触摸感应功能的触摸屏、触控板等);可选的,上述软件的可编程接口例如可以是供用户编辑或者修改程序的入口,例如芯片的输入引脚接口或者输入接口等;可选的,上述收发信机可以是具有通信功能的射频收发芯片、基带处理芯片以及收发天线等。麦克风等音频输入设备可以接收语音数据。输出设备92可以包括显示器、音响等输出设备。
在本实施例中,该计算处理设备的处理器包括用于执行各设备中数据处理装置各模块的功能,具体功能和技术效果参照上述实施例即可,此处不再赘述。
图16为本申请另一实施例提供的计算处理设备的硬件结构示意图。图16是对图15在实现过程中的一个具体的实施例。如图16所示,本实施例的计算处理设备包括处理器101以及存储器102。
处理器101执行存储器102所存放的计算机程序代码,实现上述实施例中图1至图6的结构化查询语言的可视图生成方法。
存储器102被配置为存储各种类型的数据以支持在计算处理设备的操作。这些数据的示例包括用于在计算处理设备上操作的任何应用程序或方法的指令,例如消息,图片,视频等。存储器102可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可选地,处理器101设置在处理组件100中。该计算处理设备还可以包括:通信组件103,电源组件104,多媒体组件105,音频组件106,输入/输出接口107和/或传感器组件108。计算处理设备具体所包含的组件等依据实际需求设定,本实施例对此不作限定。
处理组件100通常控制计算处理设备的整体操作。处理组件100可以包括一个或多个处理器101来执行指令,以完成上述图1至图8方法的全部或部分步骤。此外,处理组件100可以包括一个或多个模块,便于处理组件100和其他组件之间的交互。例如,处理组件100可以包括多媒体模块,以方便多媒体组件105和处理组件100之间的交互。
电源组件104为计算处理设备的各种组件提供电力。电源组件104可以包括电源管理系统,一个或多个电源,及其他与为计算处理设备生成、管理和分配电力相关联的组件。
多媒体组件105包括在计算处理设备和用户之间的提供一个输出接口的显示屏。在一些实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
音频组件106被配置为输出和/或输入音频信号。例如,音频组件106包括一个麦克风(MIC),当计算处理设备处于操作模式,如语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或经由通信组件103发送。在一些实施例中,音频组件106还包括一个扬声器,用于输出音频信号。
输入/输出接口107为处理组件100和外围接口模块之间提供接口,上述外围接口模块可以是点击轮,按钮等。这些按钮可包括但不限于:音量按钮、启动按钮和锁定按钮。
传感器组件108包括一个或多个传感器,用于为计算处理设备提供各个方面的状态评估。例如,传感器组件108可以检测到计算处理设备的打开/关闭状态,组件的相对定位,用户与计算处理设备接触的存在或不存在。传感器组件108可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在,包括检测用户与计算处理设备间的距离。在一些实施例中,该传感器组件108还可以包括摄像头等。
通信组件103被配置为便于计算处理设备和其他设备之间有线或无线方式的通信。计算处理设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个实施例中,该计算处理设备中可以包括SIM卡插槽,该SIM卡插槽用于插入SIM卡,使得计算处理设备可以登录GPRS网络,通过互联网与服务端建立通信。
由上可知,在图16实施例中所涉及的通信组件103、音频组件106以及输入/输出接口107、传感器组件108均可以作为图15实施例中的输入设备的实现方式。
本申请实施例提供了一种计算处理设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述计算处理设备执行如本申请实施例中一个或多个所述的视频摘要的生成方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者计算处理设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者计算处理设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者计算处理设备中还存在另外的相同要素。
以上对本申请所提供的一种结构化查询语言语句的可视化方法和结构化查询语言语句的可视化装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (24)
1.一种结构化查询语言语句的可视化方法,包括:
对结构化查询语言(SQL)语句的语法结构进行语义解析,生成所述SQL语句的流程结构;
根据SQL语句的流程结构生成视图模型;以及
根据所述视图模型渲染得到对应的视图,所述视图利用元素节点和连接元素节点的边来显示SQL语句所包含的逻辑关系;
其中,所述SQL语句的语法结构和所述流程结构均为包括多个节点的树形结构,所述对SQL语句的语法结构进行语义解析,生成SQL语句的流程结构的步骤包括:
按照层级关系顺序遍历所述语法结构中的多个节点,以生成所述流程结构中的节点;以及
根据所述语法结构中节点的层级关系合并所述流程结构中的节点,以生成所述流程结构;
其中,所述按照层级关系顺序遍历语法结构中的多个节点,以生成流程结构中的节点的步骤还包括:
当判断该节点的语法关键字为复合类型关键字时,针对所述语法结构节点的多个层级分别执行如下操作:
针对结构化查询语言语句的语法结构,确定当前处理的节点的语法结构层级;
针对该语法结构层级中的每一个节点,判断该节点的语法关键字是否为基础类型关键字;以及
当判断该节点的语法关键字为基础类型关键字时,根据该节点所在的语句生成流程子结构。
2.根据权利要求1所述的方法,其中,所述按照层级关系顺序遍历语法结构中的多个节点,以生成流程结构中的节点的步骤包括:
针对结构化查询语言语句的语法结构,确定当前处理的节点的语法结构层级;
针对该语法结构层级中的每一个节点,判断该节点的语法关键字是否为基础类型关键字;
当判断该节点的语法关键字为基础类型关键字时,根据该节点所在的语句生成流程子结构。
3.根据权利要求1所述的方法,其特征在于,所述根据SQL语句的流程结构生成视图模型的步骤包括:
根据预设的语义规则,将流程结构中的节点转换为相应的视图元素信息,所述视图元素信息包括元素节点和/或边的数据信息,所述语义规则用于定义视图中的元素节点和边;
合并所述视图元素信息,以生成所述视图模型。
4.根据权利要求3所述的方法,其中,所述将流程结构中的节点转换为相应的视图元素信息的步骤包括:
判断流程结构中的节点的语法含义是否与所述语义规则定义的多个类型的元素节点其中之一的语法含义对应;
若是,将所述流程结构中的节点转换为所对应的元素节点的数据信息。
5.根据权利要求3所述的方法,其特征在于,所述将流程结构中的节点转换为相应的视图元素信息的步骤还包括:
判断流程结构中的节点的语法含义是否与所述语义规则定义的多个类型的边其中之一的语法含义对应;
若是,将所述流程结构中的节点转换为所对应的边的数据信息。
6.根据权利要求5所述的方法,其特征在于,所述边指示元素节点之间的关系,所述语义规则定义的边包括指示连续操作关系或内连接关系的边、和指示外连接关系的边。
7.根据权利要求6所述的方法,其特征在于,所述语义规则定义的元素节点包括用于描述数据库中的表的实体类节点、和/或用于描述操作的操作类节点。
8.根据权利要求7所述的方法,其特征在于,所述实体类节点包括源表、维表、中间表、目标表,和/或所述操作类节点包括分类统计、筛选、合并、关联。
9.根据权利要求1所述的方法,其特征在于,所述利用所述视图元素信息生成视图模型的步骤还包括:
在生成视图元素信息之后,确定多个视图元素信息的布局信息;
根据所述布局信息将所述多个视图元素信息生成视图模型。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测对所述视图所显示的元素节点的操作,所述操作包括光标悬停操作或点击操作;
当检测到对所述节点的光标悬停操作时,显示所述元素节点的数据信息;或者
当检测到对所述节点的点击操作时,显示所述元素节点对应的SQL语句片段。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述SQL语句生成所述SQL语句的语法结构。
12.一种结构化查询语言的可视图生成装置,其特征在于,包括:
流程结构生成模块,用于对结构化查询语言(SQL)语句的语法结构进行语义解析,生成所述SQL语句的流程结构;
视图模型生成模块,根据SQL语句的流程结构生成视图模型;
渲染模块,根据所述视图模型渲染得到对应的视图,所述视图利用元素节点和连接元素节点的边来显示SQL语句所包含的逻辑关系;
所述流程结构生成模块包括:
遍历子模块,用于按照层级关系顺序遍历所述语法结构中的多个节点,以生成所述流程结构中的节点;
流程结构生成子模块,用于根据所述语法结构中节点的层级关系合并所述流程结构中的节点,以生成所述流程结构;
所述遍历子模块包括:
第二执行单元,用于当判断该节点的语法关键字为复合类型关键字时,针对所述语法结构节点的多个层级分别执行如下操作:
针对结构化查询语言语句的语法结构,确定当前处理的节点的语法结构层级;
针对该语法结构层级中的每一个节点,判断该节点的语法关键字是否为基础类型关键字;
当判断该节点的语法关键字为基础类型关键字时,根据该节点所在的语句生成流程子结构。
13.根据权利要求12所述的装置,其特征在于,所述遍历子模块包括:
层级确定单元,用于针对结构化查询语言语句的语法结构,确定当前处理的节点的语法结构层级;
判断单元,用于针对该语法结构层级中的每一个节点,判断该节点的语法关键字是否为基础类型关键字;
第一执行单元,用于当判断该节点的语法关键字为基础类型关键字时,根据该节点所在的语句生成流程子结构。
14.根据权利要求12所述的装置,其特征在于,所述视图模型生成模块包括:
转换子模块,用于根据预设的语义规则,将流程结构中的节点转换为相应的视图元素信息,所述视图元素信息包括元素节点和/或边的数据信息,所述语义规则用于定义视图中的元素节点和边;
合并子模块,用于合并所述视图元素信息,以生成所述视图模型。
15.根据权利要求14所述的装置,其特征在于,所述转换子模块包括:
节点判断单元,用于判断流程结构中的节点的语法含义是否与所述语义规则定义的多个类型的元素节点其中之一的语法含义对应;
节点转换单元,用于在判断为是时,将所述流程结构中的节点转换为所对应的元素节点的数据信息。
16.根据权利要求14所述的装置,其特征在于,所述转换子模块还包括:
连接关系判断子模块,用于判断流程结构中的节点的语法含义是否与所述语义规则定义的多个类型的边其中之一的语法含义对应;
连接关系转换子模块,用于在判断为是时,将所述流程结构中的节点转换为所对应的边的数据信息。
17.根据权利要求16所述的装置,其特征在于,所述边指示元素节点之间的关系,所述语义规则定义的边包括指示连续操作关系或内连接关系的边、和指示外连接关系的边。
18.根据权利要求17所述的装置,其特征在于,所述语义规则定义的元素节点包括用于描述数据库中的表的实体类节点、和/或用于描述操作的操作类节点。
19.根据权利要求18所述的装置,其特征在于,所述实体类节点包括源表、维表、中间表、目标表,和/或所述操作类节点包括分类统计、筛选、合并、关联。
20.根据权利要求12所述的装置,其特征在于,所述视图模型生成模块包括:
布局信息确定子模块,用于在生成视图元素信息之后,确定多个视图元素信息的布局信息;
视图模型生成子模块,用于根据所述布局信息将所述多个视图元素信息生成视图模型。
21.根据权利要求12所述的装置,其特征在于,所述装置还包括:
检测模块,用于检测对所述视图所显示的元素节点的操作,所述操作包括光标悬停操作或点击操作;
第一显示模块,用于:
检测对所述视图所显示的元素节点的操作,所述操作包括光标悬停操作或点击操作;
当检测到对所述节点的光标悬停操作时,显示所述元素节点的数据信息;或者
当检测到对所述节点的点击操作时,显示所述元素节点对应的SQL语句片段。
22.根据权利要求12所述的装置,其特征在于,所述装置还包括:
语法结构生成模块,用于将结构化查询语言生成AST语法结构。
23.一种计算处理设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述计算处理设备执行如权利要求1-11中一个或多个所述的方法。
24.一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得计算处理设备执行如权利要求1-11中一个或多个所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811021309.3A CN110874367B (zh) | 2018-09-03 | 2018-09-03 | 结构化查询语言语句的可视化方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811021309.3A CN110874367B (zh) | 2018-09-03 | 2018-09-03 | 结构化查询语言语句的可视化方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110874367A CN110874367A (zh) | 2020-03-10 |
CN110874367B true CN110874367B (zh) | 2023-04-07 |
Family
ID=69716817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811021309.3A Active CN110874367B (zh) | 2018-09-03 | 2018-09-03 | 结构化查询语言语句的可视化方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110874367B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111508562A (zh) * | 2020-03-17 | 2020-08-07 | 北京荣之联科技股份有限公司 | 流程描述性语言的可视化显示方法、装置、设备和介质 |
CN111427578B (zh) * | 2020-04-15 | 2023-08-29 | 赞同科技股份有限公司 | 一种数据转换方法、装置及设备 |
CN113535749A (zh) * | 2020-04-17 | 2021-10-22 | 阿里巴巴集团控股有限公司 | 查询语句生成方法及装置 |
CN111859929B (zh) * | 2020-08-05 | 2024-04-09 | 杭州安恒信息技术股份有限公司 | 一种数据可视化方法、装置及其相关设备 |
CN112286506B (zh) * | 2020-10-30 | 2024-05-07 | 杭州海康威视数字技术股份有限公司 | 数据关联方法、装置、服务器及存储介质 |
CN112559527B (zh) * | 2020-12-15 | 2022-06-07 | 武汉大学 | 一种基于多叉树节点关系匹配的数据转换方法 |
CN113094776B (zh) * | 2021-04-19 | 2022-05-03 | 城云科技(中国)有限公司 | 可视化组件模型数据构建的方法、系统及电子设备 |
CN113177057A (zh) * | 2021-04-28 | 2021-07-27 | 深圳依时货拉拉科技有限公司 | 一种sql语句语法可视化分析方法、系统及计算机可读存储介质 |
CN115145891A (zh) * | 2022-06-14 | 2022-10-04 | 上海跬智信息技术有限公司 | 基于智能sql解析的多维模型自动合并方法及系统 |
CN116541377B (zh) * | 2023-04-27 | 2024-05-14 | 阿里巴巴(中国)有限公司 | 任务的物化视图的处理方法、系统和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6470335B1 (en) * | 2000-06-01 | 2002-10-22 | Sas Institute Inc. | System and method for optimizing the structure and display of complex data filters |
CN102339295A (zh) * | 2010-07-23 | 2012-02-01 | 中国移动通信集团公司 | Sql脚本的结构化元数据生成方法及数据地图生成方法 |
US8375014B1 (en) * | 2008-06-19 | 2013-02-12 | BioFortis, Inc. | Database query builder |
CN107451153A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 输出结构化查询语句的方法和装置 |
CN108021369A (zh) * | 2017-12-21 | 2018-05-11 | 马上消费金融股份有限公司 | 一种数据集成处理方法及相关装置 |
CN108334321A (zh) * | 2017-01-18 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 程序代码的展示设备、方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8140558B2 (en) * | 2009-05-22 | 2012-03-20 | International Business Machines Corporation | Generating structured query language/extensible markup language (SQL/XML) statements |
-
2018
- 2018-09-03 CN CN201811021309.3A patent/CN110874367B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6470335B1 (en) * | 2000-06-01 | 2002-10-22 | Sas Institute Inc. | System and method for optimizing the structure and display of complex data filters |
US8375014B1 (en) * | 2008-06-19 | 2013-02-12 | BioFortis, Inc. | Database query builder |
CN102339295A (zh) * | 2010-07-23 | 2012-02-01 | 中国移动通信集团公司 | Sql脚本的结构化元数据生成方法及数据地图生成方法 |
CN107451153A (zh) * | 2016-05-31 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 输出结构化查询语句的方法和装置 |
CN108334321A (zh) * | 2017-01-18 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 程序代码的展示设备、方法及装置 |
CN108021369A (zh) * | 2017-12-21 | 2018-05-11 | 马上消费金融股份有限公司 | 一种数据集成处理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110874367A (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110874367B (zh) | 结构化查询语言语句的可视化方法和装置 | |
US11775738B2 (en) | Systems and methods for document review, display and validation within a collaborative environment | |
US8656350B2 (en) | Event-based process configuration | |
CN109033260B (zh) | 基于rdf的知识图谱交互式可视化查询方法 | |
US20100235725A1 (en) | Selective display of elements of a schema set | |
US10592211B2 (en) | Generation of application behaviors | |
US9087296B2 (en) | Navigable semantic network that processes a specification to and uses a set of declaritive statements to produce a semantic network model | |
US10114619B2 (en) | Integrated development environment with multiple editors | |
CN111813798B (zh) | 基于r2rml标准的映射方法、装置、设备及存储介质 | |
US8276113B2 (en) | Dynamic highlighting of related artifacts in a UML diagram | |
CN107102948B (zh) | 一种基于uml的软件架构复杂性度量方法 | |
CN111831272A (zh) | 一种采用图形化的开发的方法、介质、设备和装置 | |
US20110055744A1 (en) | Visual Linking of Elements to Model Attributes | |
JP2020017277A (ja) | グラフィックインタフェースに基づく、イベント動作をプログラミングするwebレポーティングデザインシステム | |
CN111427577A (zh) | 代码处理方法、装置及服务器 | |
US10776351B2 (en) | Automatic core data service view generator | |
US20130132929A1 (en) | Extensibility integrated development environment for business object extension development | |
US20130191809A1 (en) | Graphical representation of an order of operations | |
WO2007081017A1 (ja) | 文書処理装置 | |
US20100107095A1 (en) | Template-based calculator application | |
Swearngin et al. | Genie: Input Retargeting on the Web through Command Reverse Engineering | |
KR101910179B1 (ko) | 데이터 시각화를 위한 웹 기반 차트 라이브러리 시스템 | |
US7900191B1 (en) | System and method of using an active link in a state programming environment to locate an element in a graphical programming environment | |
CN117390195A (zh) | 基于图编辑器的知识溯源连线方法、系统、设备和介质 | |
US10896161B2 (en) | Integrated computing environment for managing and presenting design iterations |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40025327 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |