数据库设计一、二、三范式
2018-07-11 本文已影响0人
朱佳宇
数据库范式设计的意义
通常把一个数据库分成两个或多个表并定义表之间的关系以做到数据隔离,添加、删除和修改某个字段只需要在一个表中进行,接着可以通过定义的关系传递到数据库中剩余的表中(和分层思想的意义所在很相似)。
数据库范式有哪些?
第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。满足最低要求的叫第一范式,简称1NF。在第一范式基础上进一步满足一些要求的为第二范式,简称2NF。其余依此类推
数据库范式的弊端?
事物往往具有多面性,设计范式也会带来一定的麻烦:操作困难,因为需要联系多个表才能得到所需要数据,而且范式越高性能就会越差。所以使用多高的范式需要权衡利弊,一般在项目中,使用到第三范式也就足够了,性能好而且方便管理数据。
什么是第一范式?
定义:数据库表中的字段都是单一属性的,不可再分。
个人理解:字段具有原子性,不能再行分割,例如日期字段值为2011年8月23日 12:12:32 就不符合第一范式,时间还可以再分。
什么是第二范式?
定义:数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖,即符合第二范式。
函数依赖的定义:如果一个表中某一个字段A的值是由另外一个字段或一组字段B的值来确定的,就称为A函数依赖于B。
什么是第三范式?
定义:在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合3NF。
个人理解:解耦,不在同一张表中有依赖传递。