写这个文章的意义,是前几天我在面试中遇到一个考官,他问我数据库设计三范式,我当时的第一反应是听过,但是好像还不是很熟悉,我不能完整的表达,我知道在这个网站里有很多大神,这个问题可能对他们来说没有什么难度。但是作为经验尚浅的我来说,我还是想用自己的理解来复述一遍这个三范式,尽量做到浅显易懂,这样我能记忆更加深刻。
1NF.确保每列的原子性。如果每列都是不可再分的最小数据单位则满足第一范式,从个人理解来看,1NF的作用,在于数据表中的每个字段都唯一,且不可再拆分。这里的拆分,是指某个字段不能再往下拆分。
2NF.同一张数据表中的每个键必须和主键完全有依赖关系;换言之主键的和这个表中的其他键必须有关系,没有关系的放在一起,是不合理的。
3NF.如果表中主键满足2NF,那么这个主键和其他键的关系必须是直接关系,不能是间接的,通俗一点说,如果你是表中的主键,那么你剩余的键应该是你直接认识的朋友,而不是朋友介绍的朋友, 这就是3NF。
以上就是数据库的三范式,小弟个人浅显理解,希望各位技术大手子能够批评指正,望轻喷,谢谢。