如果DB分解不是保留依赖关系,那么在没有进一步证据的情况下可以安全地断定它也是有损的吗?

时间:2018-11-20 05:13:28

标签: database relational-database database-normalization decomposition

如果数据库分解不是保留依赖关系,是否可以安全地断定分解也是有损的而无需进一步证明?

为了澄清-当我在问题中使用分解时,我指的是在试图规范化关系时将关系分解为较小关系的行为。例如。将1NF关系分解为一系列2NF关系。

如此Quora post所述,分解应该是“无损的”并且“保留依赖项”。我知道保留依赖关系的分解可能不是无损的,反之亦然。但是,在某些情况下保留依赖项的分解是 not 有损的吗?

可以在“ Database Systems: The Complete Book”中概述数据库分解的更正式定义(请参见以下摘录)

enter image description here

1 个答案:

答案 0 :(得分:3)

考虑具有FD {{A}-> {B}的架构(A B C); {B}-> {C}}。

由于这些FD,候选密钥将为{A}。

考虑分解为模式(A B)和(A C)。

由于((ABC)模式的关键字)为{A},因此这种分解是无损的,在[通常]意义上,对于(ABC)模式出现的任何有效关系值r1,我们可以采用(AB)(AC)模式将出现的对应关系值r2 / r3,自然地将它们联接起来,并确保我们会取回原始的r1。

现在[帮自己一个忙,做些思考]考虑一下分解是否也保持依赖关系,以及后果如何。