这取决于。理论上是的,但在实践中,数据库可能会随着时间的推移而出现差异
规范化是确保数据库中的表遵循各种范式规则以减少或消除数据库异常的过程。
第一范式:表忠实地表示关系并且没有重复组。
Foo (Name varchar2, Addresses varchar2)会以多种方式违反 1NF。它无法保证唯一性(无主键)并且地址保存多个值。
然而,如果数据库达到第三范式,出于性能原因的非规范化(只要记录了非规范化,这是一个很好的决定)可能会违反先前的范式,而不违反后续范式的特定规则。此外,由于开发人员的粗心或无知,随着时间的推移更新可能(很可能)添加多属性列。因此,虽然标准化数据库是可能的,但粗心可能会破坏部分标准化,但使其余部分完好无损。这完全违反了理论下的规范化,但实际上仅违反了特定的范式。