Database design 关系数据库的分解是可逆的吗

Database design 关系数据库的分解是可逆的吗,database-design,relational-database,database-normalization,decomposition,Database Design,Relational Database,Database Normalization,Decomposition,这个问题来自关系数据库的设计理论 我们知道,消除异常(冗余、更新和删除异常)的公认方法是分解关系。分解的目标是将一个关系替换为几个不显示异常的关系。还有像BCNF,3NF这样的条件,以及将数据库分解成这种形式的算法 那么,我们是否可以一般地说,分解过程总是可逆的(即,能够恢复db的初始状态)?如果是,如何从理论上证明它?模式的“分解”是模式的集合,每个模式都有其属性的子集。通常,模式伴随着约束。“无损”分解是指如果组件中的值是原始组件在其属性上的投影,则组件将连接回原始组件。(有损分解的组件连接

这个问题来自关系数据库的设计理论

我们知道,消除异常(冗余、更新和删除异常)的公认方法是分解关系。分解的目标是将一个关系替换为几个不显示异常的关系。还有像BCNF3NF这样的条件,以及将数据库分解成这种形式的算法

那么,我们是否可以一般地说,分解过程总是可逆的(即,能够恢复db的初始状态)?如果是,如何从理论上证明它?

模式的“分解”是模式的集合,每个模式都有其属性的子集。通常,模式伴随着约束。“无损”分解是指如果组件中的值是原始组件在其属性上的投影,则组件将连接回原始组件。(有损分解的组件连接实际上有一个适当的原始行超集。)当且仅当某个连接依赖项成立时,分解才是无损的

所以规范化是关于非损失分解

尽管我们经常草率地谈论“分解”,但在上下文中我们都知道它是非损失的

有时,我们发现一个设计是错误的,我们希望使用有损分解来代替或补充原始的设计,因为它记录了更多的数据库状态。(我们可能会在规范化时注意到它,但它不是原始版本的规范化版本。)


任何学院/大学教科书都将明确这些定义和属性,并可能列出证明。有关证明,请参见Abiteboul、Hull&Vianu的《数据库基础》。

您的回答让我走上了正确的道路。我在《数据库系统-全书》中找到了答案。Thx:)