一种SQL语法解析树优化方法及系统技术方案

技术编号:32165700 阅读:27 留言:0更新日期:2022-02-08 15:20
本发明专利技术公开了一种SQL语法解析树优化方法及系统,该系统包括:输入模块,用于输入单段SQL语句;语法解析器,用于解析单段SQL语句,得到AST语法解析树;提取模块,用于遍历AST语法解析树,将AST语法解析树与元数据库进行匹配,提取AST语法解析树中节点的信息;扩展模块,用于根据信息扩展AST语法解析树;形变模块,用于按照制定的约束条件,将AST语法解析树进行变形,得到形变后的AST语法解析树;保存模块,用于保存形变后的AST语法解析树。本发明专利技术补充完整SQL语法解析树,获得标准化SQL结构,可以获得原始SQL中无法获得的信息。得原始SQL中无法获得的信息。得原始SQL中无法获得的信息。

【技术实现步骤摘要】
一种SQL语法解析树优化方法及系统


[0001]本专利技术涉及大数据智能化
,特别是一种SQL语法解析树优化方法及系统。

技术介绍

[0002]SQL语言应用于各行各业,发挥着巨大的作用。相对于其他编程语言,SQL语言的语法结构非常简单,但是随着使用场景的复杂化,其最终表达形态也千变万化。SQL代码系统内部无法进行标识,其存储形式基本局限于文本,只能用于简单检索,无法进行结构化、继承使用、知识性学习以及向下传播。
[0003]所有的数据库都会对提交的SQL代码进行解析,其目的是获取存储在数据库对应的数据。SQL代码本身也是一种源数据,其包含的知识点(业务口径、对应表和字段、限制条件、关联关系等)却无法有效得到提取跟继承应用。
[0004]虽然目前市场上也有一些开源的SQL解析方案(采用ANTI等架构),可以实现SQL的解析并提取一些简单的信息(对应表和字段、限制条件),但是原始的SQL语法解析树存在不容易遍历使用,格式不统一,字段关系不明确等较多弊端,影响后续应用。

技术实现思路

[0005]本专利技术为解本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种SQL语法解析树优化系统,其特征在于,包括:输入模块,用于输入单段SQL语句;语法解析器,用于解析所述单段SQL语句,得到AST语法解析树;提取模块,用于遍历所述AST语法解析树,将所述AST语法解析树与元数据库进行匹配,提取所述AST语法解析树中节点的信息;扩展模块,用于根据所述信息扩展所述AST语法解析树;形变模块,用于按照制定的约束条件,将所述AST语法解析树进行变形,得到形变后的AST语法解析树;保存模块,用于保存所述形变后的AST语法解析树。2.根据权利要求1所述的SQL语法解析树优化系统,其特征在于,所述输入模块还用于输入多段SQL语句或SQL脚本,以及将所述多段SQL语句或所述SQL脚本分割为多个所述单段SQL语句。3.根据权利要求1所述的SQL语法解析树优化系统,其特征在于,进行树的后序遍历。4.根据权利要求1所述的SQL语法解析树优化系统,其特征在于,所述信息包括表中文名、表别名、字段中文名、字段类型以及表的归属关系。5.根据权利要求1所述的SQL语法解析树优化系统,其特征在于,扩展和变形所述AST语法解析树的方法包括:针对节点属性为表的节点,扩充所述节点的第一子节点,所述第一子节点的节点属性为表中文名,值为该表对应中文名;针对节点属性为字段的节点,扩充所述节点的第二子节点,所述第二子节点的节点属性为字段中文名,值为该字段对应中文名;针对节点属性为字段的节点,扩充所述节点的第三子节点,所述第三子节点的节点属性为字段类型,值为该字段对应字段类型;针对节点属性为表的节点,如果没有节点属性为表别名的兄弟节点,扩展所述节点的第一兄弟节点,所述第一兄弟节点的节点属性为表别名,值为该表对应别名;针对节点属性为...

【专利技术属性】
技术研发人员:李龙权郭晨皓蒋天榕胡涛唐雁南
申请(专利权)人:厦门国际银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1