一种关系型数据库数据对比方法及系统与流程

文档序号:20700765发布日期:2020-05-12 15:39阅读:来源:国知局

技术特征:

1.一种关系型数据库数据对比方法,其特征在于,包括以下步骤:

分别从源库和目标库中获取数据表名并进行对比,得到表名对比结果;

对于表名对比结果为相同的每一对数据表,进行全表对比,得到全表对比结果;

对于全表对比结果为相同的每一对数据表,进行逐行对比,得到逐行对比结果;

其中,所述表名对比结果和逐行对比结果中,对于对比结果为不同的记录,均采用操作名称来标识;所述操作名称为更新、操作或删除。

2.如权利要求1所述的一种关系型数据库数据对比方法,其特征在于,数据表名对比方法包括:

创建map,将源库表名列表写入key字段,将value字段作为表名对比结果字段,value字段的值初始化为插入;

对于目标库中的每个表名,查找map中是否存在该表名,若存在,表名对比结果修改为相同;若不存在,不作处理;

遍历map,得到表名对比结果列表。

3.如权利要求1所述的一种关系型数据库数据对比方法,其特征在于,全表对比方法包括:对于表名对比结果为相同的每一对数据表,依次根据表名、数据表行数和全表md5将两个数据表进行对比。

4.如权利要求3所述的一种关系型数据库数据对比方法,其特征在于,全表对比方法包括:

对于表名对比结果为相同的每一对数据表,均执行以下操作:

从源库和目标库获取两个数据表的字段信息,所述字段信息包括字段名和字段的数据类型;

根据字段名的哈希值判断所述两个数据表中字段名是否完全相等,

若相等,判断字段的数据类型中是否存在md5值不支持的数据类型,

若不存在,从源库和目标库获取所述两个数据表的行数,判断行数是否相等,

若行数均不为0且相等,从源库和目标库获取所述两个数据表的全表md5,如果全表md5值相等,所述两个数据表的全表对比结果为相同,否则,为不同。

5.如权利要求1所述的一种关系型数据库数据对比方法,其特征在于,逐行对比方法包括:

对于全表对比结果为相同的每一对数据表,判断两个数据表是否存在主键,若存在,依次按照主键值md5和整行数据值md5对两个数据表进行对比;若不存在,按照整行数据值md5对两个数据表进行对比。

6.如权利要求5所述的一种关系型数据库数据对比方法,其特征在于,

若两个数据表存在主键,分别获取两个数据表中每一行对应的唯一标识、主键值md5和整行数据值md5,并分别写入两个行数据列表;

遍历源库行数据列表,将主键值md5列写入map中的key字段,将value字段作为行对比结果字段;

遍历目标库行数据列表,对于目每个主键值md5,判断map中是否存在该主键值md5,如果不存在,行对比结果记为删除;

如果存在,对比整行数据md5值,若相同,从map中移除,否则,行对比结果记为更新;

遍历源库行数据列表,对于每个主键值md5,判断map中是否存在该主键值md5,如果不存在,将该主键值md5写入map,相应的行对比结果记为插入;

如果存在,对比整行数据md5值,若相同,从map中移除;否则行对比结果为更新。

7.如权利要求5所述的一种关系型数据库数据对比方法,其特征在于,

若两个数据表没有主键,分别获取两个数据表中每一行对应的唯一标识和整行数据值md5,并分别写入两个行数据列表;

创建map,key字段初始化为空,将value字段作为行对比结果字段;

遍历源库行数据列表,对于每个整行数据值md5,判断map中是否存在该整行数据值md5,如果存在,该整行数据值md5的出现次数加1;如果不存在,将该整行数据值md5写入map,该整行数据值md5的出现次数加1,并将相应的行对比结果赋值为插入;

遍历目标库行数据列表,对于每个整行数据值md5,判断map中是否存在该整行数据值md5,如果存在,该整行数据值md5的出现次数减1;如果不存在,将该整行数据值md5写入map,该整行数据值md5的出现次数减1,并将相应的行对比结果赋值为删除。

8.如权利要求5所述的一种关系型数据库数据对比方法,其特征在于,所述方法还包括:将表名对比结果、全表对比结果和逐行对比结果进行可视化输出。

9.一种关系型数据库数据对比系统,其特征在于,包括:

待对比数据库选择模块,接收指定的待比较源库和目标库数据库;

表名对比模块,从源库和目标库中获取数据表名并进行对比,得到表名对比结果;

全表对比模块,接收表名对比结果,对于表名对比结果为相同的每一对数据表,进行全表对比,得到全表对比结果;

逐行对比模块,接收全表对比结果,对于全表对比结果为相同的每一对数据表,进行逐行对比,得到逐行对比结果;

其中,所述表名对比结果和逐行对比结果中,对于对比结果为不同的记录,均采用操作名称来标识;所述操作名称为更新、操作或删除。

10.如权利要求9所述的一种关系型数据库数据对比系统,其特征在于,还包括对比结果展示模块,用于对表名、全表或逐行对比结果进行展示。


技术总结
本发明公开了一种关系型数据库数据对比方法及系统,所述方法包括以下步骤:分别从源库和目标库中获取数据表名并进行对比,得到表名对比结果;对于表名对比结果为相同的每一对数据表,进行全表对比,得到全表对比结果;对于全表对比结果为相同的每一对数据表,进行逐行对比,得到逐行对比结果;其中,所述表名对比结果和逐行对比结果中,对于对比结果为不同的记录,均采用操作名称来标识;所述操作名称为更新、操作或删除。本发明依次针对源库和目标库中的数据表名、全表和行进行对比,对比更为准确;且采用操作名称来标识对比结果为“不同”的表名或行,能够为用户提供对于目标库的下一步操作指示。

技术研发人员:王大鹏;冯路;卢健;范翊;张元超
受保护的技术使用者:瀚高基础软件股份有限公司
技术研发日:2019.12.27
技术公布日:2020.05.12
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1