一种数据库错误数据修复方法技术

技术编号:25223732 阅读:23 留言:0更新日期:2020-08-11 23:13
本发明专利技术公开了一种数据库错误数据修复方法,首先通过数据库访问模块获取目标数据库中的数据表,根据数据表中现有数据建立数据库表不同属性列之间的关系模式;然后利用建立好的关系模式通过正确属性列中的数据从领域知识库查询以获取正确的数据;最后,通过数据库访问模块将正确数据写回数据库中。本发明专利技术通过建立显式和隐式的关系模式,通过查询知识库以获取正确的数据,可以在修复的时候结合整个数据库中不同表的关联数据在知识库中进行数据的查找,因此可以有效提高数据库中无显式实际意义的外键列的错误数据修复效率,从而提高整个数据库错误数据的修复效率。

【技术实现步骤摘要】
一种数据库错误数据修复方法
本专利技术涉及数据清洗
,尤其涉及一种数据库错误数据修复方法。
技术介绍
错误数据修复是一种提高信息系统中数据质量的技术。在现有信息系统数据库中,存在有部分由于输入错误、对相同实体的不同描述、数据记录英文缩写不标准等错误数据。这些数据散落在信息系统中,将对上层业务的高效支撑产生影响。知识库是一种用于知识管理的特殊数据库,以便于有关领域知识的采集、整理以及提取。知识库中的知识源于领域专家,它是特定领域知识的集合,包括基本事实、规则和其它有关信息。利用知识库中丰富的领域知识信息,可以对数据库中的错误数据进行修复。目前基于知识库的错误数据修复技术主要针对数据库单表建立知识库映射,以单个数据表为单位修复错误数据;而针对于整个数据库,如何解决不同数据表外键列的相关依赖对错误数据修复的影响,同时利用知识库的知识检索能力修复数据,目前尚未提出有效的解决方法。上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
本专利技术的主要目的在于提供一种数据库错误数据修复方法,旨在解决现有技术中不同数据表外键列的相关依赖对错误数据修复的影响的技术问题。为实现上述目的,本专利技术的第一方面,提供一种数据库错误数据修复方法,所述方法包括如下步骤:访问数据库并读取数据库中的数据表;根据数据表中的现有数据访问并查找知识库中的领域知识;建立数据库表不同属性列之间的关系模式;利用建立好的关系模式从领域知识库中获取正确数据;将正确数据写入数据库。进一步的,所述建立数据库表不同属性列之间的关系模式包括显式关系模式的建立:取数据表中任意列C与其它任意表中任意列C’在知识库中匹配关联关系,根据关联关系建立关系模式,所述关系模式中的顶点为数据库的属性列,所述关系模式中的边是知识库中对数据库属性列对应实体的关系。进一步的,所述建立数据库表不同属性列之间的关系模式还包括隐式关系模式的建立:在现有关系模式中,选取数据表中所有表属性列节点对应的度最大的节点A与其余数据表中度最大的节点B,在知识库中匹配节点A与节点B存在的关联关系,取节点B所在表中列值数量最高的列节点F,在节点A与节点B存在关联关系,且列节点F的值等于C的值时建立编码关系。进一步的,所述隐式关系模式的建立过程中,若在知识库中节点A与节点B不存在关联关系,则将数据表中度次大的节点作为节点A,并重新判断节点A与节点B的关联关系。进一步的,所述隐式关系模式的建立过程中,若节点A与节点B的存在关联关系,但列节点F的值与节点C的值不相等时,将列值不重复数量次高的节点作为节点F,并重新判断节点F与节点C的值是否相等。进一步的,所述利用建立好的关系模式从领域知识库中获取正确数据为:计算每个表所有节点的度数和,找到度数最小的表,在关系模式中匹配错误数据D对应的边,若错误数据D对应的边是未编码的关系,在所有相关列的基础上,通过现有数据和关联关系从知识库中查询正确数据。进一步的,所述利用建立好的关系模式从领域知识库中获取正确数据的过程中,若错误数据D对应的边是已编码的关系,则对关系进行解码,对错误数据所在C列相同元组的A列的值从知识库中计算对应的B列值,将B列值中频次最多的数据作为B列数据v,在关系模式中以v获取对应的F值作为正确数据。进一步的,所述方法还包括在将正确数据写入数据库后判断错误数据清洗是否完成的步骤,若未完成则将下一个错误数据D在关系模式中继续进行对应边的匹配;所述方法还包括在错误数据D在关系模式中对应边匹配失败后进行下一错误数据D的对应边的匹配。本专利技术的第二方面,提供一种数据库错误数据修复系统,所述系统包括数据库访问模块、知识库访问模块和修复计算模块;其中:进一步的,所述修复计算模块包括关系模式发现模块、数据修复模块,通过关系模式发现模块建立数据库表不同属性列之间的关系模式并获取正确数据,经由数据修复模块将正确数据对数据库进行回写,用于修复数据库中数据的流程控制及计算;进一步的,所述知识库访问模块用于连接修复计算模块与目标数据库,用于获取领域知识,为修复计算模块提供知识库查询的接口;进一步的,所述数据库访问模块用于连接修复计算模块与目标数据库,用于访问数据库数据,为数据库提供数据的读写操作的接口。进一步的,所述关系模式发现模块包括显式关系发现模块和隐式关系发现模块,用于获取数据库中数据表不同属性列间存在的关系,并将所述关系构建为关系模式图,供数据修复模块使用。进一步的,所述数据修复模块包括正确数据获取模块和数据写回模块,通过读取数据表,根据建立的数据库表不同属性列之间的关系模式图找出和错误数据相关联的数据,通过对知识库的查询使用现有数据修复错误数据。进一步的,所述数据修复模块还包括存储器,所述存储器用于存储关系模式发现模块构建的关系模式图,并将该关系模式图送于数据修复模块。本专利技术的第三方面,提供一种实现数据库错误数据修复的终端设备,所述终端设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的数据库错误数据修复方法。本专利技术的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,该指令被处理器执行时实现上述的数据库错误数据修复方法。本专利技术中,通过建立显式和隐式的关系模式,通过查询知识库以获取正确的数据。由于显式关系模式代表数据库实体及其属性之间的联系,隐式关系模式代表数据库外键关系,可以在修复的时候结合整个数据库中不同表的关联数据在知识库中进行数据的查找,因此可以有效提高数据库中无显式实际意义的外键列的错误数据修复效率,从而提高整个数据库错误数据的修复效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。图1为本专利技术提出的一种数据库错误数据修复系统的结构原理示意图;图2为本专利技术提出的一种数据库错误数据修复方法的整体流程结构示意图;图3为本专利技术提出的一种数据库错误数据修复方法的关系发现流程结构示意图;图4为本专利技术提出的一种数据库错误数据修复方法的编码方式示意图;图5为本专利技术提出的一种数据库错误数据修复方法的数据修复流程结构示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有本文档来自技高网...

【技术保护点】
1.一种数据库错误数据修复方法,其特征在于,所述方法包括如下步骤:/n访问数据库并读取数据库中的数据表;/n根据数据表中的现有数据访问并查找知识库中的领域知识;/n建立数据库表不同属性列之间的关系模式;/n利用建立好的关系模式从领域知识库中获取正确数据;/n将正确数据写入数据库。/n

【技术特征摘要】
1.一种数据库错误数据修复方法,其特征在于,所述方法包括如下步骤:
访问数据库并读取数据库中的数据表;
根据数据表中的现有数据访问并查找知识库中的领域知识;
建立数据库表不同属性列之间的关系模式;
利用建立好的关系模式从领域知识库中获取正确数据;
将正确数据写入数据库。


2.如权利要求1所述的一种数据库错误数据修复方法,其特征在于,所述建立数据库表不同属性列之间的关系模式包括显式关系模式的建立:取数据表中任意列C与其它任意表中任意列C’在知识库中匹配关联关系,根据关联关系建立关系模式,所述关系模式中的顶点为数据库的属性列,所述关系模式中的边是知识库中对数据库属性列对应实体的关系。


3.如权利要求2所述的一种数据库错误数据修复方法,其特征在于,所述建立数据库表不同属性列之间的关系模式还包括隐式关系模式的建立:在现有关系模式中,选取数据表中所有表属性列节点对应的度最大的节点A与其余数据表中度最大的节点B,在知识库中匹配节点A与节点B存在的关联关系,取节点B所在表中列值数量最高的列节点F,在节点A与节点B存在关联关系,且列节点F的值等于C的值时建立编码关系。


4.如权利要求3所述的一种数据库错误数据修复方法,其特征在于,所述隐式关系模式的建立过程中,若在知识库中节点A与节点B不存在关联关系,则将数据表中度次大的节点作为节点A,并重新判断节点A与节...

【专利技术属性】
技术研发人员:侯孟书杨键查尔斯·罗兰·哈鲁纳罗坤明董浩周世杰
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

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

1