1、1NF(第一范式):要求数据库中的每一项属性都不可再分
该表中的家庭信息跟学校信息都还可以再分,所以该表不属于1NF,如果将该表再进行分解,就可以得到1NF
2、2NF(第二范式):在1NF的基础上,
非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖)
第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。
该表的候选码为 订单号 和产品号 ,但是经过检查发现,表中的订单金额只跟订单号有关,跟产品号没有关系,所以它不属于2NF
我们可以将该表进行拆分,这样就可以得到2NF
3、3NF:
在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
从该表中我们可以看出 学号 是主键,但是班主任性别和班主任 年龄 都依赖班主任姓名,而班主任姓名又依赖学号,所以存在依赖,我们可以消除这种依赖。
这样就满足了第三范式