数据库范式 3NF
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库范式 3NF相关的知识,希望对你有一定的参考价值。
1. 1NF
指的是列具有原子性(即列不可再分)
反例:
ID | NAME | CONTACT |
1 | 小王 | [email protected], 110 |
正解:
ID | NAME | PHONE | |
1 | 小王 | [email protected] | 110 |
2. 2NF
在第一范式基础上, 对于单主键表, 符合第二范式. 对于多主键表, 非主键属性不能只依赖部分主键.
不符合2NF的容易产生数据冗余
反例:
SHOPID是订单ID PRODUCTID是商品ID NUM是商品数量 NAME是商品名称
主键是订单ID和商品ID, NUM完全依赖于主键(订单ID和商品ID), NAME只依赖于商品ID
SHOPID | PRODUCTID | NUM | NAME |
1 | 101 | 3 | T恤 |
正解:
SHOPID | PRODUCTID | NUM |
1 | 101 | 3 |
PRODUCTID | NAME |
101 | T恤 |
3. 3NF
在第二范式的基础上, 非主键列之间不能有依赖关系
反例:
ID | NAME | CLASSID | DEPARTMENT |
1 | 小王 | 19 | 计算机系 |
这里DEPARTMENT 依赖 CLASSID
正解:
ID | NAME | CLASSID |
1 | 小王 | 19 |
ID | CLASSID | DEPARTMENT |
1 | 19 | 计算机系 |
以上是关于数据库范式 3NF的主要内容,如果未能解决你的问题,请参考以下文章