数据库范式那点事
第一范式:
①必须要有主键
②每个字段的值必须是单一原子值(不可为某个字段的集合)
文章图片
这里不喜欢食物为集合,改为下表:
文章图片
第二范式:
①必须满足第一范式
②每一个非主键字段完全依赖于主键,否则将不完全依赖的非主键字段生成另外一张表
文章图片
其中价格完全依赖于 主键<组件ID,供应商ID>,但是供应商名称和供应商住址却只依赖于供应商ID,故需要将这两个字段与供应商ID单独生成下表:
文章图片
文章图片
第三范式:
①必须满足第二范式
②每个非主键字段之间没有依赖关系,否则将有相互依赖的字段生成另外一张表、
文章图片
上表中,制造商地址和制造商名称有关系,制造商地址依赖于制造商名称,所以改为下表:
文章图片
文章图片
使用范式的好处:
①可以防止数据冗余
②可以防止更新异常,插入异常,删除异常的出现
③保证数据的一致性
范式过高导致的问题:
①范式越高表则越多,表越多则进行操作时IO更易越浪费时间
使用建议:
【数据库范式那点事】设计数据库最多到第三范式,第二范式也可,不要高于第三范式,否则性能将大大下降
推荐阅读
- MySQL常用语法
- MySQL中数据库优化的常见sql语句总结
- C#.NET|C#.NET ORM FreeSql 读取使用 US7ASCII 的 Oracle 数据库中文显示乱码问题
- java|MySQL数据库无法备份解决——mysqlidump
- 运维|Mysql数据库的备份与恢复
- 数据库|MongoDB+集成SpringBoot+索引+并发优化 - 基于《MongoDB进阶与实战(唐卓章》)
- Mybatis|基于Mybatis拦截器实现数据库切换
- Mysql数据库维护
- druid|druid mysql_SpringBoot配置druid连接池连接mysql数据库
- 数据库|MySQL与Redis缓存的同步方案