数据库范式第一第二第三范式的例题讲解

网站编辑2023-05-18 12:46:56765

第一范式(1NF)是关系数据库设计中的基本概念,它要求每个属性都是原子性的,即不可再分解。也就是说,每个属性都应该是单一值,而不是一个集合、数组或其他复杂类型。

考虑一个学生信息表,其中包含学生的姓名、学号、所在班级、选修的课程和成绩等信息。如果我们将这些信息全部放在一个表中,那么就会出现以下问题:

- 学生可以选修多门课程,因此成绩这个属性会有多个值,无法满足第一范式的要求。

- 学生所在的班级也可能有多个,同样无法满足第一范式的要求。

为了满足第一范式的要求,我们需要将这个表拆分成多个表,每个表只包含一个实体的信息。例如,我们可以将学生信息和成绩信息分别存储在两个表中,如下所示:

**学生信息表**

| 学号 | 姓名 | 班级 |

| ---- | ---- | ---- |

| 001 | 张三 | 1班 |

| 002 | 李四 | 2班 |

| 003 | 王五 | 3班 |

**成绩信息表**

| 学号 | 课程 | 成绩 |

| ---- | ---- | ---- |

| 001 | 数学 | 90 |

| 001 | 英语 | 85 |

| 002 | 数学 | 95 |

| 002 | 英语 | 80 |

| 003 | 数学 | 85 |

| 003 | 英语 | 90 |

这样,每个表都满足第一范式的要求,每个属性都是原子性的。

第二范式(2NF)是在第一范式的基础上进一步规范化的要求。它要求每个非主键属性都完全依赖于主键,而不是依赖于主键的一部分。

考虑一个订单信息表,其中包含订单号、商品编号、商品名称、商品单价、商品数量等信息。如果我们将这些信息全部放在一个表中,那么就会出现以下问题:

- 商品名称、商品单价这些属性并不依赖于订单号,而是依赖于商品编号,因此无法满足第二范式的要求。

为了满足第二范式的要求,我们需要将这个表拆分成多个表,每个表只包含一个实体的信息。例如,我们可以将订单信息、商品信息和订单商品信息分别存储在三个表中,如下所示:

**订单信息表**

| 订单号 | 日期 | 客户编号 |

| ------ | ---------- | -------- |

| 001 | 2021-01-01 | 001 |

| 002 | 2021-01-02 | 002 |

| 003 | 2021-01-03 | 003 |

**商品信息表**

| 商品编号 | 商品名称 | 商品单价 |

| -------- | -------- | -------- |

| 001 | 商品A | 10 |

| 002 | 商品B | 20 |

| 003 | 商品C | 30 |

**订单商品信息表**

| 订单号 | 商品编号 | 商品数量 |

| ------ | -------- | -------- |

| 001 | 001 | 2 |

| 001 | 002 | 3 |

| 002 | 002 | 1 |

| 003 | 001 | 4 |

| 003 | 003 | 2 |

这样,每个表都满足第二范式的要求,每个非主键属性都完全依赖于主键。

第三范式(3NF)是在第二范式的基础上进一步规范化的要求。它要求每个非主键属性都不依赖于其他非主键属性。

考虑一个图书信息表,其中包含图书编号、图书名称、作者、出版社、出版日期、价格等信息。如果我们将这些信息全部放在一个表中,那么就会出现以下问题:

- 出版社、出版日期这些属性并不依赖于图书名称,而是依赖于图书编号,因此无法满足第三范式的要求。

为了满足第三范式的要求,我们需要将这个表拆分成多个表,每个表只包含一个实体的信息。例如,我们可以将图书信息、作者信息和出版社信息分别存储在三个表中,如下所示:

**图书信息表**

| 图书编号 | 图书名称 | 作者编号 | 价格 |

| -------- | -------- | -------- | ---- |

| 001 | 图书A | 001 | 20 |

| 002 | 图书B | 002 | 30 |

| 003 | 图书C | 003 | 40 |

**作者信息表**

| 作者编号 | 作者姓名 |

| -------- | -------- |

| 001 | 作者A |

| 002 | 作者B |

| 003 | 作者C |

**出版社信息表**

| 出版社编号 | 出版社名称 | 出版日期 |

| ---------- | ---------- | -------- |

| 001 | 出版社A | 2021-01 |

| 002 | 出版社B | 2021-02 |

| 003 | 出版社C | 2021-03 |

这样,每个表都满足第三范式的要求,每个非主键属性都不依赖于其他非主键属性。

最新推荐

右侧广告图1
  • 数据库审计

    在满足等保2.0‘安全审计’相关要求的同时,智能解析数据库通信流量,细粒度审计数据库访问行为,通过对数据库全量行为的审计溯源、危险攻击的实时告警、风险语句的智能预警,提供敏感的数据库资产安全的监控保障

    ¥3000.00/月

    等保合规

  • 云数据库 ClickHouse

    开箱即用,高吞吐写入,秒级实时分析、自动弹性优势。 广泛应用于流量分析、广告营销分析、行为分析、人群划分、客户画像、敏捷BI、数据集市、网络监控、分布式服务和链路监控等业务场景。

    ¥1473.40/月

    1年85折

  • 云数据库 RDS

    高性价比、稳定安全可靠的云数据库 RDS 即开即用、“自动驾驶”,助您免除数据库运维烦恼

    ¥88.00/年

    折扣优惠,高性价比,安全稳定

右侧广告图2