第一范式 1NF
每一列都不可再分
如:一列不应该同时包含实体的两个属性(如性别和年龄放在一起,性别_年龄
)
第二范式 2NF
满足第一范式的前提下,一张表只能描述一件事情,也就是主键直接对应所有的其他列
如:一张表不应该同时包括用户个人信息和用户发表的日志,因为用户id可以直接对应用户个人信息或者用户发表的日志,如果做成一个表格,用户信息会重复存储,因此应该拆成两个表格
第三范式 3NF
满足第一范式和第二范式的前提下,表中的每一列都和主键是直接关联关系,而非间接关联关系
如:在下图中,并不满足第三范式。主人回复该表并不能通过主键决定其中的作者一项,反而是由回复表的评论得到初始日志表,才能得到下面的作者信息。但是这样设计主人回复一表,可以减少查询的次数,直接得到作者信息,可以提高数据库的查询效率
→ 因此,数据库的规范和数据库的实现效率之间,需要进行权衡