第一范式(1NF)
数据表的每一列都要保持它的原子特性,也就是列不能再被分割。

这张表就不符合第一范式规定的原子性,不符合关系型数据库的基本要求,在关系型数据库中创建这个表的操作就不能成功。不得不将数据表设计为如下形式。

第二范式(2NF)
属性必须完全依赖于主键,消除部分依赖。下表问题在哪?

分数依赖:学号、课名(相当于联合主键)
姓名依赖:学号(主键)

缺点
表中的第一行数据都存储了系名、系主任,数据的冗余太大
如果有一个新的系还没有开始找到学生,那么不能讲该系的信息添加到数据表中去,从数据表中看不到该系的存在
如果将某个系的学生信息全部删除,那么这个系在数据表里也就不存在了,但这个系还存在。
如果某个人要转系,那么为了保证数据库中数据的一致性,需要修改三条记录中系与系主任的数据
修改

第三范式(3NF)
消除传递依赖。
修改


本文详细介绍了MySQL数据库的建表规范,重点讨论了第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。1NF强调列的原子性,2NF要求属性完全依赖于主键,3NF则消除传递依赖。文章指出,不遵循这些范式会导致数据冗余、一致性维护困难等问题,并给出了相应的修改建议。
1717

被折叠的 条评论
为什么被折叠?



