侧边栏壁纸
博主头像
月伴飞鱼 博主等级

行动起来,活在当下

  • 累计撰写 126 篇文章
  • 累计创建 31 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

数据库第三范式(3NF)的作用与原理了解吗?

月伴飞鱼
2025-03-22 / 0 评论 / 1 点赞 / 12 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

范式(Normalization)是数据库设计的一种方法论,目的是减少数据冗余、避免数据异常、提升数据的一致性。

1. 第三范式(3NF)的定义:

第三范式是在满足第一范式(1NF)和第二范式(2NF)的基础上,进一步要求:

表中的字段必须直接依赖于主键,不得存在传递依赖(Transitive Dependency)。

通俗地理解第三范式:

  • 一个表中,每一列数据必须直接与主键相关联,不能通过其他非主键字段间接关联主键。

  • 解决的是非主键属性之间传递依赖的问题。

2. 第三范式(3NF)的作用:

  • 减少数据冗余
    避免字段的重复存储,节省存储空间。

  • 提高数据一致性
    避免出现数据更新、插入、删除异常。

  • 提高数据库可维护性
    结构更清晰,便于管理和扩展。

3. 第三范式(3NF)原理示例

例如一个订单表:

订单号 (PK)

客户编号

客户名称

客户地址

产品编号

产品名称

1001

C001

张三

北京市XX区

P001

手机

1002

C002

李四

上海市XX区

P002

电脑

1003

C001

张三

北京市XX区

P002

电脑

存在问题:

  • 客户信息(客户名称、地址)和产品信息(产品名称)出现大量重复

  • 如果客户或产品信息修改,需修改所有相关记录,容易遗漏,造成数据不一致。

4. 第三范式的优化方案(3NF改进):

拆分为三个表:

  • 订单表(order):
    | 订单号 (PK) | 客户编号(FK) | 产品编号(FK) |
    |-------------|----------------|----------------|
    | 1001 | C001 | P001 |
    | 1002 | C002 | P002 |
    | 1003 | C001 | P002 |

  • 客户表(customer):
    | 客户编号 (PK) | 客户名称 | 客户地址 |
    |---------------|----------|------------|
    | C001 | 张三 | 北京市XX区 |
    | C002 | 李四 | 上海市XX区 |

  • 产品表(product):
    | 产品编号 (PK) | 产品名称 |
    |---------------|----------|
    | P001 | 手机 |
    | P002 | 电脑 |

好处:

  • 消除了非主键字段之间的传递依赖关系。

  • 大幅降低数据冗余,提高数据一致性和维护性。

公众号.png

1
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
    1. 支付宝打赏

      qrcode alipay
    2. 微信打赏

      qrcode weixin
博主关闭了所有页面的评论