数据库表关联关系确定方法及装置制造方法及图纸

技术编号:15391638 阅读:77 留言:0更新日期:2017-05-19 04:52
本申请提供了一种数据库表关联关系确定方法及装置,其中,方法包括:剔除数据库各源码文件中的注释信息;对剔除注释信息后的各源码文件进行函数切分,根据函数切分结果及各源码文件分析得到函数与函数之间的关联关系;对剔除注释信息后的各源码文件进行语句切分,根据语句切分结果、函数切分结果及各源码文件分析得到函数、表及MDL操作方式的关联关系;根据函数与函数之间的关联关系,函数、表及DML操作方式的关联关系,分析得到表与表之间关联关系及其密切程度。本申请能够减少数据库表关联关系分析的人力投入,降低分析过程复杂度,准确界定数据库表之间的关联关系,为后续系统架构调整及优化提供基础。

Method and device for determining association relation of database table

This application provides a database table including relationship determination method and device, the method to remove the source files in the database annotation information; function segmentation to eliminate annotation information after the source file, according to the segmentation results and the function of the source file analysis relationship between the function and the function of statement; segmentation of the annotation information after removing each source file, according to the statement, the segmentation results of segmentation results and the function of the source file analysis correlation function, and get the MDL operating mode; according to the relationship between the function and the function of the correlation function, and the DML operation method, analysis table and relationship between tables and close degree. This application can reduce the human input of the relational analysis of database tables, reduce the complexity of the analysis process, and accurately define the relationship between the database tables, and provide the basis for the follow-up system architecture adjustment and optimization.

【技术实现步骤摘要】
数据库表关联关系确定方法及装置
本申请涉及计算机
,特别涉及一种数据库表关联关系确定方法及装置。
技术介绍
随着互联网应用的广泛普及,海量数据的存储和访问已经成为系统设计的瓶颈问题。传统的垂直扩展(提升硬件设备处理能力)的解决方案存在投入昂贵、无法弹性扩展的局限,已不能满足业务快速发展需要。目前业界通用措施是采用数据库分拆(分库、分表)的策略,将数据从单节点数据库分为多个数据库节点。数据库分拆(分库、分表)一般就是按照某种特定条件,将放在同一数据库的数据分散到多个数据库。目前业界主要有两种方式:一是垂直分拆:按照业务功能,将不同的表分散到不同的数据库,即分库;二是水平分拆:将同一表的数据按照某种规则分散到不同的数据库,即分表。但在实施分库、分表时,都面临如下问题及挑战:1、应用端如何方便的从数据库中获取数据,不能因为数据拆分导致应用端存取数据错误或者异常复杂;2、应用实施分库、分表,如何对应用端程序影响最小;3、数据库节点扩容时,如何避免或者减少对应用端的影响;对于数据库分拆(分库、分表)面临的问题,良好的设计才是解决问题的关键。在实施数据库分拆(分库、分表)前,必须充分了解系统业务逻辑和数据库SCHEMA,绘制数据库ER图,结合业务逻辑和表间关系,将业务、表间关联关系密切的表划分到一起。当所有表划分完毕后才能最终确定数据库分库分表方案。随着系统规模逐渐增大、系统维护使用年限逐渐增长,文档设计与编码实现之间不可避免地会存在脱节、遗漏或描述不一致的情况。由于缺乏完整清晰的文档,维护人员难以直接理解数据库设计,无法准确的分析或界定数据库表之间的关联关系,系统业务逻辑和表间关系的分析梳理工作也将变得异常复杂,且效率低下。
技术实现思路
本申请提供一种数据库关联关系确定方法及装置,用于解决现有技术中,业务逻辑和表间关联关系分析过程复杂且效率低,数据库表之间关联关系界定精度不高等问题。为了解决上述技术问题,本申请的一技术方案为提供一种数据库表关联关系确定方法,包括:剔除数据库各源码文件中的注释信息;对剔除注释信息后的各源码文件进行函数切分,根据函数切分结果及各源码文件分析得到函数与函数之间的关联关系;对剔除注释信息后的各源码文件进行语句切分,根据语句切分结果、函数切分结果及各源码文件分析得到函数、表及MDL操作方式的关联关系;根据函数与函数之间的关联关系,函数、表及DML操作方式的关联关系,分析得到表与表之间关联关系及其密切程度。本申请另一技术方案为提供一种数据库表关联关系确定装置,包括:注释过滤模块,用于剔除数据库各源码文件中的注释信息;函数切分模块,用于对剔除注释信息后的各源码文件进行函数切分;函数分析模块,用于根据函数切分结果及各源码文件分析得到函数与函数之间的关联关系;语句切分模块,用于对剔除注释信息后的各源码文件进行语句切分;语句分析模块,用于根据语句切分结果、函数切分结果及各源码文件分析得到函数、表及MDL操作方式的关联关系;表与表关联关系分析模块,用于根据函数与函数之间的关联关系,函数、表及DML操作方式的关联关系,分析得到表与表之间关联关系及其密切程度。本申请通过对源码按照函数、语句级别的粒度进行切分,加以合理的数据库表关联关系分析机制,并引入了注释剔除模式,能够减少数据库表关联关系分析的人力投入,降低分析过程复杂度,准确界定数据库表之间的关联关系,为后续系统架构调整及优化提供基础。附图说明为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例的数据库表关联关系确定方法的流程图;图2为本申请实施例的剔除数据库各源码文件中的注释信息的流程图;图3为本申请实施例的对剔除注释信息后的各源码文件进行函数切分的流程图;图4为本申请实施例的函数与函数之间关联关系分析过程流程图;图5为本申请实施例的对剔除注释信息后的各源码文件进行语句切分的流程图;图6为本申请实施例的函数、表及操作方式的关联关系分析过程流程图;图7为本申请实施例的表与表之间关联关系分析过程流程图;图8为本申请实施例的数据库表关联关系确定装置结构示意图;图9为本申请实施例的注释过滤模块结构示意图;图10为本申请实施例的函数切分模块结构示意图;图11为本申请实施例的函数分析模块结构示意图;图12为本申请实施例的语句切分模块结构示意图;图13为本申请实施例的语句分析模块结构示意图。具体实施方式为了使本申请的技术特点及效果更加明显,下面结合附图对本申请的技术方案做进一步说明,本申请也可有其他不同的具体实例来加以说明或实施,任何本领域技术人员在权利要求范围内做的等同变换均属于本申请的保护范畴。在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“例如”、“示例”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。如图1所示,图1为本申请实施例的数据库表关联关系确定方法流程图。本实施例能够通过对各源码文件剔除注释信息后进行函数切分及语句切分,根据切分结果能够精确地分析界定出表之间的关联关系,具有分析成本低、效率高的特点。具体的,数据库表关联关系确定方法包括:步骤101:剔除数据库各源码文件中的注释信息。数据库中包括多个源码文件,分别用于实现不用的业务功能。步骤102:对剔除注释信息后的各源码文件进行函数切分,根据函数切分结果及各源码文件分析得到函数与函数之间的关联关系。本申请中,通过对各源码文件进行函数切分,能够对函数进行定位(确定函数代码的开始行数及结束行数等)。函数与函数之间的关联关系指的是:源码文件中定义的函数(如函数A)中调用了其他函数(如函数B),则认为函数A与函数B相关联。一具体实施例得到的函数与函数之间的调用关系如表三,具体实施时,可以数据列表的形式进行存储。步骤103:对剔除注释信息后的各源码文件进行语句切分,根据语句切分结果、函数切分结果及各源码文件分析得到函数、表及DML(Datamanipulationlanguage,数据操作语言)操作方式的关联关系。本申请中,通过对各源码文件进行语句切分,能够对语句进行定位(确定每个语句代码的开始行数、结束行数及语句内容等)。函数、表及操作方式之间的关联关系指的是:函数中对表存在DML操作(插入、删除、更新),则认为函数与表通过DML相关联。一具体实施例得到的函数、表与操作方式之间的关系如表四,具体实施时,可以数据列表的形式进行存储。步骤104:根据函数与函数之间的关联关系,函数、表及操作方式的关联关系,分析得到表与表之间的关联关系及其密切程度。表与表之间的关联关系存在两种:第一种指的是对同一函数中涉及的表存在DML操作,则该函数中的各表之间相关联;第二种指的是存在两个相互调用关系本文档来自技高网
...
数据库表关联关系确定方法及装置

【技术保护点】
一种数据库表关联关系确定方法,其特征在于,包括:剔除数据库各源码文件中的注释信息;对剔除注释信息后的各源码文件进行函数切分,根据函数切分结果及各源码文件分析得到函数与函数之间的关联关系;对剔除注释信息后的各源码文件进行语句切分,根据语句切分结果、函数切分结果及各源码文件分析得到函数、表及MDL操作方式的关联关系;根据函数与函数之间的关联关系,函数、表及DML操作方式的关联关系,分析得到表与表之间关联关系及其密切程度。

【技术特征摘要】
1.一种数据库表关联关系确定方法,其特征在于,包括:剔除数据库各源码文件中的注释信息;对剔除注释信息后的各源码文件进行函数切分,根据函数切分结果及各源码文件分析得到函数与函数之间的关联关系;对剔除注释信息后的各源码文件进行语句切分,根据语句切分结果、函数切分结果及各源码文件分析得到函数、表及MDL操作方式的关联关系;根据函数与函数之间的关联关系,函数、表及DML操作方式的关联关系,分析得到表与表之间关联关系及其密切程度。2.如权利要求1所述的数据库表关联关系确定方法,其特征在于,剔除数据库各源码文件中的注释信息的过程进一步包括:确定源码的注释格式,根据注释格式提取注释在各源码文件中的开始行数及结束行数;将同一注释的开始行数及结束行数之间的信息剔除。3.如权利要求1所述的数据库表关联关系确定方法,其特征在于,对剔除注释信息后的各源码文件进行函数切分的过程包括:根据关键字提取各源码文件中的函数名称;根据函数名称提取函数在源码文件中的开始行数及结束行数,根据函数在源码中的开始行数及结束行数对剔除注释信息后的源码文件进行切分得到函数切分结果。4.如权利要求1所述的数据库表关联关系确定方法,其特征在于,根据函数切分结果及各源码文件分析得到函数与函数之间的关联关系的过程包括:根据源码文件的文件名在各源码文件中进行遍历,确定源码文件之间的调用关系;在调用源码文件中,遍历被调用源码文件中的函数名,确定代码行数,根据调用源码文件的函数切分结果确定代码行数属于哪个函数,从而确定函数与函数的调用关系。5.如权利要求1所述的数据库表关联关系确定方法,其特征在于,对剔除注释信息后的各源码文件进行语句切分的过程包括:确定语句结束符格式,根据语句结束符格式在各源码文件中提取包含语句结束符格式的行数得到语句的结束行数;对于每一源码文件,将语句的结束行数进行升序排列,对上一语句的结束行数作加一处理得到下一语句的开始行数;根据语句的开始行数及结束行数对剔除注释信息后的源码文件进行切分得到语句切分结果。6.如权利要求1所述的数据库表关联关系确定方法,其特征在于,根据语句切分结果、函数切分结果及各源码文件分析得到函数、表及DML操作方式的关联关系的过程包括:根据表清单在各源码文件中进行遍历,确定文件与表之间的调用关系;根据文件与表之间的调用关系确定表所在源码文件的代码行数;从语句切分结果中查找表所在源码文件的代码行数对应的语句,根据DML操作方式关键字确定查找到的语句的操作方式;根据函数切分结果确定表所在源码文件的代码行数属于哪个函数;将确定的函数、表及操作方式关联到一起。7.如权利要求1至6任一项所述的数据库表关联关系确定方法,其特征在于,根据函数与函数之间的关联关系,函数、表及DML操作方式的关联关系,分析得到表与表之间关联关系及其密切程度进一步包括:利用如下规则,根据函数与函数之间的关联关系,函数、表及DML操作方式的关联关系,分析得到表与表之间的关联关系:若同一函数同时对多个表存在DML操作方式,则同一函数中存在DML操作方式的各表之间存在关联关系,若函数与函数之间存在调用关系,则两个函数中存在DML操作方式的表之间存在关联关系;表与表之间每确定一次关联关系,则做加一计算,根据计算结果确定表与表之间的密切程度。8.一种数据库表关联关系确定装置,其特征...

【专利技术属性】
技术研发人员:范呈锦严波
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京,11

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

1