CN106202386A - 自动分析数据库表关系的方法 - Google Patents
自动分析数据库表关系的方法 Download PDFInfo
- Publication number
- CN106202386A CN106202386A CN201610537236.8A CN201610537236A CN106202386A CN 106202386 A CN106202386 A CN 106202386A CN 201610537236 A CN201610537236 A CN 201610537236A CN 106202386 A CN106202386 A CN 106202386A
- Authority
- CN
- China
- Prior art keywords
- sql
- field
- database table
- statement
- relation
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了自动分析数据库表关系的方法,通过对数据库***现有程序的学习,从程序的SQL执行序列逆向推导出取数逻辑,生成表关系。其学习、推导过程如下:按时间先后顺序排列SQL查询语句作为输入数据,并通过该输入数据做为获取该SQL语句对应的数据库表与前序表、字段的匹配关系,自动完成对时间序列的第N个SQL查询语句的表关系分析。
Description
技术领域
本发明涉及一种计算机应用***技术领域,尤其是一种自动分析数据库表关系的方法。
背景技术
随着大数据时代的到来,现代关系型数据库***的表数量和表关系数量正变得越来越庞大,而表关系在不同的使用场景中又存在差异,因此整理数据库表关系的工作也开始变得复杂化。
但对于一个成熟的基于关系型数据库的大型***而言,***中的现有程序已经对大量数据库表执行了查询操作,因此我们只需要分析这些现有程序的取数过程,对这些程序的数据查询过程进行跟踪分析,就能快速找出数据库表关系。
目前SQL跟踪已经是较为成熟的技术,利用SQL跟踪技术可以跟踪出目标程序在指定时间范围中执行过的SQL序列。具体来说,我们首先需要使用SQL跟踪工具,跟踪该***现有程序的执行过程,提取出SQL执行序列。从这些SQL序列中可以提取出数据库表的查询条件,找到查询条件以后,在前序SQL查询语句的查询结果中进行手工检索,找到每个查询条件的值的来源,即可确认出数据库表、字段之间的关联关系。
这种表关系分析方式的优点是,只要数据库表的取数逻辑已经存在于现有程序中,既可以通过成熟的SQL跟踪工具,跟踪该程序的SQL的执行序列,以SQL序列为线索,即可提取出数据库表关联关系。
该方式的缺点是,在获取到目标程序的SQL执行序列之后,仍需要结合手工查询数据库表以及人工对比数据的过程,才能完成表关系分析,效率较低且容易出错,因此该方法有进一步优化的空间。
目前暂未出现可广泛运用的自动分析数据库表关系的方法。
发明内容
本发明要解决的技术问题是提供一种简单的自动分析数据库表关系的方法。
为解决上述技术问题,本发明提供一种自动分析数据库表关系的方法,通过对数据库***现有程序的学习,从程序的SQL执行序列逆向推导出取数逻辑,生成表关系。
作为对本发明所述的自动分析数据库表关系的方法的改进:所述学习、推导过程如下:按时间先后顺序排列N个SQL查询语句作为输入数据,并通过该输入数据做为获取该SQL语句对应的数据库表与前序表、字段的匹配关系,自动完成对时间序列的第N个SQL查询语句的表关系分析。
作为对本发明所述的自动分析数据库表关系的方法的进一步改进:所述匹配、分析步骤如下;第一步:提取出每个SQL查询语句的查询条件和查询结果;第二步:按照时间先后顺序,将每个SQL查询语句的查询条件与前序SQL查询语句的查询结果进行值清单匹配;第三步:利用步骤二中记录的匹配信息,生成并记录该SQL语句的表关系分析结果;第四步:按照步骤三所获得的分析结果输出表关系。
作为对本发明所述的自动分析数据库表关系的方法的进一步改进:所述步骤一中:要提取的查询条件包括查询条件的字段清单以及字段对应的值清单;要提取的查询结果包括查询结果的字段清单以及查询结果的各行的各字段的数据值。
作为对本发明所述的自动分析数据库表关系的方法的进一步改进:所述步骤二中:将时间序列的第N个SQL查询语句的查询条件,与第1~N-1个SQL查询语句的查询结果进行值清单的匹配操作,并将所有匹配成功的表、字段和值信息记录下来。
作为对本发明所述的自动分析数据库表关系的方法的进一步改进:所述步骤三中表分析步骤如下:第N个SQL查询语句的数据库表为C,第N-2个SQL查询语句的数据库表为A,第N个SQL查询语句的查询条件中的字段g值g、与第N-2个SQL查询语句的查询结果中的字段p值g匹配成功,则获取到的表关系结果为:表C-字段g=表A-字段2=值g。
作为对本发明所述的自动分析数据库表关系的方法的进一步改进:所述步骤四中:根据步骤三所获取到的字段匹配清单,按照字段的匹配强度从高到低输出表关系。
作为对本发明所述的自动分析数据库表关系的方法的进一步改进:步骤四中,用匹配值的有效长度来定义匹配强度。
本发明利用机器学习的思想,通过对数据库***现有程序的学习,从程序的SQL执行序列逆向推导出取数逻辑,生成表关系,解决了表关系分析依赖于大量人工查找的问题,有效减少了工作量。
具体而言,本发明利用机器学习的原理,以跟踪到的大量SQL查询语句为基础进行自动学习,自动分析得到表关系。
本发明将现有方法中需要手工处理的步骤转化成了自动化的处理流程,实现了一种可行的自动分析关系型数据库表关系的方法,并通过该方法可以在SQL跟踪工具提取出程序的SQL执行序列之后,自动利用跟踪到的SQL执行序列分析出完整的数据库表关系。
通过本发明可以大幅度的节约表关系分析的时间,解决人工分析表关系的低效率和准确率低的问题。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细说明。
图1是本发明自动分析数据库表关系的方法的流程示意图。
具体实施方式
实施例1、图1给出一种自动分析数据库表关系的方法,本方法以一系列按时间先后顺序排列的SQL查询语句作为输入数据,进行自动化分析。
具体执行流程如下:
第一步:提取出每个SQL查询语句的查询条件和查询结果:
要提取的查询条件包括查询条件的字段清单以及字段对应的值清单;
要提取的查询结果包括查询结果的字段清单以及查询结果的各行的各字段的数据值。
第二步:按照时间先后顺序,将每个SQL查询语句的查询条件,与前序SQL查询语句的查询结果进行值清单匹配操作。
具体而言,就是将时间序列的第N个SQL查询语句的查询条件,与第1~N-1个SQL查询语句的查询结果进行值清单的匹配操作,并将所有匹配成功的表、字段和值信息记录下来。
第三步:利用第二步中记录的表、字段和值的匹配信息,生成并记录该SQL语句的表关系分析结果。
具体而言,假设第N个SQL查询语句的数据库表为C,第N-2个SQL查询语句的数据库表为A。第N个SQL查询语句的查询条件中的字段g值g、与第N-2个SQL查询语句的查询结果中的字段2值g匹配成功。
则获取到的表关系结果为:表C-字段g=表A-字段2=值g。
第四步:按照字段的匹配强度从高到低输出表关系。
在第三步中,我们通过查询条件和前序查询结果的值清单的匹配,获取到了字段匹配的清单,接下来我们需要按照字段的匹配强度从高到低输出表关系。
本方法用匹配值的有效长度来定义匹配强度,例如表A的字段1和表B的字段2通过值“qwert”匹配,则他们的匹配长度为匹配值“qwert”的有效长度5。
依次执行以上四个步骤,最终我们获取到了时间序列的第N个SQL查询语句对应的数据库表与前序表、字段的匹配关系,至此我们已经完成了对数据库表关系的自动分析。
最后,还需要注意的是,以上列举的仅是本发明的一个具体实施例。显然,本发明不限于以上实施例,还可以有许多变形。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。
Claims (8)
1.自动分析数据库表关系的方法,其特征是:通过对数据库***现有程序的学习,从程序的SQL执行序列逆向推导出取数逻辑,生成表关系。
2.根据权利要求1所述的自动分析数据库表关系的方法,其特征是:所述学习、推导过程如下:
按时间先后顺序排列SQL查询语句作为输入数据,并通过该输入数据做为获取该SQL查询语句对应的数据库表与前序表、字段的匹配关系,自动完成对时间序列的第N个SQL查询语句的表关系分析。
3.根据权利要求2所述的自动分析数据库表关系的方法,其特征是:匹配、分析步骤如下;
第一步:提取出每个SQL查询语句的查询条件和查询结果;
第二步:按照时间先后顺序,将每个SQL查询语句的查询条件与前序SQL查询语句的查询结果进行值清单匹配;
第三步:利用步骤二中记录的匹配信息,生成并记录该SQL语句的表关系分析结果;
第四步:按照步骤三所获得的分析结果输出表关系。
4.根据权利要求3所述的自动分析数据库表关系的方法,其特征是:所述步骤一中:
要提取的查询条件包括查询条件的字段清单以及字段对应的值清单;
要提取的查询结果包括查询结果的字段清单以及查询结果的各行的各字段的数据值。
5.根据权利要求4所述的自动分析数据库表关系的方法,其特征是:所述步骤二中:
将时间序列的第N个SQL查询语句的查询条件,与第1~N-1个SQL查询语句的查询结果进行值清单的匹配操作,并将所有匹配成功的表、字段和值信息记录下来。
6.根据权利要求5所述的自动分析数据库表关系的方法,其特征是:所述步骤三中表分析步骤如下:
第N个SQL查询语句的数据库表为C,第N-2个SQL查询语句的数据库表为A,第N个SQL查询语句的查询条件中的字段g值g、与第N-2个SQL查询语句的查询结果中的字段p值g匹配成功,则获取到的表关系结果为:表C-字段g=表A-字段2=值g。
7.根据权利要求6所述的自动分析数据库表关系的方法,其特征是:所述步骤四中:根据步骤三所获取到的字段匹配清单,按照字段的匹配强度从高到低输出表关系。
8.根据权利要求7所述的自动分析数据库表关系的方法,其特征是:步骤四中,用匹配值的有效长度来定义匹配强度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610537236.8A CN106202386A (zh) | 2016-07-08 | 2016-07-08 | 自动分析数据库表关系的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610537236.8A CN106202386A (zh) | 2016-07-08 | 2016-07-08 | 自动分析数据库表关系的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106202386A true CN106202386A (zh) | 2016-12-07 |
Family
ID=57473061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610537236.8A Pending CN106202386A (zh) | 2016-07-08 | 2016-07-08 | 自动分析数据库表关系的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106202386A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108441A (zh) * | 2017-12-21 | 2018-06-01 | 新博卓畅技术(北京)有限公司 | 一种数据库表结构分析方法和*** |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1632794A (zh) * | 2004-12-27 | 2005-06-29 | 中国科学院软件研究所 | 可扩展标记语言类型至关系数据库表的映射方法 |
CN1734428A (zh) * | 2004-08-02 | 2006-02-15 | 微软公司 | 基于事务性能模型的自动配置 |
CN101221538A (zh) * | 2008-01-24 | 2008-07-16 | 杭州华三通信技术有限公司 | 实现对缓存中数据快速查找的***和方法 |
CN101535945A (zh) * | 2006-04-25 | 2009-09-16 | 英孚威尔公司 | 全文查询和搜索***及其使用方法 |
CN101901222A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种sql解析及匹配的方法和*** |
CN102262675A (zh) * | 2011-08-12 | 2011-11-30 | 北京握奇数据***有限公司 | 数据库查询方法及智能卡 |
CN102402615A (zh) * | 2011-12-22 | 2012-04-04 | 哈尔滨工程大学 | 一种基于结构化查询语言语句的源信息追踪方法 |
CN105138585A (zh) * | 2015-07-31 | 2015-12-09 | 福建天晴数码有限公司 | 数据库加密字段部分匹配查询方法及*** |
JP2016083829A (ja) * | 2014-10-25 | 2016-05-19 | 株式会社プラスチック工学研究所 | 可視化装置用解析システム |
CN105608149A (zh) * | 2015-12-19 | 2016-05-25 | 广西师范学院 | 基于关系数据库的数据空间的访问方法 |
-
2016
- 2016-07-08 CN CN201610537236.8A patent/CN106202386A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1734428A (zh) * | 2004-08-02 | 2006-02-15 | 微软公司 | 基于事务性能模型的自动配置 |
CN1632794A (zh) * | 2004-12-27 | 2005-06-29 | 中国科学院软件研究所 | 可扩展标记语言类型至关系数据库表的映射方法 |
CN101535945A (zh) * | 2006-04-25 | 2009-09-16 | 英孚威尔公司 | 全文查询和搜索***及其使用方法 |
CN101221538A (zh) * | 2008-01-24 | 2008-07-16 | 杭州华三通信技术有限公司 | 实现对缓存中数据快速查找的***和方法 |
CN101901222A (zh) * | 2009-05-27 | 2010-12-01 | 北京启明星辰信息技术股份有限公司 | 一种sql解析及匹配的方法和*** |
CN102262675A (zh) * | 2011-08-12 | 2011-11-30 | 北京握奇数据***有限公司 | 数据库查询方法及智能卡 |
CN102402615A (zh) * | 2011-12-22 | 2012-04-04 | 哈尔滨工程大学 | 一种基于结构化查询语言语句的源信息追踪方法 |
JP2016083829A (ja) * | 2014-10-25 | 2016-05-19 | 株式会社プラスチック工学研究所 | 可視化装置用解析システム |
CN105138585A (zh) * | 2015-07-31 | 2015-12-09 | 福建天晴数码有限公司 | 数据库加密字段部分匹配查询方法及*** |
CN105608149A (zh) * | 2015-12-19 | 2016-05-25 | 广西师范学院 | 基于关系数据库的数据空间的访问方法 |
Non-Patent Citations (1)
Title |
---|
唐韬: "基于HBase的SQL转化引擎研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108441A (zh) * | 2017-12-21 | 2018-06-01 | 新博卓畅技术(北京)有限公司 | 一种数据库表结构分析方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
CN107016018B (zh) | 数据库索引创建方法及装置 | |
WO2014113772A3 (en) | Methods and systems for mapping repair orders within a database | |
CN106970929B (zh) | 数据导入方法及装置 | |
CN113157564B (zh) | 一种基于特征分布对齐和邻域实例选择的跨项目缺陷预测方法 | |
CN112364024A (zh) | 一种表数据批量自动比对的控制方法及装置 | |
CN106547915A (zh) | 基于模型库的智能数据提取方法 | |
CN105893482A (zh) | 发动机试验数据全自动化提取与Word报告生成方法 | |
CN107169023A (zh) | 基于sql语义自动解析的数据血统分析***及方法 | |
CN109738946B (zh) | 两步法剔除异常地震初至的方法及*** | |
KR102013657B1 (ko) | 연관된 다중 파일 정적 분석 장치 | |
CN111324781A (zh) | 一种数据分析方法、装置及设备 | |
CN108021878B (zh) | 一种等高线负向地貌智能识别方法 | |
CN107943929A (zh) | 基于dom树抽象的包装器自动生成方法 | |
CN104572474A (zh) | 一种基于动态切片的轻量级错误定位技术实现方法 | |
WO2021101105A3 (ko) | 의료 전문 자료의 과목 분류 시스템 및 방법 | |
CN103500181A (zh) | 一种互联网信息分析方法和装置 | |
CN104731908A (zh) | 一种基于etl的数据清洗方法 | |
CN108446380B (zh) | 基于模块化信息存储结构提升产业质量水平的*** | |
CN106202386A (zh) | 自动分析数据库表关系的方法 | |
CN114020593A (zh) | 一种基于轨迹聚类的异质流程日志采样方法与*** | |
CN102831174A (zh) | 结构化信息快速检索方法及*** | |
CN103412942B (zh) | 一种基于云计算技术的电压暂降数据分析方法 | |
CN104657267A (zh) | 弹性的源代码语法树解析***及方法 | |
CN105373473B (zh) | 基于原始信令解码的cdr准确性测试方法及测试*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20210702 |
|
AD01 | Patent right deemed abandoned |