作用:数据库设计范式是数据库在设计过程中需要遵守的设计准则,满足范式的数据库结构清晰,不会发生操作异常,可以避免数据冗余;
第一范式(1NF):每个字段都是最小字段,具有原子性,不可再分;
例如:家庭住址字段中包含省市区街道小区门牌号,就不符合第一范式,应当拆分成若干字段分别保存省市区等信息;
拆分家庭住址字段:
| 用户编号 | 用户名称 | 省份 | 城市 | 区域 | 街道 | 地址 |
| 1 | 张三 | 陕西省 | 西安市 | 长安区 | 郭杜街道 | 终南嘉园1号楼 |
| 2 | 李四 | 四川省 | 广元市 | 利州区 | 河滨南路 | 利州小区5号楼 |
第二范式(2NF):每张表必须存在主键,并且其它字段也必须与主键直接依赖,不能仅仅与主键的某一部分依赖(例如:联合主键)
例如:订单表中包含(订单号、商品编号、商品名称、商品价格),订单号+商品编号为联合主键,商品名称和商品价格仅仅与商品编号之间存在依赖关联,与订单编号之间不存在直接依赖关系,因为无论商品名称或商品价格,都不能代表这个订单中的商品信息。(订单中会包含N种商品,M个价格)
| 订单编号 | 商品编号 | 商品名称 | 商品价格 |
| 001 | A11 | IPhone13 | 9880 |
| 002 | B12 | Macbook Pro | 17800 |
修改:拆分为两张表,订单表和商品表
| 订单编号 | 商品编号 |
| 001 | A11 |
| 002 | B12 |
| 商品编号 | 商品名称 | 商品价格 |
| A11 | IPhone13 | 9880 |
| A12 | Macbook Pro | 17800 |
本文介绍了数据库设计中的三个范式(1NF,2NF,3NF),强调了消除冗余、保持数据一致性和独立性的原则。1NF要求字段原子性;2NF强调主键依赖的完整性;3NF则防止间接依赖,提倡表间通过外键关联数据。

1487

被折叠的 条评论
为什么被折叠?



