关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。
很多资料上的范式都讲的很难理解,这里总结一下三大范式,便于读者简易的理解。
1NF:字段是原子性的,不可分;
2NF:有主键,非主键字段依赖主键。确保一个表只说明一个事物
3NF:非主键字段不能相互依赖。 每列都与主键有直接关系,不存在传递的依赖
第一范式:不符合第一范式的例子:
表:字段1、 字段2(字段2.1、字段2.2)、字段3 ......
第二范式:不符合第二范式的例子:
表:学号、课程号、姓名、学分;
这个表明显说明了两个事务:学生信息, 课程信息;由于非主键字段必须依赖主键,这里学分依赖课程号,姓名依赖与学号,所以不符合二范式。
第三范式:不符合第三范式的例子:
表:学号、姓名、 年龄、 所在学院、学院联系电话、学院联系电话
存在依赖传递: (学号) → (所在学院) → (学院地点, 学院电话)
原文:http://blog.csdn.net/andywuchuanlong/article/details/25913235