[发明专利]一种拟态数据库的SQL转译方法和系统有效
申请号: | 202110815162.0 | 申请日: | 2021-07-19 |
公开(公告)号: | CN113467785B | 公开(公告)日: | 2023-02-28 |
发明(设计)人: | 张帆;谢光伟;丁帆;方子茁 | 申请(专利权)人: | 上海红阵信息科技有限公司 |
主分类号: | G06F8/51 | 分类号: | G06F8/51;G06F8/41 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 张立强 |
地址: | 201100 上海市闵行区联航路1588*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 拟态 数据库 sql 转译 方法 系统 | ||
1.一种拟态数据库的SQL转译方法,其特征在于,包括:
对外部输入的原始SQL指令进行词法分析、语法分析以及错误检测,若有词法或语法错误,则提示异常,若无词法或语法错误,则生成所述原始SQL指令的抽象语法树AST;
遍历抽象语法树AST,将抽象语法树AST的节点信息转化为自定义的数据对象;
遍历自定义的数据对象,通过访问拟态数据库中元数据库的元数据信息,进行语义分析,根据语义分析结果对自定义的数据对象节点信息进行改写;所述根据语义分析结果对自定义的数据对象节点信息进行改写,具体包括:若原始的SQL指令为元信息的相关指令,则直接输出语义分析结果;若原始的SQL指令为非元信息的相关指令,则对相关数据对象节点信息进行改写,以确保异构数据库之间的数据一致性;
遍历改写前的数据对象或改写后的数据对象,将其拼接为目标数据库的等效、合法的命令或SQL语句。
2.根据权利要求1所述的一种拟态数据库的SQL转译方法,其特征在于,通过字符串拼接的方式将改写前的数据对象或改写后的数据对象重新组装为目标数据库的等效、合法的命令或SQL语句。
3.一种拟态数据库的SQL转译系统,其特征在于,包括:SQL解析模块、SQL改写模块和SQL翻译模块;
SQL解析模块,用于对外部输入的原始SQL指令进行词法分析、语法分析以及错误检测,若有词法或语法错误,则提示异常,若无词法或语法错误,则生成所述原始SQL指令的抽象语法树AST;遍历抽象语法树AST,将抽象语法树AST的节点信息转化为自定义的数据对象;
SQL改写模块,用于遍历SQL解析模块提供的数据对象,通过访问拟态数据库中元数据库的元数据信息,进行语义分析,根据语义分析结果对SQL解析模块生成的数据对象节点信息进行改写;所述SQL改写模块包括元数据访问单元和改写单元;
所述元数据访问单元,用于访问拟态数据库中元数据库的元数据信息进行语义分析,将语义分析结果发送至改写单元;
所述改写单元,用于根据接收到的语义分析结果对SQL解析模块生成的数据对象节点信息进行改写,具体为:若原始的SQL指令为元信息的相关指令,则直接向SQL翻译模块输出语义分析结果;若原始的SQL指令为非元信息的相关指令,则对相关数据对象节点信息进行改写,以确保异构数据库之间的数据一致性,并向SQL翻译模块输出改写后的数据对象;
SQL翻译模块,用于遍历SQL解析模块提供的数据对象或SQL改写模块改写后的数据对象,将其拼接为目标数据库的等效、合法的命令或SQL语句。
4.根据权利要求3所述的一种拟态数据库的SQL转译系统,其特征在于,所述SQL翻译模块,具体用于:通过字符串拼接的方式将SQL解析模块或SQL改写模块输出的数据对象重新组装为目标数据库的等效、合法的命令或SQL语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海红阵信息科技有限公司,未经上海红阵信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110815162.0/1.html,转载请声明来源钻瓜专利网。