笔记
第一范式:每一列不可以拆分,每一列需要有原子性。例如表中的地址需要拆分成省,市,详细地址
第二范式:在第一范式的基础上,表的每一列数据都完全依赖主键,不依赖主键的一部分,不然就需要将表拆分。
第三范式:在第二范式的基础上,表的每一列数据都只依赖主属性
比如Student表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)
这样一个表结构,就存在上述关系。 学号--> 所在院校 --> (院校地址,院校电话)
这样的表结构,我们应该拆开来,如下。
(学号,姓名,年龄,性别,所在院校)--(所在院校,院校地址,院校电话)
原文
第一范式:每个列都不可以再拆分。
第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。
第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。
在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。