首页 > 数据库 >数据库的三大范式是什么?

数据库的三大范式是什么?

时间:2024-12-15 17:21:39浏览次数:3  
标签:范式 数据库 2NF 依赖于 1NF Dr 主键 三大

数据库的三大范式是关系数据库设计中用于规范化数据结构的三种主要规则,它们分别是:

  1. 第一范式 (1NF)原子性

    • 每个字段中的值必须是原子值(不可再分的基本数据项),即每个字段只能存储单一的、不可分割的值。
    • 例如,不能将多个电话号码存储在一个字段中,而是应该将它们拆分为多个记录或字段。

    举例
    错误的表结构(违反1NF):

    ID Name Phone Numbers
    1 Alice 12345, 67890

    正确的表结构(符合1NF):

    ID Name Phone Number
    1 Alice 12345
    1 Alice 67890
  2. 第二范式 (2NF)消除部分依赖

    • 1NF的基础上,要求每个非主键字段必须完全依赖于主键,而不是只依赖于主键的一部分。
    • 如果一个表的主键是复合键(由多个字段组成),那么表中的每个非主键字段必须依赖于整个主键,而不是依赖于主键的一部分。

    举例
    错误的表结构(违反2NF):

    StudentID CourseID Instructor Grade
    1 CS101 Dr. Smith A
    1 CS102 Dr. Brown B

    在这个表中,Instructor依赖于CourseID,而不是StudentIDCourseID的组合主键,因此违反了2NF。

    正确的表结构(符合2NF):

    • 表1:学生课程成绩

      StudentID CourseID Grade
      1 CS101 A
      1 CS102 B
    • 表2:课程信息

      CourseID Instructor
      CS101 Dr. Smith
      CS102 Dr. Brown
  3. 第三范式 (3NF)消除传递依赖

    • 在2NF的基础上,要求每个非主键字段必须直接依赖于主键,而不能依赖于其他非主键字段。
    • 如果一个非主键字段依赖于另一个非主键字段,那么就存在传递依赖,需要将这些字段分到新的表中。

    举例
    错误的表结构(违反3NF):

    StudentID Name Advisor AdvisorPhone
    1 Alice Dr. Lee 123456789
    2 Bob Dr. Kim 987654321

    在这个表中,AdvisorPhone依赖于Advisor,而Advisor依赖于主键StudentID。因此,AdvisorPhone间接依赖于主键,这种依赖关系是传递依赖,违反了3NF。

    正确的表结构(符合3NF):

    • 表1:学生信息

      StudentID Name AdvisorID
      1 Alice 1
      2 Bob 2
    • 表2:导师信息

      AdvisorID Advisor AdvisorPhone
      1 Dr. Lee 123456789
      2 Dr. Kim 987654321

总结

  • 第一范式 (1NF):确保数据原子化,每个字段只能存储单一值。
  • 第二范式 (2NF):在1NF的基础上,消除部分依赖,确保非主键字段完全依赖于主键。
  • 第三范式 (3NF):在2NF的基础上,消除传递依赖,确保非主键字段直接依赖于主键。

标签:范式,数据库,2NF,依赖于,1NF,Dr,主键,三大
From: https://www.cnblogs.com/eiffelzero/p/18608202

相关文章

  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践15
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践3
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践9
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践11
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • 超大规模数据库集群保稳系列:数据库攻防演练建设实践2
     01背景1.1初识混沌工程首先我们先了解一下什么是混沌工程?简单而言,混沌工程是在系统上进行实验的技术手段,目的是建立对系统抵御生产环境中失控条件的能力以及信心。这主要体现在两个方面,从系统角度来讲,混沌工程可以提升我们架构的容错能力和韧性,降低故障发生率和复发率,提......
  • SSM主机游戏商城系统的设计与实现pl7k0--程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着主机游戏产业的蓬勃发展,用户对游戏商城的需求日益多样化。不仅要求便捷地获取游戏资源,还期望得到个性化的推荐、安全的交易......
  • SSM智能农业大棚环境监测数据分析系统4536h(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着现代农业技术的快速发展,智能农业大棚已成为提高农作物生产效率的重要手段。然而,传统的大棚环境监测方式存在数据孤岛、分析......
  • 对数据库进行分库分表可能会引发哪些问题?
    对数据库进行分库分表可能会引发的问题虽然分库分表是一种有效的扩展数据库和提升性能的策略,但在实际应用中,分库分表也可能引发一些问题和挑战。以下是分库分表可能会引发的主要问题:1.跨库查询复杂性分库分表后,数据被拆分到多个数据库和表中,导致跨库查询变得非常复杂:多表连......
  • 推荐几个不错的数据库设计工具
    前言在当今信息化高速发展的时代,数据库设计成为了软件开发过程中不可或缺的一环。一个优秀的数据库设计工具,不仅能够提高开发效率,还能确保数据库结构的合理性。今天大姚给大家推荐3个不错的数据库设计工具,希望可以帮助到有需要的同学。PowerDesignerPowerDesigner是一款功能强......
  • 如何使用DB Browser for SQLite备份和恢复PbootCMS的数据库?
    使用DBBrowserforSQLite备份和恢复PbootCMS的数据库是一个简单且有效的操作,可以帮助你在升级或维护过程中保护数据。以下是详细的步骤:下载并安装DBBrowserforSQLite:访问DBBrowserforSQLite的官方网站,下载适合你操作系统的版本并安装。安装完成后,启动DBBrowserfor......