数据库之三范式
2022/1/20 19:11:40
本文主要是介绍数据库之三范式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
范式是具有最小冗余的表结构。3 范式具体如下:
第一范式(1st NF -列都是不可再分)
第一范式的目标是确保每列的原子性:如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF)
BuyerID | Address |
---|---|
1 | 中国北京市 |
2 | 美国纽约市 |
3 | 英国利物浦 |
4 | 日本东京市 |
Address分解为
Country | City |
---|---|
中国 | 北京 |
美国 | 纽约 |
英国 | 利物浦 |
日本 | 东京 |
第二范式(2nd NF-每个表只描述一件事情)
首先满足第一范式,并且表中非主键列不存在对主键的部分依赖。 第二范式要求每个表只描述一件事情。
Orders(订单表)
字段 | 例子 |
---|---|
订单编号 | 001 |
产品编号 | A001 |
订购日期 | 2000-02-03 |
价格 | $29.00 |
分解为两张表
orders(订单表)
字段 | 例子 |
---|---|
订单编号 | 001 |
订购日期 | 2000-02-03 |
Products(产品表)
字段 | 例子 |
---|---|
产品价格 | A001 |
价格 | $29.00 |
第三范式(3rd NF- 不存在对非主键列的传递依赖)
第三范式定义是,满足第二范式,并且表中的列不存在对非主键列的传递依赖。除了主键订单编号外,顾客姓名依赖于非主键顾客编号。
Orders(订单表)
字段 | 例子 |
---|---|
订单编号 | 001 |
订购日期 | 2000-02-03 |
顾客编号 | AB001 |
顾客姓名 | Tony |
转换为
字段 | 例子 |
---|---|
订单编号 | 001 |
订购日期 | 2000-02-03 |
顾客编号 | AB001 |
这篇关于数据库之三范式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?