( 7 ) 范式

范式

范式:
Nomal Format 是为了解决数据的存储与优化的问题,保证数据存储之后,凡是能够通过关系寻找出来的数据,不重复存储,目的:是为了减少数据的冗余。
范式:
是一种分层内结构的规范,分为六层。若要满足下一层范式前提是满足上一层范式。
 
MySQL 属于关系型数据库,关系型数据库有空间浪费,范式可以解决数据冗余问题进而节省空间,所以在设计数据库的时候,会利用到范式来指导设计。
范式在数据库的设计当中的指导意义,不是强制规范
三层范式:
1NF
第一范式:在设计表存储数据的时候,如果表中设计的字段存储的数据在取出来使用之前还需要额外的处理(拆分),说明表的设局不满足第一范式。第一范式要求:字段的数据具有原子性,即不可再分。
2NF
第二范式:必须要满足第一范式。
在数据库表设计过程中,如果有复合主键(多字段主键),且表中有字段并不是有整个主键来确定,而是依赖主键的某个字段(部分主键字段)。存在字段依赖主键的部分的问题称为部分依赖。
第二范式就是要解决表设计中不允许出现部分依赖。
解决方案:取消复合主键,使用逻辑主键(通常为ID)
3NF
第三范式:必须要满足第二范式和第一范式。理论上,一张表中所有字段都应该直接依赖主键(逻辑主键:代表业依,业务主键),如果表设计中存在一个字段并不直接依赖主键,而是 通过非主键依赖最终实现依赖主键,这种不直接依赖主键,而是通过依依赖非主键的依赖关系称之为传递依赖。
逆范式
在设计表的时候,如果一张表中的几个字段需要从另一张中获取,理论上讲可以获取依到想要的信息,但是效率低一点。所以刻意的在某些表中不去保存另外表的主键(依逻辑主键),而是直接保存想要的信息,这样可以在一张表可以直接提供数据,而不依需要多表查询(效率低)。但是会导致数据冗余。
 
 

 
 
 
posted @ 2017-10-30 14:50  -老衲-  阅读(186)  评论(0编辑  收藏  举报