一种数据库结构逻辑校验方法技术

技术编号:9854601 阅读:143 留言:0更新日期:2014-04-02 18:00
一种数据库结构逻辑校验方法,包括:从MSSQL数据库中获取到所有的对象列表,分析可以进行校验的对象;将上述可以进行校验的对象进行过滤,如果这个对象有被其他对象所依赖,则需要进行校验;对需要校验的对象进行方法校验,依次校验后得出结果;字段类型校正及再校验。本发明专利技术提供的一种数据库结构逻辑校验方法,提升数据库结构逻辑校验的效率和正确率,从而提高软件产品的开发速率与质量。

【技术实现步骤摘要】
一种数据库结构逻辑校验方法
本专利技术属于数据库
,具体涉及一种数据库结构逻辑校验方法。
技术介绍
MSSQL是一种关系型数据库系统,其构成包含表、视图、存储过程、函数等一系列对象,并且它的对象之间是可以相互调用并存在依赖的。如果调用的时候对象与对象之间接口存在差异,比如存储过程调用了表,并且使用了表中的某个参数进行赋值,而赋值的对象与被赋值的对象类型不一致,就会导致错误,严重的甚至造成数据库系统无法使用。而MSSQL自身只能对单一的对象进行校验,比如只能校验单个表自身的逻辑是否正确,无法校验对象与对象之间的依赖逻辑是否正确。目前为了避免该现象的发生,均是靠人工细心设计来避免。但由于数据库系统本身的庞大,人为的设计难免会产生疏漏。即使有测试人员来校验,其工作量也是相当庞大,且无法达到100%的校验覆盖率。有鉴于此,本专利技术人针对现有技术的缺陷深入研究,遂有本案产生。
技术实现思路
本专利技术所要解决的技术问题在于提供一种数据库结构逻辑校验方法,提升数据库结构逻辑校验的效率和正确率,从而提高软件产品的开发速率与质量。一种数据库结构逻辑校验方法,包括如下步骤:步骤1:从MSSQL数据库中获取到所有的对象列表,分析可以进行校验的对象;步骤2:将上述可以进行校验的对象进行过滤,如果这个对象有被其他对象所依赖,则需要进行校验;步骤3:对需要校验的对象进行方法校验,依次校验后得出结果;步骤4:字段类型校正及再校验。进一步地,所述步骤1中,分析可校验对象,具体包括:从sysobjects系统表中查看所有对象;视图、存储过程、函数、规则过滤;如果是上述四种对象,则可以进行校验。进一步地,所述步骤2,具体包括:步骤2a:从步骤1中获取可以进行校验的对象名,使用sp_depends方法查看对象是否存在依赖;步骤2b:sp_depends结果为空,表明该对象没有存在依赖,则不需要进行校验,继续判断下一个对象名;步骤2c:sp_depends结果不为空,表明该对象存在与其他对象的依赖,则需要进行与其他对象的兼容性校验。进一步地,所述步骤3中,具体包括:步骤3a:从步骤2中获取需要校验的对象,命名为A;步骤3b:使用sp_depends方法查看对象A的依赖信息;步骤3c:sp_depends的结果显示对象A依赖于多个对象,以及体现具体依赖对象的具体字段,把依赖对象命名为C,依赖对象的字段命名为D;步骤3d:使用sp_depends查看对象A的逻辑内容;步骤3e:代码文本校验。进一步地,所述步骤3e,具体包括:步骤100:查找对象A的逻辑代码中的declare关键字;步骤101:截取被申明的变量名,命名为B;步骤102:查找变量B在对象A的代码中是否有被赋值或被比较,被变量赋值或比较的,转入步骤104;被固定参数赋值或比较的,转入步骤103;步骤103:不需要校验;步骤104:截取被赋值或被比较的变量名,命名为E;步骤105:与D进行匹配,得出E的依赖对象C;步骤106:判断对象C的属性,如果C是表,转入步骤107;如果C不是表,转入步骤108;步骤107:使用sp_help查看对象C的内容,判断变量E在对象C中的类型,转入步骤110;步骤108:使用sp_helptext查看对象C的逻辑代码;步骤109:搜索C代码中declare的关键字,判断E在C代码中被定义时的类型;步骤110:判断B与E的类型是否一致,一致转入步骤112;不一致转入步骤111;步骤111:记录B与E的类型差异,记录B与E的对象来源;步骤112:表明不会存在逻辑问题。进一步地,所述步骤4,具体包括:得出A对象的B与C对象的E字段类型不一致,则进行B与E的类型统一,然后重复步骤2-3,直到将MSSQL数据库中所有的对象校验通过。本专利技术的优点在于:1、在MSSQL的基础上,将所有具备依赖的对象关联起来,进行一个接口的校验,从而实现整个系统的接口一致性。2、弥补了黑盒测试无法检测出该问题的不足,传统黑盒测试由于无法查看到对象内容,导致无法高效遍历出所有数据库对象之间的接口问题,通过MSSQL自身的查询功能可以获知各对象的内容。3、即使数据库设计错误,通过该方法可以校验出数据库系统内各对象之间的接口是否一致,从而高效的找出设计的结构错误。4、提高了传统白盒测试的执行效率,传统白盒测试无法完全遍历代码,一是遍历的效率较低,二是遍历的准确率不高,三是白盒测试的成本过高。【附图说明】下面参照附图结合实施例对本专利技术作进一步的描述。图1是本专利技术方法流程示意图。图2是本专利技术中分析可校验对象的具体流程图。图3是本专利技术中过滤需要被校验的对象的具体流程图。图4是本专利技术中校验方法具体流程图。图5是本专利技术中文本校验具体流程图。图6是本专利技术中字段类型校正及再校验具体流程图。【具体实施方式】如图1所示,一种数据库结构逻辑校验方法,包括如下步骤:步骤1:从MSSQL数据库中获取到所有的对象列表,分析可以进行校验的对象;步骤2:将上述可以进行校验的对象进行过滤,如果这个对象有被其他对象所依赖,则需要进行校验;步骤3:对需要校验的对象进行方法校验,依次校验后得出结果;步骤4:字段类型校正及再校验。其中,步骤1中,分析可校验对象,如图2所示,具体包括:从sysobjects系统表中查看所有对象;视图、存储过程、函数、规则过滤;如果是上述四种对象,则可以进行校验。MSSQL数据库中存在一张系统表sysobjects,这张表中记录MSSQL中所有的对象列表,可以根据表字段xtype辩别对象类型。表是最小单元,不会存在下级依赖,故不需要进行校验。视图、存储过程、函数、规则均是会引用到表对象的对象,或引用到其他对象,故有需要被校验的必要。其中,步骤2,如图3所示,具体包括:步骤2a:从步骤1中获取可以进行校验的对象名,使用sp_depends方法查看对象是否存在依赖;步骤2b:sp_depends结果为空,表明该对象没有存在依赖,则不需要进行校验,继续判断下一个对象名;;步骤2c:sp_depends结果不为空,表明该对象存在与其他对象的依赖,则需要进行与其他对象的兼容性校验。(sp_depends是MSSQL自带的逻辑方法,通过该方法可以查询出某对象的依赖情况,依赖情况以表的形式体现。)其中,步骤3,如图4所示,具体包括:步骤3a:从步骤2中获取需要校验的对象,命名为A;步骤3b:使用sp_depends方法查看对象A的依赖信息;步骤3c:sp_depends的结果显示对象A依赖于多个对象,以及体现具体依赖对象的具体字段,把依赖对象命名为C,依赖对象的字段命名为D;步骤3d:使用sp_depends查看对象A的逻辑内容;步骤3e:代码文本校验。(通过遍历代码文本进行自动化的白盒测试)。如图5所示,该步骤具体包括:步骤100:查找对象A的逻辑代码中的declare关键字;(declare是定义的语法,表明有变量被申明。)步骤101:截取被申明的变量名,命名为B;步骤102:查找变量B在对象A的代码中是否有被赋值或被比较,(通过关键字:〉、〈、=、〈〉、!=、in、between判断参数B在代码中是否有被赋值或被比较,)被变量赋值或比较的,转入步骤104;被固定参数赋值或比较的,转入步骤1本文档来自技高网...
一种数据库结构逻辑校验方法

【技术保护点】
一种数据库结构逻辑校验方法,其特征在于:包括如下步骤:步骤1:从MSSQL数据库中获取到所有的对象列表,分析可以进行校验的对象;步骤2:将上述可以进行校验的对象进行过滤,如果这个对象有被其他对象所依赖,则需要进行校验;步骤3:对需要校验的对象进行方法校验,依次校验后得出结果;步骤4:字段类型校正及再校验。

【技术特征摘要】
1.一种数据库结构逻辑校验方法,其特征在于:包括如下步骤:步骤1:从MSSQL数据库中获取到所有的对象列表,分析可以进行校验的对象;步骤2:将上述可以进行校验的对象进行过滤,如果这个对象有被其他对象所依赖,则需要进行校验;具体包括:步骤2a:从步骤1中获取可以进行校验的对象名,使用sp_depends方法查看对象是否存在依赖;步骤2b:sp_depends结果为空,表明该对象没有存在依赖,则不需要进行校验,继续判断下一个对象名;步骤2c:sp_depends结果不为空,表明该对象存在与其他对象的依赖,则需要进行与其他对象的兼容性校验;步骤3:对需要校验的对象进行方法校验,依次校验后得出结果;步骤4:字段类型校正及再校验。2.如权利要求1所述的一种数据库结构逻辑校验方法,其特征在于:所述步骤1中,分析可校验对象,具体包括:从sysobjects系统表中查看所有对象;视图、存储过程、函数、规则过滤;如果是上述四种对象,则可以进行校验。3.如权利要求1或2所述的一种数据库结构逻辑校验方法,其特征在于:所述步骤3,具体包括:步骤3a:从步骤2中获取需要校验的对象,命名为A;步骤3b:使用sp_depends方法查看对象A的依赖信息;步骤3c:sp_depends的结果显示对象A依赖于多个对象,以及体现具体依赖对象的具体字段,把依赖对象命名为C,依赖对象的字段命名为D;步骤3d:使用sp_d...

【专利技术属性】
技术研发人员:詹俊挺
申请(专利权)人:福建星网视易信息系统有限公司
类型:发明
国别省市:福建;35

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

1