【发布时间】:2016-06-06 14:52:38
【问题描述】:
我是这种标准化形式的新手。我以前使用过 4NF,但目前 5NF 看起来很混乱,我想知道是否有任何规则说明何时应用这种结构是合适的,或者我是否必须开始思考和使用它从现在开始。
PS:我已经读过它并且我有点理解它;我只是想知道在某些情况下使用它是否更好,如果是,何时使用。
【问题讨论】:
-
现实生活中至少有90%的时间,你会发现如果你达到了BCNF,你也处于5NF。只要有可能,你应该达到 5NF;它会让你的生活更轻松(更新异常更少)。
-
在工作量上,使用这个 5NF 有多难?
-
IIRC、Date 和 Fagin 证明了“BCNF 加上所有简单的键 => 5NF”和“BCNF 加上任何简单的键 => 4NF”。简单键是单列键。因此,对于许多表,BCNF 也意味着 5NF。当这些规则不带您进入 5NF 时,我会绝对确定 BCNF(“密钥,整个密钥,只有密钥,所以请帮帮我 Codd”)并且大多数情况下不要太担心。如果看起来很麻烦,可能是设计不对。至于完全理解 5NF——它有点棘手;我不确定我是否完全理解。
-
我刚刚开始使用它,目前看起来很复杂,但我希望尽快掌握它。感谢您的回答。 @JonathanLeffler Leffler
标签: sql sql-server database-normalization