三大范式是Mysql数据库设计表结构所遵循的规范和指导方法,目的是减少冗余,建立结构合理的数据库,从而提高数据存储和使用的性能。
三大范式存在依赖关系,第二范式依赖第一范式,第三范式依赖第二范式。
错误示例:
学生 | 课程 |
---|---|
张三,男,18岁 | java |
李四,男,18岁 | java |
?????????
学生字段违反了第一范式,可以细分,并且没有唯一主键
改良后:
学生表:学生id、姓名、性别、年龄
学生课程表:学生id、课程
错误示例:
学生选修课表:学生id、年龄、课程、学分、成绩
成绩依赖于课程和学号,存在联合主键(学生id+课程)。学分依赖于课程。年龄依赖于学生。
改良后:
学生表:学生id、年龄
课程表:课程、学分
学生成绩表:学生id、课程、成绩
错误示例:
学生院系表:学生id、姓名、所在院系、院系地址
院系地址依赖所在院系,所在院系依赖学生,存在传递依赖
改良后:
学生院系表:学生id、姓名、所在院系id
院系地址表:院系id、院系地址