从来都是听过概念,过一段时间就忘记了,根本就没有深入的理解。这次梳理一遍,用自己的方式记录一下。
1nf 原子性,不可拆分性
例如一张表里包含一个class属性(软件系,外语系,经贸系...)字段,这就不符合一范式了。因为class是个大的范围,表示系别,它实际上可以拆分成系,年级,班级。
2nf 该数据表中的任何一个非主键字段的数值都依赖于该表的主键字段。
3nf 冗余。例如一张表中包含单价,数量字段。加入一个单价*数量=总金额的字段。是冗余的体现,这是用存储空间换取执行效率的做法。
在表数据量很大的情况下,尽可能不要使用外键,因为会增加性能开销。