三大范式:
1NF:列不可分。每一列都是不可分割的基本数据项。
2NF:1NF的基础上面,非主属性完全依赖于主关键字。
3NF:属性不依赖于其它非主属性 , 消除传递依赖 。
我的理解:
1NF:列不可分。每一列都是不可分割的基本数据项。
2NF:就是要有主键,要求其他字段都依赖于主键。
3NF:消除冗余
范式优点:
1. 避免数据冗余
2. 减少数据的空间
3. 减轻维护数据完整性的麻烦
4. 范式设计的表比较小,更好的利用内存的优势,提高我们的检索速度
范式缺点:
1. 经过范式设计出来的表,会很多,越严格来遵循,表就越多
2. 多表关联会慢,可能会导致索引失效
3. 范式越高,对操作性能可能就越低
反范式设计:
1. 不符合3NF的设计
2. 在NOSQL中大量运用
反范式运用场景:
1. 检索性能要求高
2. 对冗余字段很少做更新操作
参考
1.young
2.https://www.zhihu.com/question/24696366