[发明专利]确定关系数据库表关联复杂度的方法和装置有效
申请号: | 201610329065.X | 申请日: | 2016-05-18 |
公开(公告)号: | CN107402920B | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 许文靖 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 11219 中原信达知识产权代理有限责任公司 | 代理人: | 姜劲;陆锦华 |
地址: | 100195 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 确定 关系 数据库 关联 复杂度 方法 装置 | ||
本发明提供一种确定关系数据库表关联复杂度的方法和装置,能够根据基于关系数据库应用系统的日志或配置文件得到应用系统的表关联的复杂程度,不仅为应用系统的质量管理提供量化支持;也为应用系统的优化和质量管理提供客观的决策依据。本发明的方法包括:获取基于关系数据库的应用系统的日志文件和/或配置文件,并对获取的文件中的每条记录做分词以得到多个词;根据预先保存的表数据词典对每条记录中的多个词进行筛选以得到每条记录的分词序列;根据每一个所述分词序列生成对应于该分词序列的关联指纹,再根据所得到的关联指纹生成关联图数据结构;计算关联图数据结构的复杂度,以及将该关联图数据结构的复杂度作为关系数据库表的关联复杂度。
技术领域
本发明涉及计算机及其软件技术领域,特别涉及一种确定关系数据库表关联复杂度的方法和装置。
背景技术
基于关系数据库的应用系统开发通常采用三层(数据访问层,业务逻辑层和展示层)或多层(业务逻辑层拆分成多个子层)架构,其中数据访问层主要承担基本的数据访问逻辑(增删改查)。在实际应用中,基于关系数据库的应用系统运行的时间越久,新增功能和漏洞修复的次数越多,SQL数据库关联就越多,数据访问层的复杂度越来越高,系统就越难以维护。
可度量的才是可管理的,只有明确了SQL数据库关联复杂程度,才能够及时识别到数据访问层的可维护性恶化并找到改进方案。圈复杂度是一种代码复杂度的衡量标准。在软件测试的概念里,圈复杂度“用来衡量一个模块判定结构的复杂程度,数量上表现为独立线性路径条数,即合理的预防错误所需测试的最少路径条数,圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系”。圈复杂度是以图论为基础的,通用的公式是V(G)=e–n+2,e代表在控制流图中的边的数量(对应代码中顺序结构的部分),n代表在控制流图中的节点数量,包括起点和终点。
现有的复杂度计算方法虽然可用于解决程序复杂度度量的问题,但不能直接用于评估表关联复杂度,无法提供数据库表关联复杂程度的量化结果,更无法对系统优化和质量管理提供客观的决策依据。
发明内容
有鉴于此,本发明提供一种确定关系数据库表关联复杂度的方法和装置,能够根据基于关系数据库应用系统的日志或配置文件中提取数据库表的关联指纹,并基于圈复杂度算法度量应用系统的表关联的复杂程度,不仅为应用系统的质量管理提供量化支持,提供数据库表关联复杂程度的量化结果,提供数据库表关联复杂库的定期报告;而且为应用系统的优化和质量管理提供客观的决策依据。
为实现上述目的,根据本发明的一个方面,提供了一种确定关系数据库表关联复杂度的方法。
本发明的确定关系数据库表关联复杂度的方法包括:获取基于关系数据库的应用系统的日志文件和/或配置文件,并对获取的文件中的每条记录做分词以得到多个词;根据预先保存的表数据词典对所述每条记录中的所述多个词进行筛选以得到每条记录的分词序列;所述表数据库词典包括数据库表名和预设的语法关键词;根据每一个所述分词序列生成对应于该分词序列的关联指纹,再根据所得到的关联指纹生成关联图数据结构;计算所述关联图数据结构的复杂度,以及将该关联图数据结构的复杂度作为所述关系数据库表的关联复杂度。
可选地,所述获取系统中的日志文件和/或配置文件的步骤之前,还包括:获取数据库中的数据库表名;将所述数据库表名和预设的语法关键词按照设定的格式进行保存以得到表数据词典。
可选地,根据预先保存的表数据词典对所述每条记录中的词进行筛选以得到每条记录的分词序列的步骤包括:将每条记录中的词与所述表数据词典中的词进行比对,将所有存在于所述表数据词典中的词作为该条记录的分词序列。
可选地,根据每一个分词序列生成对应于该分词序列的关联指纹的步骤包括:查找分词序列中的标示关联开始的语法关键词和标示关联结束的语法关键词;根据分词序列每一对标示关联开始的语法关键词和标示关联结束的语法关键词之间的数据库表名生成该分词序列的关联指纹。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610329065.X/2.html,转载请声明来源钻瓜专利网。