Day31项目saas-export项目-数据库设计三大范式

本文介绍了数据库设计中的三大范式,包括第一范式的原子性、第二范式的非主属性完全依赖主键,以及第三范式的消除传递依赖。同时讨论了反三范式,指出在某些情况下为了优化查询性能和满足业务需求,可能需要牺牲部分规范度,适当引入冗余数据。
摘要由CSDN通过智能技术生成

三大范式介绍

  • (1)三大范式是什么?
    数据库设计表时,有三种规则或者原则,叫做三大范式
  • (2)第一范式是什么?
    确保每一列的原子性(做到每列不可拆分)-- 拆列
    在这里插入图片描述
  • (3)第二范式是什么?
    在第一范式的基础上,每列都和主键(直接或间接)相关 --拆表
    产品数量、产品折扣、产品价格与“订单号”和“产品号”都相关,但是订单金额和订单时间仅与“订单号”相关,与“产品号”无关

在这里插入图片描述

  • (4)第三范式是什么?
    第三范式(3NF):在第二范式的基础上,每列都和主键直接相关(数据比较少冗余的) – 使用外键
    所有属性都完全依赖于学号,所以满足第二范式,但是“班主任性别”和“班主任年龄”直接依赖的是“班主任姓名”,而不是主键“学号

在这里插入图片描述

反三范式介绍

  • (1)反三范式是什么?
    反三范式是基于第三范式所调整的,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。
  • (2)目的是什么?
    》》1:为了更好地方便地满足业务需求
    》》2:为了获取更高的数据库查询性能
    规范度 VS 效率
    我们在设计数据库的时候,既要考虑数据库的规范度,同时也要考虑数据库的执行效率
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翁老师的教学团队

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值