[发明专利]基于Flex和Bison的SQL语法树解析方法在审

专利信息
申请号: 202110312632.1 申请日: 2021-03-24
公开(公告)号: CN113032366A 公开(公告)日: 2021-06-25
发明(设计)人: 王斌;赵智博;曲彦秋;杨晓春 申请(专利权)人: 东北大学
主分类号: G06F16/21 分类号: G06F16/21;G06F16/22;G06F16/242;G06F40/211;G06F40/253
代理公司: 沈阳东大知识产权代理有限公司 21109 代理人: 李在川
地址: 110819 辽宁*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 flex bison sql 语法 解析 方法
【权利要求书】:

1.一种基于Flex和Bison的SQL语法树解析方法,其特征在于,包括:

步骤1:获取数据库历史查询文件,收集指定数据库实例对应的SQL语句,所述SQL语句包括insert语句、delete语句、update语句以及select语句;

步骤2:对每条SQL语句进行词法分析,根据构词规则将SQL语句分割为相应的记号;

步骤3:将词法分析处理得到的记号序列进行语法分析,根据SQL语法规则将记号序列转化为语法树形式;

步骤4:将语法树结构转化为JSON格式;

步骤5:重复执行步骤2至步骤4,直到处理完所有的SQL语句。

2.根据权利要求1所述的一种基于Flex和Bison的SQL语法树解析方法,其特征在于,所述步骤1包括:

步骤1.1:开启关系型数据库中的历史查询日志功能,收集query workload信息;

步骤1.2:读取数据库历史查询日志文件,通过ID跟踪用户执行的操作,筛选出指定数据库实例的查询日志;

步骤1.3:排除掉日志中的时间信息、ID信息以及命令类型信息,得到指定数据库实例的日志中包含的SQL语句,所述SQL语句包括insert语句、delete语句、update语句以及select语句。

3.根据权利要求1所述的一种基于Flex和Bison的SQL语法树解析方法,其特征在于,所述步骤2包括:

步骤2.1:根据SQL语句中的关键字、数据库命名规则以及变量类型,制定正则表达式进行每个词的匹配并转换为相应的记号;

步骤2.2:利用Flex软件将正则表达式以及相应记号的转换动作转化为C语言形式;

步骤2.3:调用C语言代码文件中的yylex()函数读取SQL语句进行构词规则匹配,判断每条SQL语句是否存在词法问题;

步骤2.4:对于不存在词法问题的SQL语句分割为相应的记号,得到每条SQL语句对应的记号序列,对于存在词法问题的SQL语句则直接删除。

4.根据权利要求1所述的一种基于Flex和Bison的SQL语法树解析方法,其特征在于,所述步骤3包括:

步骤3.1:设计SQL语法树节点的结构体类型,其中包含节点的类型、节点存储的数值、该节点的兄弟节点以及子节点;

步骤3.2:根据SQL语法设计BNF文法;

步骤3.3:利用Bison软件将编写好的BNF文法转化为C语言形式,读取步骤2生成的记号序列进行BNF文法匹配,得到最终的SQL语法树。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东北大学,未经东北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110312632.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top