CN107633099A - 数据库一致性错误的重要度判定方法 - Google Patents

数据库一致性错误的重要度判定方法 Download PDF

Info

Publication number
CN107633099A
CN107633099A CN201710981214.5A CN201710981214A CN107633099A CN 107633099 A CN107633099 A CN 107633099A CN 201710981214 A CN201710981214 A CN 201710981214A CN 107633099 A CN107633099 A CN 107633099A
Authority
CN
China
Prior art keywords
function
violation
edge
dependent
graph
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.)
Granted
Application number
CN201710981214.5A
Other languages
English (en)
Other versions
CN107633099B (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.)
Northwestern Polytechnical University
Original Assignee
Northwestern Polytechnical University
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 Northwestern Polytechnical University filed Critical Northwestern Polytechnical University
Priority to CN201710981214.5A priority Critical patent/CN107633099B/zh
Publication of CN107633099A publication Critical patent/CN107633099A/zh
Application granted granted Critical
Publication of CN107633099B publication Critical patent/CN107633099B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据库一致性错误的重要度判定方法,用于解决现有方法实用性差的技术问题。技术方案是首先根据C‑Graph和D‑Graph的定义构建关系表的C‑Graph和D‑Graph超图,利用这两种超图描述数据库中关系表的属性之间的依赖关系以及属性值之间的依赖关系;再根据给出的函数依赖约束间关系的分类对表中的函数依赖约束关系进行归类;找出函数依赖违规并根据给出的函数依赖违规间关系的分类对函数依赖违规间的关系进行归类;利用公式计算函数依赖违规的效益值;根据计算得到的函数依赖违规效益值对函数依赖违规重要度进行排序。本发明降低了因修复一个函数依赖违规而引起另一些函数依赖违规带来的代价,实用性好。

Description

数据库一致性错误的重要度判定方法
技术领域
本发明属于计算机应用技术领域,具体涉及一种数据库一致性错误的重要度判定方法。
背景技术
文献"On approximating optimum repairs for functional dependencyviolations,DBLP,2009年53-62页"公开了一种通过最小化距离度量修复数据库中违反函数依赖的一致性错误的方法。该距离度量取决于数据库中修改元组的数量以及修改元组的权重,通过尽可能小的距离度量对数据库中的函数依赖进行值修复。该方法中对数据库的函数依赖修复主要考虑修改元组的数量以及修改元组的权重,并未考虑函数依赖之间的关系。函数依赖违规即违反函数依赖的情况,在实际中函数依赖违规之间不是相互独立的,其重要性也是不尽相同的。在数据库中,其中一些函数依赖违规比另一些更重要,一些函数依赖违规会引起另一些函数依赖违规。在修复数据库中函数依赖时,找出函数依赖违规之间的关系并且根据函数依赖违规的重要度对函数依赖进行修复,帮助用户找出函数依赖违规根本的原因,以更低的代价修复数据库中的函数依赖违规。
发明内容
为了克服现有方法实用性差的不足,本发明提供一种数据库一致性错误的重要度判定方法。该方法首先根据C-Graph和D-Graph的定义构建关系表的C-Graph和D-Graph超图,利用这两种超图描述数据库中关系表的属性之间的依赖关系以及属性值之间的依赖关系;再根据给出的函数依赖约束间关系的分类对表中的函数依赖约束关系进行归类;找出函数依赖违规并根据给出的函数依赖违规间关系的分类对函数依赖违规间的关系进行归类;利用公式计算函数依赖违规的效益值;根据计算得到的函数依赖违规效益值对函数依赖违规重要度进行排序。在修复数据库中的函数依赖违规时,找出函数依赖违规中根本的原因,以降低因修复一个函数依赖违规而引起另一些函数依赖违规带来的代价,实用性好。
本发明解决其技术问题所采用的技术方案:一种数据库一致性错误的重要度判定方法,其特点是包括以下步骤:
步骤一、对数据库中的关系表构建C-Graph和D-Graph超图。C-Graph给出数据库D上的函数依赖集合Σ,C-Graph GΣ=(V,E):Σi:Xi→Yi U=X∪Y。对于Σ中的每一个Σi:Xi→Yi,有一个超边ei∈E,T(ei)=Xi且H(ei)=Yi。D-Graph:根据C-GraphGΣ和关系表R,GR=(V,E):t∈R,每一个节点Vi∈V被定义为Vi=(Ai,Fi),对于每一个属性Ai∈U的不同的值,都有一个在V中标为(Ai,Fi)的节点。给出C-Graph边EΣ={TΣ(E),HΣ(E)},会产生许多条D-Graph边,每一个D-Graph边Ei∈E被定义为Ei={T(Ei),H(Ei),Ω(Ei)},其中T(Ei).Ai=TΣ(E);H(Ei).Ai=HΣ(E),每一个包含所有和相关的元组的IDs,被定义为函数依赖X→Y意味着X的值相同则Y值也必须相同,根据X的值将关系表中的数据分为不同的等价类,每一个等价类中,所有成员有相同的X值,其Y值相同或者不同。在D-Graph中有两种超边,一种是只有一个头结点及|H(E)|=1,另一种则是有多个头结点及|H(E)|>1,分别为B-arc边和边。在D-Graph中,如果包含一个或者多个边,意味着至少一个函数依赖等价类的左属性映射到多个等价类的右属性。若图中只包含B-arc边,意味着每一个等价类的左属性仅映射一个等价类的右属性,因此没有函数依赖违规。所以函数依赖违规检查转变为在D-Graph中查找函数依赖违规修复问题转化为转换所有的边为B-arc边,其目标是对所有违反函数依赖的元组集合排序即对函数依赖违规进行排序,因此问题转换为对D-Graph中所有边进行排序。
X、Y:为关系表中的属性,U=X∪Y;
Σ:函数依赖集合;
V:为超图中节点的集合;
E:为超图中超边的集合;
H(e):表示超边的头结点;
T(e):表示超边的尾节点;
t:为表R中的元组;
Ai:是属性名且Ai∈U;
Fi:是t[Ai]的一个值;
步骤二、对不同函数依赖之间的关系进行分类。假设Σ集合为最小覆盖,Σi:X→Y和Σj:X'→Y',根据函数依赖最小覆盖的定义:
或者Σi和Σj之间关系分为四类:
Σi和Σj中的属性表示如下:
如果Σi和Σj共享约束左边的一些属性,表示如下:
如果约束的右边属性值相同,表示如下:
如果约束左边和右边都有共享属性,表示如下:
如果Σi和Σj中的属性满足以下:
如果Σi和Σj中的属性满足以下:
Σ:函数依赖集合名称;
步骤三、找出关系表中的函数依赖违规并对不同函数依赖违规间的关系进行分类。假设当解决函数依赖违规问题时,仅修正函数依赖约束的右边属性的值。Σi和Σj之间的违规模式分为以下四类:
中解决其中一个约束的违规将不会影响另一个约束的违规,定义为模式。
中当修正约束的右边属性的值时,将影响所有共享属性所在函数依赖约束的右属性的值,定义为模式。
中修改约束右属性的值将影响另一个约束中违规的左属性的值,定义为模式。
模式中分为以下几种情况:
假设边且边转变为B-arc影响
假设边且 边转变为B-arc将自动使转变为B-arc边。
假设边且 边转变为B-arc将自动使转变为B-arc边。
假设是B-arc边且 边且转变边为B-arc将产生新的
假设边且 无论转变边为B-arc还是边转变为B-arc都会将新的
模式中分为以下几种情况:
表示边从v开始,表示边从v'开始,U=e.T(e)-{v},U'=e'.T(e')-{v'}。
对于每一对e和e',假设 转变会带来新的边。
对于每一对e和e',假设 转变会移动中的元组从B-arc边e'到另一条B-arc边e。
对于每一对e和e',假设 转变会移动中的元组从边e'到另一条B-arc边e。
对于每一对e和e',假设转变会移动中的元组从边e'到一条新边e;
转变会移动中的元组从边e'到边e。
对于每一对e和e',U≠U',转变不影响另一条新边的形成。
步骤四、函数依赖违规重要度评估,忽视所有的代价模型,修正函数依赖违规可能给数据库带来一些消极和积极的影响。一个函数依赖违规修正可以给关系表R质量的提高带来一些效益,所以根据每一个违规带来的潜在效益来评估其重要性。用函数依赖违规修正操作前和操作后脏元组的改变数量来评估函数依赖违规的重要性。vio(Σ,R)Θvio(Σi,R,v)表示修正函数依赖违规vio(Σi,R,v)之后的函数依赖违规集合。|vio(Σ,R)|表示包括vio(Σ,R)的元组数量。因为vio(Σi,R,v)的消除可能削减脏元组的数量或者可能带来新的的脏元组,所以|vio(Σ,R)Θvio(Σi,R,v)|≥|vio(Σi,R,v)|或者|vio(Σ,R)Θvio(Σi,R,v)|≤|vio(Σi,R,v)|。|vio(Σi,R,v)|-|vio(Σ,R)Θvio(Σi,R,v)|评估关系表R中违规数量的改变和修正后的实例R',定义其改变量为Δ(vio(Σi,R,v)),违规的效益值计算公式如下:
违规不是孤立的,数据库中的一个函数依赖违规会影响另一个违规。当评估一个函数依赖违规修正所带来的效益时,不仅考虑函数依赖违规本身还要考虑函数依赖违规的演变因素。在公式(1)中评估一个函数依赖违规消除的潜在好处为函数依赖违规所在的关系表中元组消除或增加的比率。给出由约束集合Σ和关系表R创建的相关的D-Graph,假设相关的违规vio(Σi,R,v)。表示将转变为B-arc后其他边的改变,下面讨论如何通过超图的属性计算公式(1)中的|Δ(vio(Σi,R,v))|。
假设约束Σi和其他约束的模式是或者清除这些函数依赖违规不会影响其他约束中的违规。所以当计算函数依赖违规vio(Σi,R,v)的|Δ(vio(Σi,R,v))|时,仅仅计算和其相关联的元组的数量,即但是边和其他的超边同时是模式时,是在这两个模式中超边影响的和,如公式(3)。
表示在模式中对超边的影响,表示在模式中对超边的影响。
公式(4)中为在模式中函数依赖违规满足时,转变为B-arc边的改变量。
为在模式中函数依赖违规满足时,转变为B-arc边的改变量。
为在模式中函数依赖违规满足时,转变为B-arc边的改变量。
在公式(4)中当违规满足时,改变量为0。
公式(5)中为在模式中函数依赖违规满足时,转变为B-arc边的改变量。
为在模式中函数依赖违规满足转变为B-arc边的改变量。
在公式(5)中当违规满足时改变量为0。
步骤五、对数据库中函数依赖违规重要度进行排序,根据步骤一得到关系表的C-Graph和D-Graph超图;通过步骤二得到函数依赖间的关系并对函数依赖间的关系进行分类;在步骤三找出关系表的所有函数依赖违规,并对函数依赖违规关系进行分类;在步骤四中根据步骤三的分类计算每一个函数依赖违规的效益值。当对函数依赖违规排序时,首先创建一个列表,当通过步骤四得到函数依赖违规的效益值,根据比较函数依赖违规效益值将违规插入到列表中。
本发明的有益效果是:该方法首先根据C-Graph和D-Graph的定义构建关系表的C-Graph和D-Graph超图,利用这两种超图描述数据库中关系表的属性之间的依赖关系以及属性值之间的依赖关系;再根据给出的函数依赖约束间关系的分类对表中的函数依赖约束关系进行归类;找出函数依赖违规并根据给出的函数依赖违规间关系的分类对函数依赖违规间的关系进行归类;利用公式计算函数依赖违规的效益值;根据计算得到的函数依赖违规效益值对函数依赖违规重要度进行排序。在修复数据库中的函数依赖违规时,找出函数依赖违规中根本的原因,以降低因修复一个函数依赖违规而引起另一些函数依赖违规带来的代价,实用性好。
下面结合附图和具体实施方式对本发明作详细说明。
附图说明
图1是本发明数据库一致性错误的重要度判定方法实施例中关系表的函数依赖图。
图2是本发明数据库一致性错误的重要度判定方法实施例中关系表的ConstraintGraph C-Graph超图。
图3是本发明数据库一致性错误的重要度判定方法实施例中关系表的Data GraphD-Graph超图。
具体实施方式
参照图1-3。本发明数据库一致性错误的重要度判定方法具体步骤如下:
关系表1
关系表2
步骤一、对数据库中的关系表构建C-Graph、D-Graph超图。
以关系表1为例,根据关系表1得到函数依赖A,B→E C,D→E,创建关系表1的C-Graph,如图2所示。根据关系表1和图2创建关系表1的D-Graph,如图3所示。
对数据库中的关系表构建C-Graph、D-Graph超图。C-Graph:给出数据库D上的函数依赖集合Σ,C-Graph GΣ=(V,E):Σi:Xi→Yi对于Σ中的每一个Σi:Xi→Yi,有一个超边ei∈E,T(ei)=Xi且H(ei)=Yi。D-Graph:根据C-Graph GΣ和关系表R,GR=(V,E):t∈R,,每一个节点Vi∈V被定义为Vi=(Ai,Fi),对于每一个属性Ai∈U的不同的值,都有一个在V中标为(Ai,Fi)的节点。给出C-Graph边EΣ={TΣ(E),HΣ(E)},会产生许多条D-Graph边,每一个D-Graph边Ei∈E被定义为Ei={T(Ei),H(Ei),Ω(Ei)},其中T(Ei).Ai=TΣ(E);H(Ei).Ai=HΣ(E),VEi∈H(Ei),每一个包含所有和相关的元组的IDs,被定义为函数依赖X→Y意味着X的值相同则Y值也必须相同,根据X的值可以将关系表中的数据分为不同的等价类,每一个等价类中,所有成员有相同的X值,其Y值可能相同也可能不同。在D-Graph中有两种超边,一种是只有一个头结点及|H(E)|=1,另一种则是有多个头结点及|H(E)|>1,分别为B-arc边和边。在D-Graph中,如果包含一个或者多个边,意味着至少一个函数依赖等价类的左属性映射到多个等价类的右属性。若图中只包含B-arc边,意味着每一个等价类的左属性仅映射一个等价类的右属性,因此没有函数依赖违规。所以函数依赖违规检查转变为在D-Graph中查找函数依赖违规修复问题转化为转换所有的边为B-arc边,本专利的目标是对所有违反函数依赖的元组集合排序即对函数依赖违规进行排序,因此问题转换为对D-Graph中所有边进行排序。
X、Y:为关系表中的属性,U=X∪Y;
Σ:函数依赖集合;
V:为超图中节点的集合;
E:为超图中超边的集合;
H(e):表示超边的头结点;
T(e):表示超边的尾节点;
t:为表R中的元组;
Ai:是属性名且Ai∈U;
Fi:是t[Ai]的一个值;
步骤二、对函数依赖之间的关系进行归类。
步骤一对函数依赖之间的关系进行了相应的分类,从关系表1中得到函数依赖A,B→E C,D→E。根据图2和步骤一所述函数依赖的分类对A,B→E C,D→E进行归类,函数依赖间的违规属于
对不同函数依赖之间的关系进行分类。假设Σ集合为最小覆盖,Σi:X→Y和Σj:X'→Y',根据函数依赖最小覆盖的定义:
或者Σi和Σj之间关系分为四类:
Σi和Σj中的属性表示如下:
如果Σi和Σj共享约束左边的一些属性,表示如下:
如果约束的右边属性值相同,表示如下:
如果约束左边和右边都有共享属性,表示如下:
如果Σi和Σj中的属性满足以下:
如果Σi和Σj中的属性满足以下:
Σ:函数依赖集合名称
步骤三、找出违反函数依赖的集合并进行归类。
根据D-Graph超图和函数依赖A,B→E C,D→E,找到五组违反函数依赖的元组集合。在D-Graph超图中得到E1~E5边,对应于关系表2中的函数依赖违规vio1~vio5。根据关系表1的C-Graph、D-Graph超图得到E1和E4满足转变E1边为B-arc边,E4边将自动转变为B-arc边;E2和E5满足E3和E6满足E3转变为B-arc边会使E6变成
找出关系表中的函数依赖违规并对不同函数依赖违规间的关系进行分类。假设当解决函数依赖违规问题时,仅修正函数依赖约束的右边属性的值。Σi和Σj之间的违规模式分为以下四类:
中解决其中一个约束的违规将不会影响另一个约束的违规,定义为模式。
中当修正约束的右边属性的值时,将影响所有共享属性所在函数依赖约束的右属性的值,定义为模式。
中修改约束右属性的值将影响另一个约束中违规的左属性的值,定义为模式。
模式中分为以下几种情况:
假设边且边转变为B-arc影响
假设边且 边转变为B-arc将自动使转变为B-arc边。
假设边且 边转变为B-arc将自动使转变为B-arc边。
假设是B-arc边且 边且.转变边为B-arc将产生新的
假设边且 无论转变边为B-arc还是边转变为B-arc都会将新的
模式中分为以下几种情况:
表示边从v开始,表示边从v'开始,U=e.T(e)-{v},U'=e'.T(e')-{v'}。
对于每一对e和e',假设 转变会带来新的边。
对于每一对e和e',假设 转变会移动中的元组从B-arc边e'到另一条B-arc边e。
对于每一对e和e',假设 ,转变会移动中的元组从边e'到另一条B-arc边e。
对于每一对e和e',假设|H(e)|>1∧|H(e')|>1∧U=U',若转变会移动中的元组从边e'到一条新边e;若转变会移动中的元组从边e'到边e。
对于每一对e和e',U≠U',转变不影响另一条新边的形成。
步骤四、对函数依赖违规重要度进行评估,计算函数依赖违规的效益值。
根据公式(1)计算得到每一个违规的效益值,其中每一个违规的|Δ(vio(Σi,R,v))|计算根据公式(2)得到,根据公式(3)计算得到公式(2)中的值。
函数依赖违规重要度评估,忽视所有的代价模型,修正函数依赖违规可能给数据库带来一些消极和积极的影响。一个函数依赖违规修正可以给关系表R质量的提高带来一些效益,所以根据每一个违规带来的潜在效益来评估其重要性。用函数依赖违规修正操作前和操作后脏元组的改变数量来评估函数依赖违规的重要性。vio(Σ,R)Θvio(Σi,R,v)表示修正函数依赖违规vio(Σi,R,v)之后的函数依赖违规集合。|vio(Σ,R)|表示包括vio(Σ,R)的元组数量。因为vio(Σi,R,v)的消除可能削减脏元组的数量或者可能带来新的的脏元组,所以|vio(Σ,R)Θvio(Σi,R,v)|≥|vio(Σi,R,v)|或者|vio(Σ,R)Θvio(Σi,R,v)|≤|vio(Σi,R,v)|。|vio(Σi,R,v)|-|vio(Σ,R)Θvio(Σi,R,v)|评估关系表R中违规数量的改变和修正后的实例R',定义其改变量为Δ(vio(Σi,R,v)),违规的效益值计算公式如下:
违规不是孤立的,数据库中的一个函数依赖违规会影响另一个违规。当评估一个函数依赖违规修正所带来的效益时,不仅考虑函数依赖违规本身还要考虑函数依赖违规的演变因素。在公式(1)中评估一个函数依赖违规消除的潜在好处为函数依赖违规所在的关系表中元组消除或增加的比率。给出由约束集合Σ和关系表R创建的相关的D-Graph,假设相关的违规vio(Σi,R,v)。表示将转变为B-arc后其他边的改变,下面讨论如何通过超图的属性计算公式(1)中的|Δ(vio(Σi,R,v))|。
假设约束Σi和其他约束的模式是或者,清除这些函数依赖违规不会影响其他约束中的违规。所以当计算函数依赖违规vio(Σi,R,v)的|Δ(vio(Σi,R,v))|时,仅仅计算和其相关联的元组的数量,即但是边和其他的超边同时是模式时,是在这两个模式中超边影响的和,如公式(3)
表示在模式中对超边的影响,表示在模式中对超边的影响。
公式(4)中为在模式中函数依赖违规满足时,转变为B-arc边的改变量。
为在模式中函数依赖违规满足时,转变为B-arc边的改变量。
为在模式中函数依赖违规满足时,转变为B-arc边的改变量。
在公式(4)中当违规满足时,改变量为0。
公式(5)中为在模式中函数依赖违规满足时,转变为B-arc边的改变量。
为在模式中函数依赖违规满足转变为B-arc边的改变量。
在公式(5)中当违规满足时改变量为0。
步骤五、对数据库中函数依赖违规重要度进行排序。
新建一个列表,根据步骤四中得到函数依赖违规的效益值,比较函数依赖违规的效益值,并将其插入列表中。
对数据库中函数依赖违规重要度进行排序,根据步骤一得到关系表的C-Graph和D-Graph超图;通过步骤二得到函数依赖间的关系并对该关系进行分类;在步骤三找出关系表的所有函数依赖违规,并对函数依赖违规关系进行分类;在步骤四中根据步骤三的分类计算每一个函数依赖违规的效益值。当对函数依赖违规排序时,首先创建一个列表,当通过步骤四得到函数依赖违规的效益值,根据比较函数依赖违规效益值将违规插入到列表中。

Claims (1)

1.一种数据库一致性错误的重要度判定方法,其特征在于包括以下步骤:
步骤一、对数据库中的关系表构建C-Graph和D-Graph超图;C-Graph给出数据库D上的函数依赖集合Σ,C-Graph GΣ=(V,E):Σi:Xi→Yi U=X∪Y;对于Σ中的每一个Σi:Xi→Yi,有一个超边ei∈E,T(ei)=Xi且H(ei)=Yi;D-Graph:根据C-Graph GΣ和关系表R,GR=(V,E):t∈R,每一个节点Vi∈V被定义为Vi=(Ai,Fi),对于每一个属性Ai∈U的不同的值,都有一个在V中标为(Ai,Fi)的节点;给出C-Graph边EΣ={TΣ(E),HΣ(E)},会产生许多条D-Graph边,每一个D-Graph边Ei∈E被定义为Ei={T(Ei),H(Ei),Ω(Ei)},其中T(Ei).Ai=TΣ(E);H(Ei).Ai=HΣ(E),每一个包含所有和相关的元组的IDs,被定义为
函数依赖X→Y意味着X的值相同则Y值也必须相同,根据X的值将关系表中的数据分为不同的等价类,每一个等价类中,所有成员有相同的X值,其Y值相同或者不同;在D-Graph中有两种超边,一种是只有一个头结点及|H(E)|=1,另一种则是有多个头结点及|H(E)|>1,分别为B-arc边和边;在D-Graph中,如果包含一个或者多个边,意味着至少一个函数依赖等价类的左属性映射到多个等价类的右属性;若图中只包含B-arc边,意味着每一个等价类的左属性仅映射一个等价类的右属性,因此没有函数依赖违规;所以函数依赖违规检查转变为在D-Graph中查找函数依赖违规修复问题转化为转换所有的边为B-arc边,其目标是对所有违反函数依赖的元组集合排序即对函数依赖违规进行排序,因此问题转换为对D-Graph中所有边进行排序;
X、Y:为关系表中的属性,U=X∪Y;
Σ:函数依赖集合;
V:为超图中节点的集合;
E:为超图中超边的集合;
H(e):表示超边的头结点;
T(e):表示超边的尾节点;
t:为表R中的元组;
Ai:是属性名且Ai∈U;
Fi:是t[Ai]的一个值;
步骤二、对不同函数依赖之间的关系进行分类;假设Σ集合为最小覆盖,Σi:X→Y和Σj:X'→Y',根据函数依赖最小覆盖的定义:
或者Σi和Σj之间关系分为四类:
Σi和Σj中的属性表示如下:
如果Σi和Σj共享约束左边的一些属性,表示如下:
如果约束的右边属性值相同,表示如下:
如果约束左边和右边都有共享属性,表示如下:
如果Σi和Σj中的属性满足以下:
如果Σi和Σj中的属性满足以下:
Σ:函数依赖集合名称;
步骤三、找出关系表中的函数依赖违规并对不同函数依赖违规间的关系进行分类;假设当解决函数依赖违规问题时,仅修正函数依赖约束的右边属性的值;Σi和Σj之间的违规模式分为以下四类:
中解决其中一个约束的违规将不会影响另一个约束的违规,定义为模式;
中当修正约束的右边属性的值时,将影响所有共享属性所在函数依赖约束的右属性的值,定义为模式;
中修改约束右属性的值将影响另一个约束中违规的左属性的值,定义为模式;
模式中分为以下几种情况:
假设边且边转变为B-arc影响
假设边且 边转变为B-arc将自动使转变为B-arc边;
假设边且 边转变为B-arc将自动使转变为B-arc边;
假设是B-arc边且 边且转变边为B-arc将产生新的
假设边且 无论转变边为B-arc还是边转变为B-arc都会将新的
模式中分为以下几种情况:
表示边从v开始,表示边从v'开始,U=e.T(e)-{v},U'=e'.T(e')-{v'};
对于每一对e和e',假设 转变会带来新的边;
对于每一对e和e',假设U=U'∧H(e)=H(e')转变会移动中的元组从B-arc边e'到另一条B-arc边e;
对于每一对e和e',假设 转变会移动中的元组从边e'到另一条B-arc边e;
对于每一对e和e',假设|H(e)|>1∧|H(e')|>1∧U=U',
转变会移动中的元组从边e'到一条新边e;若转变会移动中的元组从边e'到边e;
对于每一对e和e',U≠U',转变不影响另一条新边的形成;
步骤四、函数依赖违规重要度评估,忽视所有的代价模型,修正函数依赖违规可能给数据库带来一些消极和积极的影响;一个函数依赖违规修正可以给关系表R质量的提高带来一些效益,所以根据每一个违规带来的潜在效益来评估其重要性;用函数依赖违规修正操作前和操作后脏元组的改变数量来评估函数依赖违规的重要性;vio(Σ,R)Θvio(Σi,R,v)表示修正函数依赖违规vio(Σi,R,v)之后的函数依赖违规集合;|vio(Σ,R)|表示包括vio(Σ,R)的元组数量;因为vio(Σi,R,v)的消除可能削减脏元组的数量或者可能带来新的的脏元组,所以|vio(Σ,R)Θvio(Σi,R,v)|≥|vio(Σi,R,v)|或者|vio(Σ,R)Θvio(Σi,R,v)|≤|vio(Σi,R,v)|;|vio(Σi,R,v)|-|vio(Σ,R)Θvio(Σi,R,v)|评估关系表R中违规数量的改变和修正后的实例R',定义其改变量为Δ(vio(Σi,R,v)),违规的效益值计算公式如下:
<mrow> <mi>B</mi> <mi>e</mi> <mi>n</mi> <mi>e</mi> <mi>f</mi> <mi>i</mi> <mi>t</mi> <mrow> <mo>(</mo> <mi>v</mi> <mi>i</mi> <mi>o</mi> <mo>(</mo> <mrow> <msub> <mo>&amp;Sigma;</mo> <mi>i</mi> </msub> <mo>,</mo> <mi>R</mi> <mo>,</mo> <mi>v</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <mo>|</mo> <mi>v</mi> <mi>i</mi> <mi>o</mi> <mrow> <mo>(</mo> <mo>&amp;Sigma;</mo> <mo>,</mo> <mi>R</mi> <mo>)</mo> </mrow> <mo>|</mo> <mo>-</mo> <mo>|</mo> <mi>v</mi> <mi>i</mi> <mi>o</mi> <mrow> <mo>(</mo> <mo>&amp;Sigma;</mo> <mo>,</mo> <mi>R</mi> <mo>)</mo> </mrow> <mi>&amp;Theta;</mi> <mi>v</mi> <mi>i</mi> <mi>o</mi> <mrow> <mo>(</mo> <msub> <mo>&amp;Sigma;</mo> <mi>i</mi> </msub> <mo>,</mo> <mi>R</mi> <mo>,</mo> <mi>v</mi> <mo>)</mo> </mrow> <mo>|</mo> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mi>v</mi> <mi>i</mi> <mi>o</mi> <mrow> <mo>(</mo> <mo>&amp;Sigma;</mo> <mo>,</mo> <mi>R</mi> <mo>)</mo> </mrow> <mo>|</mo> </mrow> </mfrac> <mo>=</mo> <mfrac> <mrow> <mo>|</mo> <mi>&amp;Delta;</mi> <mrow> <mo>(</mo> <mi>v</mi> <mi>i</mi> <mi>o</mi> <mo>(</mo> <mrow> <msub> <mo>&amp;Sigma;</mo> <mi>i</mi> </msub> <mo>,</mo> <mi>R</mi> <mo>,</mo> <mi>v</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mi>v</mi> <mi>i</mi> <mi>o</mi> <mrow> <mo>(</mo> <mo>&amp;Sigma;</mo> <mo>,</mo> <mi>R</mi> <mo>)</mo> </mrow> <mo>|</mo> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>
违规不是孤立的,数据库中的一个函数依赖违规会影响另一个违规;当评估一个函数依赖违规修正所带来的效益时,不仅考虑函数依赖违规本身还要考虑函数依赖违规的演变因素;在公式(1)中评估一个函数依赖违规消除的潜在好处为函数依赖违规所在的关系表中元组消除或增加的比率;给出由约束集合Σ和关系表R创建的相关的D-Graph,假设相关的违规vio(Σi,R,v);表示将转变为B-arc后其他边的改变,下面讨论如何通过超图的属性计算公式(1)中的|Δ(vio(Σi,R,v))|;
<mrow> <mo>|</mo> <mi>&amp;Delta;</mi> <mrow> <mo>(</mo> <mi>v</mi> <mi>i</mi> <mi>o</mi> <mo>(</mo> <mrow> <msub> <mi>&amp;Sigma;</mi> <mi>i</mi> </msub> <mo>,</mo> <mi>R</mi> <mo>,</mo> <mi>v</mi> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>|</mo> <mo>=</mo> <mo>|</mo> <msub> <mi>E</mi> <msub> <mi>&amp;Sigma;</mi> <mi>i</mi> </msub> </msub> <mo>.</mo> <mi>&amp;Omega;</mi> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mi>&amp;Sigma;</mi> <mi>i</mi> </msub> </msub> <mo>)</mo> </mrow> <mo>|</mo> <mo>+</mo> <mi>E</mi> <mi>I</mi> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mi>&amp;Sigma;</mi> <mi>i</mi> </msub> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>
假设约束Σi和其他约束的模式是或者清除这些函数依赖违规不会影响其他约束中的违规;所以当计算函数依赖违规vio(Σi,R,v)的|Δ(vio(Σi,R,v))|时,仅仅计算和其相关联的元组的数量,即但是边和其他的超边同时是模式时,是在这两个模式中超边影响的和,如公式(3);
表示在模式中对超边的影响,表示在模式中对超边的影响;
<mrow> <mi>E</mi> <mi>I</mi> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mi>&amp;Sigma;</mi> <mi>i</mi> </msub> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>EI</mi> <mrow> <mi>s</mi> <mi>h</mi> <mi>a</mi> <mi>r</mi> <mi>e</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mi>&amp;Sigma;</mi> <mi>i</mi> </msub> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>EI</mi> <mrow> <mi>D</mi> <mi>r</mi> <mi>i</mi> <mi>v</mi> <mi>e</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mi>&amp;Sigma;</mi> <mi>i</mi> </msub> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <mtable> <mtr> <mtd> <mrow> <msub> <mi>EI</mi> <mrow> <mi>s</mi> <mi>h</mi> <mi>a</mi> <mi>r</mi> <mi>e</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mo>&amp;Sigma;</mo> <mi>i</mi> </msub> </msub> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>=</mo> <munderover> <mo>&amp;Sigma;</mo> <mi>e</mi> <mrow> <mi>e</mi> <mo>&amp;Element;</mo> <msub> <mi>E</mi> <mrow> <mi>D</mi> <mi>e</mi> <mi>l</mi> </mrow> </msub> </mrow> </munderover> <mi>E</mi> <mi>I</mi> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mo>&amp;Sigma;</mo> <mi>i</mi> </msub> </msub> <mo>,</mo> <mi>e</mi> <mo>)</mo> </mrow> <mo>+</mo> <munderover> <mo>&amp;Sigma;</mo> <mi>e</mi> <mrow> <mi>e</mi> <mo>&amp;Element;</mo> <msub> <mi>E</mi> <mrow> <mi>N</mi> <mi>e</mi> <mi>w</mi> </mrow> </msub> </mrow> </munderover> <mi>E</mi> <mi>I</mi> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mo>&amp;Sigma;</mo> <mi>i</mi> </msub> </msub> <mo>,</mo> <msup> <mi>e</mi> <mo>&amp;prime;</mo> </msup> <mo>)</mo> </mrow> <mo>+</mo> <munderover> <mo>&amp;Sigma;</mo> <mi>e</mi> <mrow> <mi>e</mi> <mo>&amp;Element;</mo> <msub> <mi>E</mi> <mrow> <mi>C</mi> <mi>o</mi> <mi>m</mi> </mrow> </msub> </mrow> </munderover> <mi>E</mi> <mi>I</mi> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mo>&amp;Sigma;</mo> <mi>i</mi> </msub> </msub> <mo>,</mo> <msup> <mi>e</mi> <mo>&amp;prime;</mo> </msup> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <msub> <mi>EI</mi> <mrow> <mi>D</mi> <mi>r</mi> <mi>i</mi> <mi>v</mi> <mi>e</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mi>&amp;Sigma;</mi> <mi>i</mi> </msub> </msub> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>EI</mi> <mrow> <mi>N</mi> <mi>e</mi> <mi>w</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mi>&amp;Sigma;</mi> <mi>i</mi> </msub> </msub> <mo>,</mo> <mi>v</mi> <mo>,</mo> <msup> <mi>v</mi> <mo>&amp;prime;</mo> </msup> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>EI</mi> <mrow> <mi>D</mi> <mi>e</mi> <mi>l</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>E</mi> <msub> <mi>&amp;Sigma;</mi> <mi>i</mi> </msub> </msub> <mo>,</mo> <mi>v</mi> <mo>,</mo> <msup> <mi>v</mi> <mo>&amp;prime;</mo> </msup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>
公式(4)中为在模式中函数依赖违规满足时,转变为B-arc边的改变量;
为在模式中函数依赖违规满足时,转变为B-arc边的改变量;
为在模式中函数依赖违规满足时,转变为B-arc边的改变量;
在公式(4)中当违规满足时,改变量为0;
公式(5)中为在模式中函数依赖违规满足时,转变为B-arc边的改变量;
为在模式中函数依赖违规满足转变为B-arc边的改变量;
在公式(5)中当违规满足时改变量为0;
步骤五、对数据库中函数依赖违规重要度进行排序,根据步骤一得到关系表的C-Graph和D-Graph超图;通过步骤二得到函数依赖间的关系并对函数依赖间的关系进行分类;在步骤三找出关系表的所有函数依赖违规,并对函数依赖违规关系进行分类;在步骤四中根据步骤三的分类计算每一个函数依赖违规的效益值;当对函数依赖违规排序时,首先创建一个列表,当通过步骤四得到函数依赖违规的效益值,根据比较函数依赖违规效益值将违规插入到列表中。
CN201710981214.5A 2017-10-20 2017-10-20 数据库一致性错误的重要度判定方法 Active CN107633099B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710981214.5A CN107633099B (zh) 2017-10-20 2017-10-20 数据库一致性错误的重要度判定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710981214.5A CN107633099B (zh) 2017-10-20 2017-10-20 数据库一致性错误的重要度判定方法

Publications (2)

Publication Number Publication Date
CN107633099A true CN107633099A (zh) 2018-01-26
CN107633099B CN107633099B (zh) 2021-02-02

Family

ID=61104503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710981214.5A Active CN107633099B (zh) 2017-10-20 2017-10-20 数据库一致性错误的重要度判定方法

Country Status (1)

Country Link
CN (1) CN107633099B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669932A (zh) * 2018-10-22 2019-04-23 国网上海市电力公司 一种基于次序依赖的电力数据集修复方法
CN109885561A (zh) * 2019-01-03 2019-06-14 中国人民解放军国防科技大学 一种基于最大依赖集和属性相关性不一致数据清洗方法
CN110069480A (zh) * 2019-03-04 2019-07-30 广东恒睿科技有限公司 一种并行数据清洗方法
WO2020024887A1 (en) * 2018-07-30 2020-02-06 Huawei Technologies Co., Ltd. Graph functional dependency checking

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473400A (zh) * 2013-08-27 2013-12-25 北京航空航天大学 基于层次依赖建模的软件fmea方法
CN106777127A (zh) * 2016-12-16 2017-05-31 中山大学 基于知识图谱的个性化学习过程的自动生成方法及系统
US20170212755A1 (en) * 2016-01-22 2017-07-27 Hcl Technologies Limited System and method for computing a criticality metric of a unit of source code

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473400A (zh) * 2013-08-27 2013-12-25 北京航空航天大学 基于层次依赖建模的软件fmea方法
US20170212755A1 (en) * 2016-01-22 2017-07-27 Hcl Technologies Limited System and method for computing a criticality metric of a unit of source code
CN106777127A (zh) * 2016-12-16 2017-05-31 中山大学 基于知识图谱的个性化学习过程的自动生成方法及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020024887A1 (en) * 2018-07-30 2020-02-06 Huawei Technologies Co., Ltd. Graph functional dependency checking
US11080266B2 (en) 2018-07-30 2021-08-03 Futurewei Technologies, Inc. Graph functional dependency checking
CN109669932A (zh) * 2018-10-22 2019-04-23 国网上海市电力公司 一种基于次序依赖的电力数据集修复方法
CN109669932B (zh) * 2018-10-22 2023-06-30 国网上海市电力公司 一种基于次序依赖的电力数据集修复方法
CN109885561A (zh) * 2019-01-03 2019-06-14 中国人民解放军国防科技大学 一种基于最大依赖集和属性相关性不一致数据清洗方法
CN110069480A (zh) * 2019-03-04 2019-07-30 广东恒睿科技有限公司 一种并行数据清洗方法
CN110069480B (zh) * 2019-03-04 2022-06-24 广东恒睿科技有限公司 一种并行数据清洗方法

Also Published As

Publication number Publication date
CN107633099B (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
CN107633099B (zh) 数据库一致性错误的重要度判定方法
Wątróbski et al. Generalised framework for multi-criteria method selection
Bohannon et al. A cost-based model and effective heuristic for repairing constraints by value modification
CN103782309B (zh) 用于机器学习分类器的自动数据清除
Berman et al. Lp-testing
Ma et al. A sustainable modular product design approach with key components and uncertain end-of-life strategy consideration
Hutchinson Metrics on terms and clauses
US20200394201A1 (en) Automatic modeling method and classifier for olap data model
US20040181527A1 (en) Robust system for interactively learning a string similarity measurement
CN102456050B (zh) 从网页中抽取数据的方法和装置
Bahmani et al. Automatic database normalization and primary key generation
Larson et al. Geometric set theory
CN108345602B (zh) 数据多维建模系统及数据多维建模方法
CN114281809A (zh) 一种多源异构数据清洗方法及装置
Jadalla et al. PDE4Java: Plagiarism Detection Engine for Java source code: a clustering approach
US7783657B2 (en) Search authoring metrics and debugging
Gottlob Computing cores for data exchange: New algorithms and practical solutions
Kimelfeld et al. Counting and enumerating preferred database repairs
CN109102138B (zh) 工作流网检验的异常片段提取方法、可读存储介质及终端
CN110083815B (zh) 一种同义变量识别方法和系统
CN109492712A (zh) 建立互联网金融风控模型的方法
CN115081515A (zh) 能效评价模型构建方法、装置、终端及存储介质
CN108776697B (zh) 一种基于谓词的多源数据集清洗方法
CN101714142B (zh) 文件群集的合并方法
Parisi et al. Inconsistency measures for relational databases

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