三范式:
为了创建冗余较小、结构合理的数据库,设计数据库时必须遵循必定的规则。在关系型数据库中这种规则就称为范式。数据库
范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须知足必定的范式。数据库设计
知足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步知足更多规范要求的称为第二范式(2NF) , 其他范式以此类推。通常说来,数据库只需知足第三范式(3NF)就好了。性能
三范式就是空间最省原则。设计
1NF:
原子性, 作到列不可拆分。class
第一范式是最基本的范式。数据库表里面字段都是单一属性的,不可再分, 若是数据表中每一个字段都是不可再分的最小数据单元,则知足第一范式。基础
2NF:
在第一范式的基础上更进一步,目标是确保表中的每列都和主键相关。总结
一张表只能描述一件事。数据
3NF:
消除传递依赖。关系型数据库
表的信息,若是可以被推导出来,就不该该单独的设计一个字段来存放。查询
反三范式:
反范式化指的是经过增长冗余或重复的数据来提升数据库的性能(主要是读性能)。
浪费存储空间,节省查询时间 (以空间换时间)。
冗余字段:
设计数据库时,某一个字段属于一张表,但它同时出如今另外一个或多个表,且彻底等同于它在其本 来所属表的意义表示,那么这个字段就是一个冗余字段。
总结:
建立一个关系型数据库设计,咱们有两种选择:
1.尽可能遵循范式理论的规约,尽量少的冗余字段,让数据库设计看起来精致、优雅、让人心醉。
2.合理的加入冗余字段这个润滑剂,减小join,让数据库执行性能更高更快。