Kaji Asked: 2011-01-04 20:52:30 +0800 CST2011-01-04 20:52:30 +0800 CST 2011-01-04 20:52:30 +0800 CST 高级规范化形式是否总是符合低级规范化形式的标准? 772 例如,3NF 的数据库始终是 1NF 和 2NF;这适用于 4、5 和 6 吗? normalization 3 个回答 Voted Am1rr3zA 2011-01-05T02:40:47+08:002011-01-05T02:40:47+08:00 1NF ⊂ 2NF ⊂ 3NF ⊂ BCNF ⊂ 4NF ⊂ 5NF ⊂ 6NF Peter Eisentraut 2011-01-04T21:00:39+08:002011-01-04T21:00:39+08:00 是的,这就是它的定义方式。 Best Answer Brian Ballsun-Stanton 2011-01-05T01:23:01+08:002011-01-05T01:23:01+08:00 这取决于。理论上,是的,但在实践中,数据库会随着时间的推移而不同 规范化是确保数据库中的表遵循各种规范形式的规则以减少或消除数据库异常的过程。 第一范式:表忠实地表示一个关系并且没有重复组。 Foo (Name varchar2, Addresses varchar2)会以多种方式违反 1NF。它无法保证唯一性,(无主键)并且地址包含多个值。 然而,如果一个数据库达到第三范式,出于性能原因的反规范化(一个很好的决定,只要反规范化被记录下来)可能会违反先前的范式而不违反后续范式的特定规则。此外,由于开发人员的粗心或无知,随着时间的推移更新可能(很可能)添加多属性列。因此,虽然规范化数据库是可能的,但粗心大意可能会破坏规范化的一部分,而使其余部分完好无损。这完全违反了理论下的归一化,但实际上只是违反了特定的范式。
1NF ⊂ 2NF ⊂ 3NF ⊂ BCNF ⊂ 4NF ⊂ 5NF ⊂ 6NF
是的,这就是它的定义方式。
这取决于。理论上,是的,但在实践中,数据库会随着时间的推移而不同
规范化是确保数据库中的表遵循各种规范形式的规则以减少或消除数据库异常的过程。
第一范式:表忠实地表示一个关系并且没有重复组。
Foo (Name varchar2, Addresses varchar2)
会以多种方式违反 1NF。它无法保证唯一性,(无主键)并且地址包含多个值。然而,如果一个数据库达到第三范式,出于性能原因的反规范化(一个很好的决定,只要反规范化被记录下来)可能会违反先前的范式而不违反后续范式的特定规则。此外,由于开发人员的粗心或无知,随着时间的推移更新可能(很可能)添加多属性列。因此,虽然规范化数据库是可能的,但粗心大意可能会破坏规范化的一部分,而使其余部分完好无损。这完全违反了理论下的归一化,但实际上只是违反了特定的范式。