三范式
第一范式(1NF):列为不可拆分的最小单位
的每一列都是不可分割的基本数据项
第二范式(2NF):唯一标识,都必须依赖主键
可以理解为一个表只描述一件事情;
第三范式(3NF):表中的每一列只与主键直接相关而不是间接相关
如果有间接关系需要通过外键进行关联;
总结:
第1范式:每个表中都有1列,并且该列是不可拆分的最小单元
第2范式:1张表只描述一件事情
第3范式:用外键做表的关联
理解
第一范式和第二范式在于有没有分出两张表,第二范式是说一张表中包含了多种不同的实体属性,那么要必须分成多张表, 第三范式是要求已经分成了多张表,那么一张表中只能有另一张表中的id(主键),而不能有其他的任何信息(其他的信息一律用主键在另一表查询)。
数据库五大约束
1.primary KEY:设置主键约束; 2.UNIQUE:设置唯一性约束,不能有重复值; 3.DEFAULT 默认值约束,height DOUBLE(3,2)DEFAULT 1.2 height不输入是默认为1,2 4.NOT NULL:设置非空约束,该字段不能为空; 5.FOREIGN key :设置外键约束。
注意事项
1.主键的注意事项: 主键默认非空,默认唯一性约束,只有主键才能设置自动增长,自动增长一定是主键,主键不一定需要自动增长;
2.外键的注意事项: 只有INNODB的数据库引擎支持外键,修改my.ini文件设置default-storage-engine=INNODB 外键必须与参照列的数据类型必须相同(数值型要求长度和无符号都相同,字符串要求类型相同,长度可以不同)。、
理解
我们也有两张表,一张学院表,一张学生表;我们需要考虑先有学生,还是先有学院,按照正常逻辑来讲,我们是先有学院才有学生,因为学生是学院里面的,那么学院就是父表,学生是子表,要先两张表有关系,我们就也赋予子表 “父表的ID“,也就是在小明这条数据里加上15的学院ID,那么小明就是华南理工大学的了。这样一来,我们还能看到,我们新增学院时,只要新增只关于学院的信息就可以了,完全不需要说明里面有多少学生,是不是很方便,而学生表,一旦要新增,就必须说明该新增学生是哪个学院的,不然数据就不完整,这样的逻辑跟实际情况完全吻合,这样的三范式不仅能让我们更加好的看出数据,还能方便的对进数据进行操作,真是一种很好的数据设计方式。让我们灵活运用这种设计方式,让我们的做出的程序能更加的好用。
本文详细介绍了数据库设计中的三范式,包括1NF、2NF和3NF,强调了每种范式的核心要求。1NF确保列的不可分割性,2NF要求表单一实体,3NF避免列间的间接依赖。同时,提到了数据库的五种约束,如主键、唯一性、默认值、非空和外键,并讨论了主键和外键的使用注意事项。最后,通过学院和学生表的例子展示了如何应用三范式来优化数据结构,使数据管理更高效。
1312

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



