基于数据字典和可变规则的数据库表级比较方法和系统的制作方法

文档序号:6442423阅读:131来源:国知局
专利名称:基于数据字典和可变规则的数据库表级比较方法和系统的制作方法
技术领域
本申请涉及数据库处理领域。更具体来说,本申请涉及基于数据字典和可变规则的数据库表级比较方法和系统。
背景技术
数据库是按照数据结构来组织、存储和管理数据的仓库。在经济管理的日常生活中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。例如,企事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个“数据仓库”,人们可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等
坐寸ο一个数据库可以具有多张表。这时,就数据库处理而言,数据库表之间的数据转移、数据库表之间的备份以及数据库表之间的比较等操作就显得尤为重要。目前,业界已有多种数据库表之间的数据转移和备份的方法。例如,在申请号20091011022.3、名称为“一种ERP系统中的数据库备份、恢复方法和装置”的专利申请中,公开了一种数据库备份方法,包括:获取待备份的数据库的基本信息;创建数据库服务器的服务端组件,获取数据库服务器的磁盘地址;采用用户配置的备份方式对待备份的数据库进行备份处理,生成数据库备份文件,并根据数据库的基本信息和备份处理过程中的备份信息生成对应的说明文件。为了验证在处理、转移和备份等数据库操作后数据之间的一致性,往往希望进行数据库表级数据之间的比较。可是,数据库表级数据之间的比较方法却鲜有文献论述。一般而言,若需要进行数据库级数据之间的比较,专业技术人员会编写数据库脚本以便查出相应的数据,然后进行人工比较。当数据量较大时,这种获取数据后进行人工比较的方法处理速度太慢且容易出错。并且,此种方法在很大程度上还依赖使用人员的专业水平。

发明内容
本申请的目的之一在于提供一种改进的数据库表级比较方法和系统。根据本申请的一个方面,提供了一种基于数据字典和可变规则的数据库表级比较方法,包括确定数据库表级比较关系;确定待比较的源表集和目标表集;利用映射关系重构引擎来解析所述表级比较关系;以及根据已解析的表级比较关系来对源表集和目标表集进行比较。在上述数据库表级比较方法中,还包括对比较结果进行规范化,从而生成和显示相应的比较报告。在上述数据库表级比较方法中,所述确定数据库表级比较关系包括录入或选择数据库表级比较关系。在上述数据库表级比较方法中,所述确定待比较的源表集和目标表集包括由用户指定待比较的源数据库和源表名,以及目标数据库和目标表名。 在上述数据库表级比较方法中,所述表级比较关系包括表映射关系和字段映射关系O在上述数据库表级比较方法中,所述利用映射关系重构弓I擎来解析所述表级比较关系包括:根据表映射关系,分别处理源表集和目标表集的数据关系,确定待比较的数据条数和主键对应信息;和根据字段映射关系,对源表集中的字段进行改变。在上述数据库表级比较方法中,源表集和目标表集之间的比较包括源表集的数据条数与目标表集的数据条数的比较、源表集中的记录与目标表集中的记录之间的比较以及对应记录中字段之间的比较。在上述数据库表级比较方法中,所述表映射关系为M:N,其中M和N为大于等于I的整数。在上述数据库表级比较方法中,所述字段映射关系包括平移、倒序、拼接、组合和计算。根据本申请的另一个方面,提供了一种基于数据字典和可变规则的数据库表级比较系统,包括:用于确定数据库表级比较关系的装置;用于确定待比较的源表集和目标表集的装置;用于利用映射关系重构引擎来解析所述表级比较关系的装置;以及用于根据已解析的表级比较关系来对源表集和目标表集进行比较的装置。与现有技术相比,本申请提出了 一种覆盖广泛的数据库表级比较方法。在一个实现中,使用人员录入待比较的数据库信息和表信息后,比较全程不需要人工干预,仅需要分析清晰的比较报告。此种方法操作简单快捷,极大地提高了工作效率,并且该方法在处理大数据量之间比较时优势更加明显,处理速度快,比较结果准确。


图1是根据本申请的一个实施例、基于数据字典和可变规则的数据库表级比较方法的流程 图2是根据本申请的一个实施例、数据库表级比较的流程图。
具体实施例方式下面介绍的是本发明的多个可能实施例中的一些,旨在提供对本发明的基本了解,并不旨在确认本发明的关键或决定性的要素或限定所要保护的范围。容易理解,根据本发明的技术方案,在不变更本发明的实质精神下,本领域的一般技术人员可以提出可相互替换的其它实现方式。因此,以下具体实施方式
以及附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限定或限制。数据库系统是一个复杂的系统,其中所包含的信息除了用户数据外,还有很多非用户数据信息。例如,模式和子模式的内容、文件间的联系、数据项的长度、类型、用户标识符、口令、索引等等。这些非用户数据是整个数据库系统的情报系统。如果没有它们或它们遭到了破坏,则整个系统将陷入瘫痪状态,即使数据库本身完好无损,也将无济于事。为了使数据库的设计、实现、运行、维护、扩充有一个共同遵循的标准和依据,并且也为了保证数据库的共享性、安全性、完整性、一致性、有效性、可恢复性以及可扩充性,人们在数据库中设置了数据字典(Data Dictionary),来集中保存这些信息。另外,一个数据库中可具有多张表,且表与表之间的对应规则可能是不相同的,这增加了数据库表级比较实现的困难。为了有效验证数据信息在处理、转移和备份等数据库操作后源表(集)和目标表(集)之间的数据一致性,本申请提供了一种基于数据字典和复杂多变规则的数据库表(集)之间的比较方法。图1示出了根据本申请的一个实施例、基于数据字典和可变规则的数据库表级比较方法的流程图。在步骤110中,录入或选择数据库表级比较关系。在一种实现中,通过文档(如Excel)或数据库表来存储常用的表级比较关系。这允许用户在使用时可从存储中直接选择。但若用户有特殊需求且存储中不再包含常用的表级比较关系,也可由用户自行录入表级关系。该关系会被系统记忆并增加到常用表级关系中。本领域技术人员可以理解,在步骤110中,只需确定数据库表级比较关系即可。除了录入或选择之外,本领域技术人员还可以设想出多种确定数据库表级比较关系的方法。在步骤120中,录入待比较的源表集和目标表集。在一个具体的实现中,可由用户指定比较的源数据库和源表名(一张或多张表),以及目标数据库和目标表名(一张或多张表)。本领域技术人员可以理解,在步骤120中,只需确定待比较的源表集和目标表集即可。除了录入之外,本领域技术人员还可以设想出多种确定待比较的源表集和目标表集的方法。接着,在步骤130中,利用映射关系重构引擎来解析表级比较关系。在这里,表级比较关系包括但不限于表映射关系和字段映射关系。表映射关系即指数据库表之间的映射关系。表映射关系可包括“I对I”、“I对多”、“多对I”、“多对多”,即分别表示I张源表映射到I张目标表、I张源表映射到多张目标表、多张源表映射到一张目标表,以及多张源表映射到多张目标表。字段映射关系即指表字段之间的映射关系。字段映射关系可包括“平移”、“倒序”、“截取”、“拼接”、“组合”以及“计算”等。“平移”表示源表的某个字段直接变为目标表的某个字段,“倒序”表示源表的某个字段中字符顺序颠倒后变为目标表的某个字段,“截取”表示源表的某个字段中的一部分变为目标表的某个字段,“拼接”表示源表的某2个及以上字段的连接变为目标表的某个字段、“组合”表示源表的某2个及以上字段中的一部分变为目标表的某个字段,“计算”表示源表的某个或某些字段经过一定的算术运算后变为目标表的某个或某些字段。这里,“计算”可包含求和、轧差、乘除等多种计算和这些计算的组合。在一个具体的实现中,利用映射关系重构引擎来解析表级比较关系包括:根据表映射关系,分别处理源表集和目标表集的数据关系,确定待比较的数据条数和主键对应信息等;以及根据字段映射关系,对源表集中的字段进行改变,以便验证源字段集是否与目标
字段集一致。然后,在步骤140,进行数据库表级比较(具体请参见下文中针对图2的描述)。并且,在步骤150中,生成并显示比较报告。可以理解,步骤150对于本申请数据库表级比较方法来说是可选的,而非必需的。还有必要指出,在图1中,尽管以先后顺序示出了步骤110和120。但是本领域技术人员应理解,无论是先确定数据库表级比较关系,还是先确定待比较的源表集和目标表集,都不会影响数据库表级比较的实现。因而,步骤Iio和步骤120的顺序可以互为颠倒。
参考图2,它示出了根据本申请的一个实施例、数据库表级比较的流程图。该表级比较主要包括三层比较,第一层为总体比较或上层比较,即解析映射关系后,源表(集)的数据条数和目标表(集)数据条数比较;第二层为记录是否在源表(集)或目标表(集)单边存在的比较;第三层为对应记录中字段根据字段映射关系的比较。当然,本领域技术人员可以理解,表级比较可包括一层以上的任意比较,而并不限于三层比较。可以理解,在表级比较包括三层比较时,比较报告也可以分三层来进行统计。例如,第一层为源表集与目标表集之间的数据量的比较结果。第二层为记录的单边存在结果,即只在源表或目标表存在的记录主键信息。第三层为记录中的字段的差异,其中报告记录的主键信息和差异字段信息。在步骤201中,利用映射关系重构引擎计算源表集、目标表集的数据条数。接着,在步骤203,将源表集和目标表集两者的条数进行比较。如果相同,则在步骤205中,将TBLl定义为源表集,而将TBL2定义为目标表集。如果源表集和目标表集的条数并不相同,则在步骤207,登记两者条数的对比信息,并在步骤209,将TBLl定义为源表集与目标表集中数据条数较少的那个表集,而将TBL2定义为另外一个表集。在这里,可以理解,TBLl和TBL2的定义方法可以采用其它方式。例如,当源表集和目标表集两者条数相同时,可以将TBLl定义为目标表集,而将TBL2定义为源表集。又例如,当源表集和目标表集两者条数不相同时,将TBLl定义为源表集与目标表集中数据条数较多的那个表集,而将TBL2定义为另外一个表集。在定义了 TBLl和TBL2之后,在步骤211,通过游标来获取TBLl的一条记录。接着,在步骤213,根据主键在TBL2中搜索对应的记录。主键,也称为主关键字,它是表中的一个或多个字段。它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主键用来在一个表中引用来自于另一个表中的特定记录。另外,可以理解,有关主键的信息已在对表级比较关系进行解析时获得。在步骤215中,判断是否在TBL2中搜索到对应记录。如果搜到,则在步骤217,开始字段比较。但如果没搜到,则如步骤219所示,登记该记录无对应记录信息。当确定进行字段比较之后,首先如步骤221所示,分别从对应记录中获取对应字段,并在步骤223,从已装载的字段映射关系中获取字段映射规则。在一个具体的实现中,字段映射关系可包括“平移”、“倒序”、“截取”、“拼接”、“组合”以及“计算”等。“平移”表示源表的某个字段直接变为目标表的某个字段,“倒序”表示源表的某个字段中字符顺序颠倒后变为目标表的某个字段,“截取”表示源表的某个字段中的一部分变为目标表的某个字段,“拼接”、“组合”表示源表的某2个及以上字段中的一部分变为目标表的某个字段,“计算”表示源表的某个或某些字段经过一定的算术运算后变为目标表的某个或某些字段。这里,“计算”可包含求和、轧差、乘除等多种计算和这些计算的组合。接着,在步骤225,利用映射关系重构引擎来比较字段。例如,映射关系重构引擎根据源字段和目标字段之间的映射关系,对源字段进行相应变化,然后验证源字段与目标字段是否一致。在步骤227中,判断源字段与目标字段是否匹配成功。如果未匹配成功,则在步骤231中,登记记录主键和字段差异。而如果匹配成功,则在步骤229中,判断字段比较是否结束。如果未结束,则重复步骤221、223、225以及227。而如果字段比较已经结束,则在步骤233中进一步判断记录比较是否已经结束。如果记录比较没有结束,则在步骤237,将游标下移,并且回到步骤211。而如果记录比较也已经结束,则对TBL2剩余记录主键进行登记,步骤235。至此,数据库表级比较结束。以上例子主要说明了本申请的基于数据字典和可变规则的数据库表级比较方法。尽管只对其中一些具体实施例进行了描述,但是本领域普通技术人员应当了解,本发明可以在不偏离其主旨与范围内以许多其他的形式实施。本申请所介绍的方法也可以硬件、软件或者软硬件结合的方式来实现。根据本申请的一个方面,提供了一种基于数据字典和可变规则的数据库表级比较系统,包括:用于确定数据库表级比较关系的装置;用于确定待比较的源表集和目标表集的装置;用于利用映射关系重构引擎来解析所述表级比较关系的装置;以及用于根据已解析的表级比较关系来对源表集和目标表集进行比较的装置。在一个优选的实施例中,该系统还包括用于对比较结果进行规范化、从而生成和显示相应的比较报告的装置。应理解,以上所展示的例子与实施方式是示意性的而非限制性的,在不脱离权利要求所定义的精神及范围的情况下,本申请可能涵盖各种的修改与替换。综上所述,本申请的基于数据字典和可变规则的数据库表级比较方法和系统能够准确验证源数据与目标数据前后的一致性,案例配置简单,使用人员专业技术水平要求不高,操作简单方便,运行稳定高效,产生的结果报告人性化、清晰明确。该方法和系统能在很大程度上提高使用人员在系统测试、UAT (User Acceptance Test,用户接受度测试)、生产运维测试的测试效率。
权利要求
1.一种基于数据字典和可变规则的数据库表级比较方法,包括: 确定数据库表级比较关系; 确定待比较的源表集和目标表集; 利用映射关系重构引擎来解析所述表级比较关系;以及 根据已解析的表级比较关系来对源表集和目标表集进行比较。
2.如权利要求1所述的数据库表级比较方法,还包括对比较结果进行规范化,从而生成和显示相应的比较报告。
3.如权利要求1所述的数据库表级比较方法,其中,所述确定数据库表级比较关系包括录入或选择数据库表级比较关系。
4.如权利要求1所述的数据库表级比较方法,其中,所述确定待比较的源表集和目标表集包括由用户指定待比较的源数据库和源表名,以及目标数据库和目标表名。
5.如权利要求1至4中的任一项所述的数据库表级比较方法,其中,所述表级比较关系包括表映射关系和字段映射关系。
6.如权利要求5所述的数据库表级比较方法,其中,所述利用映射关系重构引擎来解析所述表级比较关系包括: 根据表映射关系,分别处理源表集和目标表集的数据关系,确定待比较的数据条数和主键对应信息;和 根据字段映射关系,对源表集中的字段进行改变。
7.如权利要求1所述的数据库表级比较方法,其中,源表集和目标表集之间的比较包括源表集的数据条数与目标表集的数据条数的比较、源表集中的记录与目标表集中的记录之间的比较以及对应记录中字段之间的比较。
8.如权利要求5所述的数据库表级比较方法,其中,所述表映射关系为M:N,其中M和N为大于等于I的整数。
9.如权利要求5所述的数据库表级比较方法,其中,所述字段映射关系包括平移、倒序、拼接、组合和计算。
10.一种基于数据字典和可变规则的数据库表级比较系统,包括: 用于确定数据库表级比较关系的装置; 用于确定待比较的源表集和目标表集的装置; 用于利用映射关系重构弓I擎来解析所述表级比较关系的装置;以及 用于根据已解析的表级比较关系来对源表集和目标表集进行比较的装置。
11.如权利要求10所述的数据库表级比较系统,还包括用于对比较结果进行规范化、从而生成和显示相应的比较报告的装置。
12.如权利要求10或11所述的数据库表级比较系统,其中,所述表级比较关系包括表映射关系和字段映射关系。
全文摘要
本申请提供了一种基于数据字典和可变规则的数据库表级比较方法,包括确定数据库表级比较关系;确定待比较的源表集和目标表集;利用映射关系重构引擎来解析所述表级比较关系;以及根据已解析的表级比较关系来对源表集和目标表集进行比较。在一个具体的实现中,该比较方法还包括对比较结果进行规范化,从而生成和显示相应的比较报告。本申请还提供了一种基于数据字典和可变规则的数据库表级比较系统。
文档编号G06F17/30GK103176989SQ20111043207
公开日2013年6月26日 申请日期2011年12月21日 优先权日2011年12月21日
发明者马军, 吴金坛, 吕苏, 尹祥龙, 李岭 申请人:中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1