"冗余"之间有什么区别?和"价值多余"?

时间:2015-04-21 02:36:55

标签: database relational-database relation functional-dependencies redundancy

我试图理解数据冗余的概念。有人可以帮助解释“关系模式是多余的”和“关系模式是多余的价值”概念之间的区别是什么?以下是正式定义,我不太了解。

到目前为止,我的理解是,如果关系中的某些数据可以使用该关系的函数依赖关系派生,那么该数据就是多余的。但是我不知道为什么他们区分“冗余”和“价值多余”。提前谢谢了!

enter image description here

1 个答案:

答案 0 :(得分:0)

如果与该标题的某些关系并且满足sigma中的FD在sigma的闭包中的某些FD的属性上有两个相等的子行,则sigma的模式是冗余的。例如:如果X-> Y和Y-> Z在sigma但X-> Z不是那么X-> Z仍然在sigma的闭合中,因此X-> Z也必须保持。因此,如果满足sigma的FD的某些关系具有两个具有相同(X,Y),(Y,Z)(X,Z)值的行,则该模式是多余的。即,当一些令人满意的关系实际上表现出某种(非正式的)多余的#34;时,模式是多余的。关闭sigma时的子行。

如果与该标题的某些关系并且满足sigma中的FD具有在给定不同值时总是给出不满足sigma中的FD的关系的元素,则模式对于sigma是值冗余的。即它有一个元素值,给定其余的元素值必须是该值。例如,在上述3个具有相等子行(即XY,YZ或XZ)的情况中,确定的子行中的元素(即分别为Y,Z或Z)具有给出该值其余的元素值。即,当一些令人满意的关系实际上表现出某种(非正式的)"冗余的"时,模式是价值冗余的。按西格玛划分。

请注意,冗余是关闭西格玛的,但价值冗余仅仅是西格玛。

当且仅当值为冗余时,文本将继续显示sigma的架构是多余的。因此,要确定冗余,而不是(昂贵地)计算sigma的闭包,我们可以使用sigma per value-redundancy(以更便宜的方式)。