[发明专利]通过数据库运行记录建立物理模型的方法及系统有效
申请号: | 201710448752.8 | 申请日: | 2017-06-14 |
公开(公告)号: | CN107203640B | 公开(公告)日: | 2019-12-31 |
发明(设计)人: | 罗朝新;王纯斌;刘俊良;王双 | 申请(专利权)人: | 成都四方伟业软件股份有限公司 |
主分类号: | G06F16/28 | 分类号: | G06F16/28;G06F16/23;G06F16/242 |
代理公司: | 51218 成都金英专利代理事务所(普通合伙) | 代理人: | 袁英 |
地址: | 610041 四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 查询语句 关联信息 获取模块 物理模型 运行记录 查询 解析 数据库 数据处理结果 物理模型建立 关联关系 输出关联 提取模块 整合模块 获取源 元数据 数组 源表 追溯 分析 | ||
1.通过数据库运行记录建立物理模型的方法,其特征在于,具体包括如下步骤:
S001获取查询语句:从数据库访问记录,以及从数据库日志获取查询语句;
S002提取查询主体:依据sql解析的步骤策略,避开干扰,从复杂的sql语句中提取中查询的主体语句;
S003获取源表:找到from后面的源表以及子查询中的涉及的表;
S004获取关联信息,并分别输出关联关系的map数组;
S005得到单次解析的最终关联信息;
所述的提取查询主体,具体包括如下子步骤:
S201去除不能直接反映表与表之间的弱关联关系;
S202去掉不能反映表与表之间的关系的无关从句;
S203去掉查询语句中的IN或NOT IN部分;
S204将查询语句中的union或union all拆散为多个语句;
S205将查询语句中where子句中的常值去掉;
所述的得到单次解析的最终关联信息具体包括:
S501将第一map数组、第二map数组进行剔重整合得到单次关联关系的map数组;
S502将通过多线程同步解析sql语句得到的map数组添加到上述map数组中得到最终的MAP数组;
S503解析该MAP数组,得到表的关联关系;
S504结合元数据,补全字段,得到最终的物理模型;
所述的获取关联信息,包括:
获取每个表的表字段关系,输出关联关系的第一map数组;
获取元数据信息里的强关联信息和主外键关系,输出关联关系的第二map数组;
所述的获取每个表的表字段关系是根据实际数据库来进行寻找。
2.根据权利要求1所述的通过数据库运行记录建立物理模型的方法,其特征在于:所述的提取查询主体,可以同时对至少一个sql语句进行查询主体的提取。
3.根据权利要求1所述的通过数据库运行记录建立物理模型的方法,其特征在于:所述的获取源表,通过SELECT FROM配对,解析每个SELECT FROM 所在的层次,分层次进行解析并分别得到不同层次的表。
4.根据权利要求3所述的通过数据库运行记录建立物理模型的方法,其特征在于:所述的获取源表,还包括将不同层次的表的集用数据结构进行再处理。
5.根据权利要求1所述的通过数据库运行记录建立物理模型的方法,数据库运行记录包括:数据库运行需要的元数据信息与数据库访问记录;所述的数据库访问记录具体包括增、删、改和查这四种逻辑;其特征在于:解析这四种逻辑的步骤方法一致。
6.根据权利要求1-5任意一项所述方法的通过数据库运行记录建立物理模型的系统,其特征在于,它包括:查询语句获取模块、查询主体提取模块、源表获取模块、关联信息获取模块和数组整合模块;
所述的查询语句获取模块从数据库访问记录,以及从数据库日志获取查询语句;
所述的查询主体提取模块依据sql解析的步骤策略,避开干扰,从复杂的sql语句中提取中查询的主体语句;
所述的源表获取模块找到from后面的源表以及子查询中的涉及的表;
所述的关联信息获取模块获取关联信息,并分别输出关联关系的map数组;
所述的数组整合模块将第一map数组、第二map数组进行剔重整合得到单次关联关系的map数组,将通过多线程同步解析sql语句得到的map数组添加到上述map数组中得到最终的MAP数组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都四方伟业软件股份有限公司,未经成都四方伟业软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710448752.8/1.html,转载请声明来源钻瓜专利网。