MySQL三大范式详解

0.1.为什么需要范式

一个软件项目基本都会用到数据库,项目开发前期分析客户的业务和数据处理需求,然后设计数据库的E-R模型图,确认需求信息的正确和完整。再就要将E-R图转换为多张表,表设计后,很可能结构不合理,出现数据重复保存,简称数据的冗余,这对数据的增删改查带来很多后患,所以我们需要审核是否合理,就像施工图设计后,还需要其他机构进行审核图纸是否设计合理一样。

如何审核呢?需要一些有关数据库设计的理论指导规则,这些规则业界简称数据库的范式。数据库范式为数据库的设计、开发提供了一个可参考的典范。

那么范式的提出是为了解决什么问题?

比如用户表中的地址信息,拆分为省、市这种明确的字段,可以按独立的字段检索、查询。

  • 第一范式,要求将列尽可能最小的分割,希望消除某个列存储多个值的冗余的行为比如订单表中的商品分类、详情信息,只需要由商品信息表存储一份即可。
  • 第二范式,要求唯一的主键,且不存在对主键的部分依赖,希望消除表中存在冗余(多余)的列比如用户表中不需要存储额外的 其所在城市的人口、城市特点等信息。
  • 第三范式,要求没有间接依赖于主键的列,即仍然是希望消除表中冗余的列

很明显,这些范式大都是为了消除冗余而提出的,即尽可能的减少存储成本。


0.2.什么是范式


一些约束、规范、规则 来优化数据库表的设计和存储,这些规则就称为范式。前面提到了三大范式的要求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值