数据库范式说明

数据库设计

前言

中国计算机学会副理事长-王珊教授的《数据库系统概论》

范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度

范式定义

一张数据表的表结构所符合的某种设计标准的级别

就像家里装修买建材,最环保的是E0级,其次是E1级,还有E2级等等。数据库范式也分为1NF ,2NF,3NF,BCNF,4NF,5NF。

意义:

范式是为了消除重复数据减少冗余数据,从而让数据库内的数据更好的组织

特点:

符合高一级范式的设计,必定符合低一级范式,例如符合2NF的关系模式,必定符合1NF。

第一范式

1NF:字段是最小的单元不可再分
地址表:
错:

id联系人联系地址
1野哥北京市朝阳区农光里211号 15555555555

有点对:

id联系人联系人电话联系人地址
1野哥1555555555北京市朝阳区农光里211号

非常对:

id联系人联系人电话地址
1野哥1555555555北京北京朝阳区农光里211号

疑问?仅仅符合第一范式是否就可以了

商品id商品名称分类号分类名价格仓库仓库负责人
1茜茜1双肩100A野哥
1茜茜2单肩80A野哥

更新异常:今天设计师想换个名字,叫 茜茜限量版, 工作人员要想着更新两次~

插入异常:设计部&市场部的矛盾;设计部新出了 茜茜6代, 但是价格还没定,给到电商人员录入,会出现 价格null的脏数据

综上 仅仅满足第一范式还是会出现问题~

第二范式

2NF:满足1NF,表中的字段必须完全依赖于全部主键而非部分主键

上表 主键【商品id&分类号】

如果只想获得分类名,已知分类号即可, 即产生部分依赖

所以修改成如下:

表1 商品表

商品id商品名称仓库仓库负责人
1茜茜Ayege

表2 分类表

分类id分类名
1双肩
2单肩

表3 定价表

商品id分类id价格
11100
1280

疑问: 修改仓库时,会不会有问题?

第三范式

3NF:满足2NF,非主键外的所有字段必须互不依赖,即非主键字段不能有传递性依赖

商品id -> 商品名称-> 仓库 -> 仓库负责人

仓库 - > 仓库负责人

原商品表拆分如下:

1,商品表

商品id商品名仓库
1茜茜A

2,仓库表

仓库仓库负责人
Ayege
B张三丰

反范式

必要的冗余可增加查询效率 【分类表记录 分类总销售数】

必要的冗余可以还原数据真实性 【订单 冗余地址详细信息】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

YEGE学AI算法

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

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

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

打赏作者

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

抵扣说明:

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

余额充值