首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关系数据库的分解是可逆的吗?

关系数据库的分解是可逆的吗?
EN

Stack Overflow用户
提问于 2016-12-18 19:21:16
回答 1查看 98关注 0票数 1

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

我们知道,消除anomalies(redundancy,更新和删除异常的公认方法是分解关系。分解的目的是用不出现异常的几个关系来代替一个关系。还有一些条件,如BCNF3NF以及将数据库分解成这种形式的算法。

因此,我们是否可以普遍地说分解过程总是可逆的(即能够恢复db的初始状态)?如果是,如何从理论上证明这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-18 20:23:54

模式的“分解”是一个模式的集合,每个模式都有其属性的子集。通常,架构伴随着约束。“无损”分解是这样一种分解,如果组件中的值是其属性上原始值的投影,那么组件就会连接回原始组件。(有损分解的组件的连接实际上具有原始行的适当的超集。)分解是无损的当且仅当某个连接依赖保持。

因此,规范化是关于非损失分解的。

然而,当我们都知道“分解”是没有损失的时候,我们常常会马马虎虎地谈论“分解”。

有时,我们发现一个设计是错误的,因为它记录了更多的数据库状态,而不是原始的,或者是我们想要使用的有损分解。(我们在正常化时可能会注意到这一点,但它不是原始版本的规范化版本。)

任何一本学院/大学的教科书都会使这些定义和属性变得清晰,并且很可能会概述这些证据。如需证明,请参阅爱丽丝之书,Abiteboul,Hull & Vianu的数据库基础。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41211992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档