CN107622066B - 用于关系型数据库的数据对比方法以及装置 - Google Patents

用于关系型数据库的数据对比方法以及装置 Download PDF

Info

Publication number
CN107622066B
CN107622066B CN201610555503.4A CN201610555503A CN107622066B CN 107622066 B CN107622066 B CN 107622066B CN 201610555503 A CN201610555503 A CN 201610555503A CN 107622066 B CN107622066 B CN 107622066B
Authority
CN
China
Prior art keywords
data table
total field
data
ordered
outputting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610555503.4A
Other languages
English (en)
Other versions
CN107622066A (zh
Inventor
颜博
葛胜利
王建辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610555503.4A priority Critical patent/CN107622066B/zh
Publication of CN107622066A publication Critical patent/CN107622066A/zh
Application granted granted Critical
Publication of CN107622066B publication Critical patent/CN107622066B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种快速简便的、适用性好、准确率高的用于关系型数据库的数据对比方法以及装置。本发明的方法包括:判断第一数据表对应的第一记录数是否等于第二数据表对应的第二记录数,其中第一数据表和第二数据表的表结构相同;若判断结果为是,则对第一数据表和第二数据表分别进行多列字段合并操作,得到第一总字段和第二总字段;对第一总字段和第二总字段分别进行相同的排序编号操作,得到第一有序编号总字段和第二有序编号总字段;对第一有序编号总字段和第二有序编号总字段按编号顺序进行对比,若存在内容不同则输出第一类提示信息,若所有内容相同则输出第二类提示信息。

Description

用于关系型数据库的数据对比方法以及装置
技术领域
本发明涉及计算机及其软件技术领域,特别地涉及一种用于关系型数据库的数据对比方法以及装置。
背景技术
关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。其中关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL、浪潮K-DB等。在日常的关系型数据库开发工作中,很多时场景需要进行数据对比,例如数据同步,数据迁移等等。数据对比的主要目的是验证同样表结构的两份数据表是否完全一致,其对比结果的准确性尤为重要,关系到数据开发的成败。
传统的关系型数据库对比方法主要对比两份数据各组成是否一致,例如:提供数据表A和数据表B,要对比它们是否完全一致,会逐个对比它们每个字段是否一致。
为了提高对比效率,现有的数据对比具体会使用到一些数据计算函数,将需要对比数据进行汇总等方法计算。假设表数据A和数据表B包含一些数据型字段,那么可以通过sum(求和)或者avg(求平均值)等函数对字段进行逐个计算。如果字段的类型是字符型的字段则可以使用其他函数进行计算。如果函数的计算结果一致,则认为两个表的数据一致。但是现有的数据对比方法存在如下缺点:
(1)适用性差。如果字段繁多,需要对每个字段单独定制对比的方法,适用范围也不广,同时增加了数据对比的复杂度。
(2)准确性不高:部分情况下,虽然函数的计算结果相同,但是元素内容可能不同,会导致结果有偏差。例如:表A和表B的某一个字段内容如下面表1所示:
表1数据表A与数据表B
A.字段1 B.字段1
1 1
2 1
3 4
两个数据表通过sum得到的结果是相同的(均是6),但是很显然两个数据表中的两个字段是不一致的。
发明内容
有鉴于此,本发明提供一种快速简便的用于关系型数据库的数据对比方法以及装置。
为实现上述目的,根据本发明的一个方面,提供了一种用于关系型数据库的数据对比方法,包括:判断第一数据表对应的第一记录数是否等于所述第二数据表对应的第二记录数,其中所述第一数据表和第二数据表的表结构相同;若判断结果为是,则对所述第一数据表和所述第二数据表分别进行多列字段合并操作,得到第一总字段和第二总字段;对所述第一总字段和所述第二总字段分别进行相同的排序编号操作,得到第一有序编号总字段和第二有序编号总字段;对所述第一有序编号总字段和所述第二有序编号总字段按编号顺序进行对比,若存在内容不同则输出第一类提示信息,若所有内容相同则输出第二类提示信息。
可选地,还包括:若所述判断结果为否,则输出第三类提示信息。
可选地,采用concat函数实现所述多列字段合并操作。
可选地,采用row numble函数实现所述排序编号操作。
根据本发明的另一方面,提供了一种用于关系型数据库的数据对比装置,包括:判断模块,用于判断第一数据表对应的第一记录数是否等于所述第二数据表对应的第二记录数,其中所述第一数据表和第二数据表的表结构相同;合并模块,用于在所述判断模块的判断结果为是的情况下,对所述第一数据表和所述第二数据表分别进行多列字段合并操作,得到第一总字段和第二总字段;编号排序模块,用于对所述第一总字段和所述第二总字段分别进行相同的排序编号操作,得到第一有序编号总字段和第二有序编号总字段;对比模块,用于对所述第一有序编号总字段和所述第二有序编号总字段按编号顺序进行对比,若存在内容不同则输出第一类提示信息,若所有内容相同则输出第二类提示信息。
可选地,还包括:快速提示模块,用于在所述判断模块的判断结果为否的情况下输出第三类提示信息。
可选地,采用concat函数实现所述多列字段合并操作。
可选地,采用row numble函数实现所述排序编号操作。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种用于关系型数据库的数据对比方法。
根据本发明的技术方案,首先对两份数据表进行记录数对比,也就是先对比两份数据表长度是否一致,这样能够快速地初步地判断出数据长度不一致的两个数据表是不相同的数据表。若两个数据表记录数一致,则随后再进行具体的数据一致性对比。本发明的技术方案能够提升对比计算效率。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施方式的用于关系型数据库的数据对比方法的主要步骤的示意图;
图2是根据本发明实施方式的用于关系型数据库的数据对比装置的主要模块的示意图。
具体实施方式
以下结合附图对本发明的示范性实施方式做出说明,其中包括本发明实施方式的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施方式做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施方式的用于关系型数据库的数据对比方法的主要步骤的示意图。如图1所示,本发明实施方式的数据对比方法可以主要包括如下的步骤A至步骤D。
步骤A:判断第一数据表对应的第一记录数是否等于第二数据表对应的第二记录数,其中第一数据表和第二数据表的表结构相同。换言之,对表结构相同的两份数据表进行记录数对比,首先对比两份数据表的长度是否一致。若步骤A的判断结果为否,这意味着两份数据表长度不一致,那么必然地可以得出结论:两份数据表不同。若步骤A的判断结果为是,则继续执行后续步骤,以实现对第一数据表和第二数据表进行数据一致性对比然后输出对比结果。换言之,在两个数据表的记录数一致的情况下,再进行具体的数据一致性对比。
步骤B:若判断结果为是,则对第一数据表和第二数据表分别进行多列字段合并操作,得到第一总字段和第二总字段。可选地,可以采用concat函数实现多列字段合并操作。concat是关系型数据库中的常见函数之一,用于将不同栏位获得的数据表字段连在一起。部分数据库concat函数要求合并字段为字符型,此时在合并之前需要将字段类型进行转换,调整为字符型。
步骤C:对第一总字段和第二总字段分别进行相同的排序编号操作,得到第一有序编号总字段和第二有序编号总字段。需要说明的是“进行相同的排序编号操作”是指:均进行升序排序编号操作或者均进行降序排序编号操作。可选地,采用row numble函数实现排序编号操作。row numble是关系型数据库中的常见函数之一,用于向多个字段提供唯一的排序值,具体排序使用Asc(升序)或Desc(降序)方法均可。
步骤D:对第一有序编号总字段和第二有序编号总字段按编号顺序进行对比,若存在内容不同则输出第一类提示信息,若所有内容相同则输出第二类提示信息。其中,第一类提示信息用于告知用户“第一数据表和第二数据表不同”的判断结果,第二类提示信息用于告知用户“第一数据表和第二数据表相同”的判断结果。需要说明的是,第一类提示信息和第二类提示信息的具体形式可以灵活设计。可选地,第一类提示信息和第二类提示信息还可以向用户提示相关判断理由。
可选地,在步骤A之后还包括如下步骤:若判断结果为否,则输出第三类提示信息。其中第三类提示信息用于告知用户“第一数据表和第二数据表不同”的判断结果。需要说明的是,第三类提示信息的具体形式可以灵活设计。可选地,第三类提供信息还可以向用户提示“第一数据表和第二数据表的记录数不一致”的判断理由。
本发明实施方式的用于关系型数据库的数据对比方法首先对两份数据表进行记录数对比,也就是先对比两份数据表长度是否一致,这样能够快速地初步地判断出数据长度不一致的两个数据表是不相同的数据表,则直接退出流程,无需再进行下一步的一致性对比。若两个数据表记录数一致,则随后再进行具体的数据一致性对比。本发明实施方式的用于关系型数据库的数据对比方法能够提升对比计算效率。
另外,本发明实施方式的用于关系型数据库的数据对比方法中,在具体的数据一致性对比阶段,采用了字段合并操作和编号排序操作。由于这两个操作十分基础,适用于各种字段类型的数据,通用性好,准确性高,并且能够进一步提升对比计算效率。
图2是根据本发明实施方式的用于关系型数据库的数据对比装置的主要模块的示意图。如图2所示,该用于关系型数据库的数据对比装置20包括判断模块21、合并模块22、编号排序模块23和对比模块24。判断模块21用于判断第一数据表对应的第一记录数是否等于第二数据表对应的第二记录数,其中第一数据表和第二数据表的表结构相同。合并模块22用于在判断模块21的判断结果为是的情况下,对第一数据表和第二数据表分别进行多列字段合并操作,得到第一总字段和第二总字段。可选地,合并模块22中采用concat函数实现多列字段合并操作。编号排序模块23用于对第一总字段和第二总字段分别进行相同的排序编号操作,得到第一有序编号总字段和第二有序编号总字段。可选地,编号排序模块23采用row numble函数实现排序编号操作。对比模块24用于对第一有序编号总字段和第二有序编号总字段按编号顺序进行对比,若存在内容不同则输出第一类提示信息,若所有内容相同则输出第二类提示信息。
本发明实施方式的用于关系型数据库的数据对比装置,还可以包括:快速提示模块,用于在判断模块的判断结果为否的情况下输出第三类提示信息。其中第三类提示信息用于告知用户“第一数据表和第二数据表不同”的判断结果。需要说明的是,第三类提示信息的具体形式可以灵活设计。可选地,第三类提供信息还可以向用户提示“第一数据表和第二数据表的记录数不一致”的判断理由。
本发明实施方式的用于关系型数据库的数据对比装置首先对两份数据表进行记录数对比,也就是先对比两份数据表长度是否一致,这样能够快速地初步地判断出数据长度不一致的两个数据表是不相同的数据表。若两个数据表记录数一致,则随后再进行具体的数据一致性对比。该实施方式的用于关系型数据库的数据对比装置能够提升对比计算效率。
本发明实施方式的用于关系型数据库的数据对比装置中,在第二处理模块中采用了字段合并操作和编号排序操作。由于这两个操作十分基础,适用于各种字段类型的数据,通用性好,准确性高,并且能够进一步提升对比计算效率。
为使本领域技术人员更好地理解本发明的技术方案,下面结合具体实施例做详细介绍。
现有如表2所示的第一数据表以及如表3所示的第二数据表,这两个数据表的表头内容相同,也就是说两个数据表的表结构相同。
表2第一数据表
Figure GDA0002435366330000071
表3第二数据表
Figure GDA0002435366330000081
首先计算出第一数据表对应的第一记录数为2(表示有两条数据记录),第二数据表对应的第二记录数也为2。由于第一记录数等于第二记录数,因此需要进一步仔细对比。
然后分别对第一数据表和第二数据表进行多列字段合并操作,得到如下结果:
第一总字段为“上衣100元50件,裤子80元40件”;
第二总字段为“裤子80元40件,上衣100元50件”。
接着调用row numble函数中的Asc模式分别对第一总字段和第二总字段进行升序编号操作,由于“k”(“裤”字符拼音首字母)的排序比“s”(“上”字符拼音首字母)的排序更靠前,因此操作后可以得到:
第一有序编号总字段为“①裤子80元40件,②上衣100元50件”;
第二有序编号总字段为“①裤子80元40件,②上衣100元50件”。
将上面的第一有序编号总字段和第二有序编号总字段进行逐字段比对。例如,具体实现语句如下:
Figure GDA0002435366330000082
由于上述根据以上结构化查询语言的执行结果为0,这说明两个数据表的内容完全一致。
最后,输出“第一数据表和第二数据表相同的”的提示信息。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (9)

1.一种用于关系型数据库的数据对比方法,其特征在于,包括:
判断第一数据表对应的第一记录数是否等于第二数据表对应的第二记录数,其中所述第一数据表和第二数据表的表结构相同;
若判断结果为是,则对所述第一数据表和所述第二数据表分别将不同栏位获得的数据表字段连在一起,得到第一总字段和第二总字段;
对所述第一总字段和所述第二总字段分别进行相同的排序编号操作,得到第一有序编号总字段和第二有序编号总字段;
对所述第一有序编号总字段和所述第二有序编号总字段按编号顺序进行对比,若存在内容不同则输出第一类提示信息,若所有内容相同则输出第二类提示信息。
2.根据权利要求1所述的用于关系型数据库的数据对比方法,其特征在于,还包括:若所述判断结果为否,则输出第三类提示信息。
3.根据权利要求1所述的用于关系型数据库的数据对比方法,其特征在于,采用concat函数实现将不同栏位获得的数据表字段连在一起。
4.根据权利要求1所述的用于关系型数据库的数据对比方法,其特征在于,采用rownumble函数实现所述排序编号操作。
5.一种用于关系型数据库的数据对比装置,其特征在于,包括:
判断模块,用于判断第一数据表对应的第一记录数是否等于第二数据表对应的第二记录数,其中所述第一数据表和第二数据表的表结构相同;
合并模块,用于在所述判断模块的判断结果为是的情况下,对所述第一数据表和所述第二数据表分别将不同栏位获得的数据表字段连在一起,得到第一总字段和第二总字段;
编号排序模块,用于对所述第一总字段和所述第二总字段分别进行相同的排序编号操作,得到第一有序编号总字段和第二有序编号总字段;
对比模块,用于对所述第一有序编号总字段和所述第二有序编号总字段按编号顺序进行对比,若存在内容不同则输出第一类提示信息,若所有内容相同则输出第二类提示信息。
6.根据权利要求5所述的用于关系型数据库的数据对比装置,其特征在于,还包括:快速提示模块,用于在所述判断模块的判断结果为否的情况下输出第三类提示信息。
7.根据权利要求5所述的用于关系型数据库的数据对比装置,其特征在于,采用concat函数实现将不同栏位获得的数据表字段连在一起。
8.根据权利要求5所述的用于关系型数据库的数据对比装置,其特征在于,采用rownumble函数实现所述排序编号操作。
9.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN201610555503.4A 2016-07-14 2016-07-14 用于关系型数据库的数据对比方法以及装置 Active CN107622066B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610555503.4A CN107622066B (zh) 2016-07-14 2016-07-14 用于关系型数据库的数据对比方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610555503.4A CN107622066B (zh) 2016-07-14 2016-07-14 用于关系型数据库的数据对比方法以及装置

Publications (2)

Publication Number Publication Date
CN107622066A CN107622066A (zh) 2018-01-23
CN107622066B true CN107622066B (zh) 2020-06-30

Family

ID=61087434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610555503.4A Active CN107622066B (zh) 2016-07-14 2016-07-14 用于关系型数据库的数据对比方法以及装置

Country Status (1)

Country Link
CN (1) CN107622066B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927236A (zh) * 2013-01-11 2014-07-16 深圳市腾讯计算机系统有限公司 在线校验方法和装置
CN104714956A (zh) * 2013-12-13 2015-06-17 国家电网公司 一种异构记录集对比方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471119B2 (en) * 2014-05-13 2016-10-18 International Business Machines Corporation Detection of deleted records in a secure record management environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927236A (zh) * 2013-01-11 2014-07-16 深圳市腾讯计算机系统有限公司 在线校验方法和装置
CN104714956A (zh) * 2013-12-13 2015-06-17 国家电网公司 一种异构记录集对比方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PL/SQL 怎么判断两个结果集是否相等;terryhuang;《http://www.blog.csdn.net/terryhuang/article/details/8621021.html》;20130228;第1-3页 *
比较两个集合是否相等;没账号了;《http://www.blog.csdn.net/daizhonghai1314/article/details/84265505.html》;20120727;第1页 *

Also Published As

Publication number Publication date
CN107622066A (zh) 2018-01-23

Similar Documents

Publication Publication Date Title
CN106294762B (zh) 一种基于学习的实体识别方法
CN104239301B (zh) 一种数据比对方法和装置
WO2019228015A1 (zh) 基于移动端NoSQL数据库的索引创建方法及装置
CN109376196B (zh) 一种redo日志批量同步方法及装置
CN108628975B (zh) 一种数据库sql语句优化方法及装置
US9454561B2 (en) Method and a consistency checker for finding data inconsistencies in a data repository
CN112445875B (zh) 数据关联及检验方法、装置、电子设备及存储介质
US20150039623A1 (en) System and method for integrating data
CN104756113A (zh) 用于检测数据源中的偏差的方法、设备和计算机程序
US11132363B2 (en) Distributed computing framework and distributed computing method
CN102411600A (zh) 一种基于蕴涵规则的数据质量自动检测方法
US11288266B2 (en) Candidate projection enumeration based query response generation
CN108255852B (zh) Sql执行方法及装置
US20120109981A1 (en) Generating progressive query results
CN110222129B (zh) 一种基于关系型数据库的信用评价算法
CN107622066B (zh) 用于关系型数据库的数据对比方法以及装置
CN107735781B (zh) 存储查询结果的方法和装置、计算设备
US20160275146A1 (en) Use a parallel hardware search device to implement big databases efficiently
CN110019341B (zh) 一种数据查询方法及装置
US20190266142A1 (en) Data integration method, data integration device, data processing system, and computer program
CN106775962B (zh) 一种规则执行方法及装置
CN115934760A (zh) 数据库查询语句的优化方法、存储介质与计算机设备
CN107273293B (zh) 大数据系统性能测试方法、装置及电子设备
CN115422180A (zh) 数据校验方法及系统
US9830355B2 (en) Computer-implemented method of performing a search using signatures

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant