范式
范式normal format,为了解决数据存储与优化的问题,保存数据后,凡是能通过关系查找到的数据,不再重复存储,减少数据冗余。但是减少数据冗余就意味着效率的降低,实际数据库的设计中需要根据需求,而不是一味地按照范式设计。
范式是一种分层结构的规范,分为六层,每次都比上一层严格,满足下一层范式的前提是满足上一层范式。
六层范式:1NF
,2NF
,3NF
,…,6NF
。6NF
为最高层,最严格。数据库的设计中只需要用到3NF
,4NF
以后已经不满足效率的需求,仅仅是为了解决空间问题。
3NF
1NF
一张表中的每一个字段都具有原子性
,即每个字段的数据取出后不需要再拆分。
如:学习时间
是一个字段,其中一条记录为(19:00-22:30)
。当我需要查出开始学习的时间时,需要将该字段的数据拆分后取出。这样的字段就不具有原子性。
解决方案:将可进行数据拆分的字段拆分成多个不可再拆分的字段。
如:将学习时间
这一个字段拆分成2个字段:开始学习时间(19:00)
,结束学习时间(22:30)
。此时