数据引用关系检测装置和数据引用关系检测方法制造方法及图纸

技术编号:8834369 阅读:153 留言:0更新日期:2013-06-22 20:34
本发明专利技术提供了一种数据引用关系检测装置,包括:设置单元,为数据表设置主键;主键引用单元,在引用数据时,控制引用数据的主键;关联存储单元,将引用表的名称、被引用表的名称、数据在引用表中的列的名称、以及被引用表中主键列的名称关联存储;查询单元,查询当前数据表的名称,查询引用目标数据的目标数据表的名称,所处的目标列的名称,和包含主键的列的名称;判断单元,判断目标列是否存在目标数据的主键;显示单元,若存在,显示提示信息、以及目标数据表的名称和目标列的名称。本发明专利技术还提出了一种数据引用关系检测方法。通过本发明专利技术的技术方案,能够在删除数据时,保障数据使用的一致性及完整性,并展现数据具体的引用关系。

【技术实现步骤摘要】
数据引用关系检测装置和数据引用关系检测方法
本专利技术涉及数据检测
,具体而言,涉及一种数据引用关系检测装置和一种数据引用关系检测方法。
技术介绍
当前的信息系统的功能日趋复杂,随着功能的扩展各种业务对象在不断增加,从而使得业务对象之间的关系也日趋复杂。目前大部分信息系统使用关系型数据库对数据进行管理。随着功能的增加,数据库中的表关系及数据的记录数量都在急剧增加。数据库的性能直接影响系统的运行效率。在上述情况下需要通过一定方法保证数据记录之间一致性及完整性。大多数系统中在删除数据时均存在以下两个问题,一是如何快速检查数据库中数据表的引用关系,以保证删除数据未被其它数据表引用,避免在删除后导致业务数据不完整而产生的错误;二是在数据被引用而无法删除的情况下,如何将引用该数据的具体记录定位出来并展现给最终用户。而且还需要在完成上述两种功能的情况下尽享减少用户等待的时间在以往数据库规模比较小下,数据表之间关系较为简单的情况下,可通过数据库外键关系保证数据的一致性及完整性,即指对引用字段建立外键约束。在删除数据时,通过数据库本身的机制保证被其它数据表引用的数据不会被删除。但此方案在数据量比较大关系复杂的数据库上并不可行。因为建立的外键数据量会直接影响数据库的DML语句的执行效率,外键新增越多,修改操作的数据库执行效率就会越慢。此外,数据库外键约束校验失败信息会按数据库不同而格式存在差异,无法直接提示给用户,不便于用户定位已引用待删除数据的数据库表及具体记录。而且对于软件系统的最终用户希望得到的是业务上描述信息,而不仅仅是简单的数据库表信息。并且数据外键无法实现对同一张表内部分记录检查时的过滤,当存在比如当历史数据或某些特定数据不想进行引用关系检查时则无法实现。因此,需要一种新的数据引用关系检测技术,能够在删除数据之前,检测数据的引用关系,保障数据使用的一致性及完整性,并展现数据具体的引用关系。
技术实现思路
本专利技术正是基于上述问题,提出了一种数据引用关系检测技术,能够在删除数据之前,检测数据的引用关系,保障数据使用的一致性及完整性,并展现数据具体的引用关系。有鉴于此,本专利技术提出了一种数据引用关系检测装置,包括:设置单元,用于在将数据表存储至数据库时,为所述数据表设置主键;主键引用单元,用于在所述数据表中的第二数据表引用所述数据表中的第一数据表的数据时,控制所述第二数据表引用所述第一数据表中所述数据的主键;关联存储单元,用于将所述第二数据表的名称、所述第一数据表的名称、所述数据在所述第二数据表中所处的列的名称、以及所述第一数据表中包含所述主键的列的名称进行关联存储;查询单元,用于在收到删除目标数据的指令时,查询所述目标数据所处的当前数据表的名称,根据所述当前数据表的名称,查询引用所述目标数据的至少一个数据表,并查询所述至少一个数据表中目标数据表的名称,所述目标数据在所述目标数据表中所处的目标列的名称,以及所述当前数据表中包含所述目标数据的主键的列的名称;判断单元,用于判断所述目标列是否存在所述目标数据的主键;显示单元,用于在所述判断单元的判定结果为存在的情况下,显示提示信息、以及所述目标数据表的名称和所述目标列的名称。在该技术方案中,将数据的引用关系性检查和引用数据展现分开,减少了数据库性能及时间消耗,提高系统的运行效率。通过确定目标数据表的名称和目标列的名称,使数据的引用关系得到完整的展现,便于系统定位问题,确认具体引用数据记录,以及后续对相关记录进行处理。并且通过具体数据库表注册实现,便于后续应用系统扩展时增加引用关系检查,而不需影响原有的引用关系检查。而且这种检测并不依赖于数据库本身提供的机制进行,可以在任何数据库上使用,降低系统本身对数据库的依赖。当确定目标数据被引用时,提示目标数据被引用,避免目标数据被删除,保障了目标数据使用的一致性及完整性。在上述技术方案中,优选地,所述判断单元还用于,在所述目标列不存在所述目标数据的主键的情况下,进一步判断所述至少一个数据表中是否只包含所述目标数据表,若是,则删除所述目标数据;所述查询单元还用于,在所述至少一个数据表中不只包含所述目标数据表的情况下,依次查询所述至少一个数据表中的其他数据表。在该技术方案中,目标数据可能被多个数据表所引用,但是在删除目标数据时,只要检测到目标数据被一个数据表所引用,那么就需要显示提示信息,避免目标数据被删除,因此,在检测到目标数据被目标数据表引用时,即可停止查询其他数据表,并发出提示信息,从而快速地确定了目标数据是否被引用,避免由于扫描所有数据表而消耗较长时间。并且,当目标数据被多个数据表引用时,可以在确定目标数据是否被引用之后,依次查询每账数据表,精确地确定目标数据被引用的信息。在上述技术方案中,优选地,还包括:恢复单元,用于在所述判断单元删除所述目标数据之前,记录所述目标数据的相关信息,当接收到恢复指令时,根据所述相关信息恢复所述目标数据。在该技术方案中,可以再删除目标数据时,记录历史信息,然后在需要恢复目标数据的情况下,可以根据历史信息恢复目标数据。在上述任一技术方案中,优选地,所述设置单元还用于,在所述第二数据表引用所述第一数据表中的数据时,为所述第二数据表与所述第一数据表设置引用关系权值;以及所述数据引用关系检测装置还包括:分析单元,用于分析所述至少一个数据表中每个数据表与所述目标数据的引用关系权值,将所述引用关系权值最大的数据表作为所述目标数据表。在该技术方案中,通过分析数据表之间的关系权值,可以调整查询数据表的顺序,优先查询被引用可能性最大的数据表,从而尽快确定目标数据是否被引用,减少数据查询的时间消耗。在上述任一技术方案中,优选地,所述设置单元还用于根据接收到的过滤设置指令,设置数据表过滤条件,以及所述查询单元用于在不符合所述过滤条件的数据表中查询所述至少一个数据表。在该技术方案中,可以设置过滤条件,减少查询的数据表的数量,避免一些不需要校验的表被查询,比如某一单据的子表数据是与主表数据一起被删除的,那么在检测单据是否被引用时,可不必检测子表。本专利技术还提出了一种数据引用关系检测方法,其特征在于,包括:步骤202,在将数据表存储至数据库时,为所述数据表设置主键,当所述数据表中的第二数据表引用所述数据表中的第一数据表的数据时,所述第二数据表引用所述第一数据表中所述数据的主键;步骤204,将所述第二数据表的名称、所述第一数据表的名称、所述数据在所述第二数据表中所处的列的名称,和所述第一数据表中包含所述主键的列的名称进行关联存储;步骤206,当接收到删除目标数据的指令时,查询所述目标数据所处的当前数据表的名称,根据所述当前数据表的名称,查询引用所述目标数据的至少一个数据表;步骤208,查询所述至少一个数据表中目标数据表的名称,所述目标数据在所述目标数据表中所处的目标列的名称,以及所述当前数据表中包含所述目标数据的主键的列的名称;步骤210,判断所述目标列是否存在所述目标数据的主键,若存在,则显示提示信息、以及所述目标数据表的名称和所述目标列的名称。在该技术方案中,将数据的引用关系性检查和引用数据展现分开,减少了数据库性能及时间消耗,提高系统的运行效率。通过确定目标数据表的名称和目标列的名称,使数据的引用关系得到完整本文档来自技高网
...
数据引用关系检测装置和数据引用关系检测方法

【技术保护点】
一种数据引用关系检测装置,其特征在于,包括:设置单元,用于在将数据表存储至数据库时,为所述数据表设置主键;主键引用单元,用于在所述数据表中的第二数据表引用所述数据表中的第一数据表的数据时,控制所述第二数据表引用所述第一数据表中所述数据的主键;关联存储单元,用于将所述第二数据表的名称、所述第一数据表的名称、所述数据在所述第二数据表中所处的列的名称、以及所述第一数据表中包含所述主键的列的名称进行关联存储;查询单元,用于在收到删除目标数据的指令时,查询所述目标数据所处的当前数据表的名称,根据所述当前数据表的名称,查询引用所述目标数据的至少一个数据表,并查询所述至少一个数据表中目标数据表的名称,所述目标数据在所述目标数据表中所处的目标列的名称,以及所述当前数据表中包含所述目标数据的主键的列的名称;判断单元,用于判断所述目标列是否存在所述目标数据的主键;显示单元,用于在所述判断单元的判定结果为存在的情况下,显示提示信息、以及所述目标数据表的名称和所述目标列的名称。

【技术特征摘要】
1.一种数据引用关系检测装置,其特征在于,包括:设置单元,用于在将数据表存储至数据库时,为所述数据表设置主键;主键引用单元,用于在所述数据表中的第二数据表引用所述数据表中的第一数据表的数据时,控制所述第二数据表引用所述第一数据表中所述数据的主键;关联存储单元,用于将所述第二数据表的名称、所述第一数据表的名称、所述数据在所述第二数据表中所处的列的名称、以及所述第一数据表中包含所述主键的列的名称进行关联存储;查询单元,用于在收到删除目标数据的指令时,查询所述目标数据所处的当前数据表的名称,根据所述当前数据表的名称,查询引用所述目标数据的至少一个数据表,并查询所述至少一个数据表中目标数据表的名称,引用当前数据表的数据在所述目标数据表中所处的目标列的名称,以及所述当前数据表中包含所述目标数据的主键的列的名称;判断单元,用于判断所述目标列是否存在所述目标数据的主键;显示单元,用于在所述判断单元的判定结果为存在的情况下,显示提示信息、以及所述目标数据表的名称和所述目标列的名称;所述设置单元还用于根据接收到的过滤设置指令,设置数据表过滤条件,以及所述查询单元用于在不符合所述过滤条件的数据表中查询所述至少一个数据表。2.根据权利要求1所述的数据引用关系检测装置,其特征在于,所述判断单元还用于,在所述目标列不存在所述目标数据的主键的情况下,进一步判断所述至少一个数据表中是否只包含所述目标数据表,若是,则删除所述目标数据;所述查询单元还用于,在所述至少一个数据表中不只包含所述目标数据表的情况下,依次查询所述至少一个数据表中的其他数据表。3.根据权利要求2所述的数据引用关系检测装置,其特征在于,还包括:恢复单元,用于在所述判断单元删除所述目标数据之前,记录所述目标数据的相关信息,当接收到恢复指令时,根据所述相关信息恢复所述目标数据。4.根据权利要求1至3中任一项所述的数据引用关系检测装置,其特征在于,所述设置单元还用于,在所述第二数据表引用所述第一数据表中的数据时,为所述第二数据表与所述第一数据表设置引用关系权值;以及所述数据引用关系检测装置还包括:分析单元,用于分析所述至少一个数据...

【专利技术属性】
技术研发人员:姜军
申请(专利权)人:用友软件股份有限公司
类型:发明
国别省市:

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

1