数据规范化就是让数据库中重复的数据减到最少,让我们能够快速的找到所要的数据,以提高关系式数据库的性能.
规范化分析是油E.F Codd博士提供的.
第一范式(1st Normal Form 简称1NF)
有如下规则:
- 表中必须有主键,而其他的列都"依赖"于主键。
- 每个列只存储单一值。
- 表中没有相同的多个列,重复列。
第二范式(2nd Normal Form 简称2NF)
有如下规则
- 必须符合1NF的格式。
- 各列与主键间没有"部分依赖"。
部分依赖只有主键是多个的时候才会发生,指某些列只与主键中部分列有依赖性,而与主键中其他列没有依赖性。
部分依赖会造成下列问题:
- 新建数据可能无法添加(某些主键可能为空)。
- 更改数据时候没有效率。
- 删除数据时候可能会同时删除仍有用的数据。
第三范式(3rd Normal Form 简称3NF)
有如下规则:
- 符合2NF格式。
- 各列与主键间没有"间接依赖"的关系。
"间接依赖"是指两个列并非直接依赖,而是借助第三列来达成数据依赖的关系。某个列与主键无关,是通过中间一个列建立依赖。
Boyce-Codd Normal Form(简称BCNF 广义的3NF)
广义的 3NF多规范了主键由多个列组成的表。
- 符合2NF的格式。
- 各列与主键没有"间接依赖"的关系。
- 主键中的各列不可以依赖于非主键的列。