本节说明了以下范式:
- 第一范式
- 如果表不包含重复列,那么它符合第一范式。
- 第二范式
- 如果表符合第一范式并且只包含依赖于整个(主)键的列,那么该表符合第二范式。
- 第三范式
- 如果表符合第二范式并且只包含以非传递方式依赖于主键的列,那么该表符合第三范式。
按照 E. F. Codd(关系数据库的发明者)的规定,当遵循这些规则时,模型的表满足第三范式。当表不满足第三范式时,模型中会存在冗余数据或在尝试更新表时会发生问题。
如果在模型中找不到放置遵循这些规则的属性的位置,那么可能是发生了下列其中一个错误:
- 该属性不具有良好的定义。
- 该属性是派生的,不是直接的。
- 该属性实际上是实体或关系。
- 模型中缺少某些实体或关系。