在设计数据库中,需要遵从不同的规范要求,不同的规范即时不同的范式,每种范式呈递次规范,这样才能最大程度的消除冗余程度。
目前关系数据库有六种范式:1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、4NF(第四范式)、5NF(完美范式)。
1NF(第一范式):
定义:关系模式中R中的每一个属性A的值域都是不可分的原子项。
说明:满足1NF的关系称为规范化的关系,否则称为非规范化的关系。
例如:
学生姓名 | 学生课程 |
---|---|
张三 | 数据结构,Java程序设计,SQL数据库设计 |
上表就不满足1NF,因为{数据结构,Java程序设计,SQL数据库设计}是集合,而下表就满足了。
学生姓名 | 学生课程 |
---|---|
张三 | 数据结构 |
张三 | Java程序设计 |
张三 | SQL数据库设计 |
2NF(第二范式):
定义:在1NF的基础上,消除非主属性对键的部分依赖,即为2NF。
例如下表