我只是在阅读 DBMS 中 3NF 的定义,它指出:
函数依赖 X --> A 在以下情况下是允许的: 1. X 是一个超级键。2. A 是某个键的一部分。
我有两个疑问:
答:我不明白第二个条件对消除异常有何用处。为什么有 BCNF 形式,相反我们可以定义 3NF 形式不具有第二个条件。
我得到了删除传递依赖的要点。如果 Y --> Z 和 X 是主键。然后有一个传递依赖,因为 X --> Y --> Z 意味着我们不能存储 (X,Y) 的值,除非我们知道 Z。
b: 请解释移除 3NF 中的第二个条件将如何移除异常和/或限制冗余。