12.三范式和反三范式

三范式:

为了创建冗余较小、结构合理的数据库,设计数据库时必须遵循必定的规则。在关系型数据库中这种规则就称为范式。数据库

范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须知足必定的范式。数据库设计

知足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步知足更多规范要求的称为第二范式(2NF) , 其他范式以此类推。通常说来,数据库只需知足第三范式(3NF)就好了。性能

三范式就是空间最省原则。设计

1NF:

原子性, 作到列不可拆分。class

第一范式是最基本的范式。数据库表里面字段都是单一属性的,不可再分, 若是数据表中每一个字段都是不可再分的最小数据单元,则知足第一范式。基础

2NF:

在第一范式的基础上更进一步,目标是确保表中的每列都和主键相关。总结

一张表只能描述一件事。数据

3NF:

消除传递依赖。关系型数据库

表的信息,若是可以被推导出来,就不该该单独的设计一个字段来存放。查询

反三范式:

反范式化指的是经过增长冗余或重复的数据来提升数据库的性能(主要是读性能)。

浪费存储空间,节省查询时间 (以空间换时间)。

冗余字段:

设计数据库时,某一个字段属于一张表,但它同时出如今另外一个或多个表,且彻底等同于它在其本 来所属表的意义表示,那么这个字段就是一个冗余字段。

总结:

建立一个关系型数据库设计,咱们有两种选择:

1.尽可能遵循范式理论的规约,尽量少的冗余字段,让数据库设计看起来精致、优雅、让人心醉。

2.合理的加入冗余字段这个润滑剂,减小join,让数据库执行性能更高更快。

相关文章
相关标签/搜索