SQL 必知必会
陈旸
清华大学计算机博士
73338 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 50 讲
第一章:SQL语法基础篇 (19讲)
SQL 必知必会
15
15
1.0x
00:00/00:00
登录|注册

21丨范式设计:数据表的范式有哪些,3NF指的是什么?

3NF
2NF
1NF
数据表中的键
数据库的设计范式
数据表设计范式

该思维导图由 AI 生成,仅供参考

在日常工作中,我们都需要遵守一定的规范,比如签到打卡、审批流程等,这些规范虽然有一定的约束感,却是非常有必要的,这样可以保证正确性和严谨性,但有些情况下,约束反而会带来效率的下降,比如一个可以直接操作的任务,却需要通过重重审批才能执行。
实际上,数据表的设计和工作流程的设计很像,我们既需要规范性,也要考虑到执行时的方便性。
今天,我来讲解一下数据表的设计范式。范式是数据表设计的基本原则,又很容易被忽略。很多时候,当数据库运行了一段时间之后,我们才发现数据表设计得有问题。重新调整数据表的结构,就需要做数据迁移,还有可能影响程序的业务逻辑,以及网站正常的访问。所以在开始设置数据库的时候,我们就需要重视数据表的设计。
今天的课程你需要掌握以下几个方面的内容:
数据库的设计范式都有哪些?
数据表的键都有哪些?
1NF、2NF 和 3NF 指的是什么?

数据库的设计范式都包括哪些

我们在设计关系型数据库模型的时候,需要对关系内部各个属性之间联系的合理化程度进行定义,这就有了不同等级的规范要求,这些规范要求被称为范式(NF)。你可以把范式理解为,一张数据表的设计结构需要满足的某种设计标准的级别。
目前关系型数据库一共有 6 种范式,按照范式级别,从低到高分别是:1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、BCNF(巴斯 - 科德范式)、4NF(第四范式)和 5NF(第五范式,又叫做完美范式)。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

数据库设计范式是关系型数据库模型中的基本原则,包括1NF、2NF和3NF等级。范式设计的目的是减少数据冗余,提高数据存储的效率和一致性。本文详细介绍了数据库设计范式的概念和具体内容,包括超键、候选键、主键、外键、主属性和非主属性等概念的解释。此外,文章还强调了数据库设计范式的重要性,以及在实际应用中需要根据具体情况进行反规范化的情况。通过本文的总结,读者可以快速了解数据库设计范式的基本概念和应用要点,为日常工作中的数据库设计提供了指导和参考。文章还提到了1NF、2NF和3NF的含义和应用,以及通过实例说明了如何设计符合这些范式的数据表结构。同时,文章也指出了范式等级越高可能会影响查询效率的问题。文章内容涵盖了数据库设计范式的基本概念、应用要点以及实际应用中的注意事项,对于读者快速了解数据库设计范式具有重要的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《SQL 必知必会》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(59)

  • 最新
  • 精选
  • 夜路破晓
    数据库设计三重境: 第一重:山无棱,天地合,乃敢与君绝。(1NF:不可分) 第二重:玲珑骰子安红豆,入骨相思知不知。(2NF:完全性) 第三重:问世间,情为何物,直教人生死相许?(3NF:直接性)

    作者回复: 很好 竟然能看出境界 厉害

    2019-07-29
    7
    127
  • 丁丁历险记
    啰哩巴嗦的扯一大堆。 姓名,年龄分开就是一范 加个id 就二范 加个foreign key 就三范 三降二 通过冗余字断提效率性能,取了个装x 的名字叫反范式。 其它的范式,没事别管,不论是开发效率,还是查询效率都很感人。 需要时google 下

    作者回复: 梳理的不错

    2019-12-28
    4
    44
  • Monday
    1NF:列的原子性,不可拆分 2NF:针对于联合主键,非主属性完全依赖于联合主键,而非部分 3NF:非主属性只能直接依赖于主键

    作者回复: 正确

    2019-08-11
    4
    38
  • X5N
    又思考了一下课后练习题,感觉可以把“学生选课表”拆分成4个表。 1.学生表:学号(主键),姓名,系别编号(外键)。 2.课程表:课程编号(主键),课程名称。 3.成绩表:学号,课程编号,分数(学号和课程编号,一起构成“联合主键”)。 4.院系表:系别编号(主键),系别(名称),系主任。

    作者回复: 拆成4个表是OK的

    2019-07-29
    2
    25
  • 未来的胡先森
    我所理解的第二范式和第三范式的不同: 1、首先第三范式是第二范式的更进一步(要求更严格),要想满足第三范式首先要满足第二范式。 2、而什么情况下能够满足第二范式呢?候选码能确定一条记录的所有信息。以老师文中的例子来对照:知道球员的编号是可以知道球员信息的,但是比赛编号、比赛时间是无法来通过球员信息来确定的。这张表需要两个候选码(球员编号、比赛编号)才能确定一条记录的信息。类似于这样的关系我们称为「部分依赖」,消除后才能算「第二范式」。 3、第三范式的核心 —— 消除传递依赖。老师文中的图已经画的很清晰了,A->B,B->C,A->C,类似于这样依靠中间人串起的关系我们称之为「传递依赖」 学生选课表我的修改: 学生信息表:学号、姓名、系别编号 课程信息表:课程编号、课程名称 课程成绩表:学号、课程编号、分数 系别信息表:系别编号、系别名称、系主任

    作者回复: 总结的不错 Good Job

    2019-08-13
    16
  • 发条
    对于理解1-3NF,CSDN的这篇文章作为辅助阅读挺好的:https://blog.csdn.net/wyh7280/article/details/83350722

    作者回复: 多谢分享

    2019-08-06
    16
  • Cue
    第四范式这家公司起名来源难不成是和这个第四范式有关😄

    作者回复: 哈哈 你也可以起一个叫做 完美范式

    2019-07-29
    9
  • 野马
    对于非计算机专业人来说,名词太多了,已经被这些名词吓到了,希望老师用大白话讲解每一个知识点,让三岁小孩儿或者八十岁老太太都能听懂的讲解方式讲解,谢谢!

    作者回复: 范式这块确实名词有些多

    2019-07-30
    6
  • law
    建议课后习题,老师给出标准答案,或者对一些答案进行点评。

    作者回复: 多谢建议,找了一些共性的问题放到答疑篇中了

    2019-08-03
    5
  • cricket1981
    1. 学生表:学号、姓名、系别 2. 课程表:课程名称 3. 系别表:系别、系主任 4. 成绩表:学号、课程名称、分数

    作者回复: 正确

    2019-07-30
    2
    5
收起评论
显示
设置
留言
59
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部