如果数据库分解不是保留依赖关系,是否可以安全地断定分解也是有损的而无需进一步证明?
为了澄清-当我在问题中使用分解时,我指的是在试图规范化关系时将关系分解为较小关系的行为。例如。将1NF关系分解为一系列2NF关系。
如此Quora post所述,分解应该是“无损的”并且“保留依赖项”。我知道保留依赖关系的分解可能不是无损的,反之亦然。但是,在某些情况下不保留依赖项的分解是 not 有损的吗?
可以在“ Database Systems: The Complete Book”中概述数据库分解的更正式定义(请参见以下摘录)
答案 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。
现在[帮自己一个忙,做些思考]考虑一下分解是否也保持依赖关系,以及后果如何。