21丨范式设计:数据表的范式有哪些,3NF指的是什么?
陈旸
该思维导图由 AI 生成,仅供参考
在日常工作中,我们都需要遵守一定的规范,比如签到打卡、审批流程等,这些规范虽然有一定的约束感,却是非常有必要的,这样可以保证正确性和严谨性,但有些情况下,约束反而会带来效率的下降,比如一个可以直接操作的任务,却需要通过重重审批才能执行。
实际上,数据表的设计和工作流程的设计很像,我们既需要规范性,也要考虑到执行时的方便性。
今天,我来讲解一下数据表的设计范式。范式是数据表设计的基本原则,又很容易被忽略。很多时候,当数据库运行了一段时间之后,我们才发现数据表设计得有问题。重新调整数据表的结构,就需要做数据迁移,还有可能影响程序的业务逻辑,以及网站正常的访问。所以在开始设置数据库的时候,我们就需要重视数据表的设计。
今天的课程你需要掌握以下几个方面的内容:
数据库的设计范式都有哪些?
数据表的键都有哪些?
1NF、2NF 和 3NF 指的是什么?
数据库的设计范式都包括哪些
我们在设计关系型数据库模型的时候,需要对关系内部各个属性之间联系的合理化程度进行定义,这就有了不同等级的规范要求,这些规范要求被称为范式(NF)。你可以把范式理解为,一张数据表的设计结构需要满足的某种设计标准的级别。
目前关系型数据库一共有 6 种范式,按照范式级别,从低到高分别是:1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、BCNF(巴斯 - 科德范式)、4NF(第四范式)和 5NF(第五范式,又叫做完美范式)。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
数据库设计范式是关系型数据库模型中的基本原则,包括1NF、2NF和3NF等级。范式设计的目的是减少数据冗余,提高数据存储的效率和一致性。本文详细介绍了数据库设计范式的概念和具体内容,包括超键、候选键、主键、外键、主属性和非主属性等概念的解释。此外,文章还强调了数据库设计范式的重要性,以及在实际应用中需要根据具体情况进行反规范化的情况。通过本文的总结,读者可以快速了解数据库设计范式的基本概念和应用要点,为日常工作中的数据库设计提供了指导和参考。文章还提到了1NF、2NF和3NF的含义和应用,以及通过实例说明了如何设计符合这些范式的数据表结构。同时,文章也指出了范式等级越高可能会影响查询效率的问题。文章内容涵盖了数据库设计范式的基本概念、应用要点以及实际应用中的注意事项,对于读者快速了解数据库设计范式具有重要的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《SQL 必知必会》,新⼈⾸单¥68
《SQL 必知必会》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(59)
- 最新
- 精选
- 夜路破晓数据库设计三重境: 第一重:山无棱,天地合,乃敢与君绝。(1NF:不可分) 第二重:玲珑骰子安红豆,入骨相思知不知。(2NF:完全性) 第三重:问世间,情为何物,直教人生死相许?(3NF:直接性)
作者回复: 很好 竟然能看出境界 厉害
2019-07-297127 - 丁丁历险记啰哩巴嗦的扯一大堆。 姓名,年龄分开就是一范 加个id 就二范 加个foreign key 就三范 三降二 通过冗余字断提效率性能,取了个装x 的名字叫反范式。 其它的范式,没事别管,不论是开发效率,还是查询效率都很感人。 需要时google 下
作者回复: 梳理的不错
2019-12-28444 - Monday1NF:列的原子性,不可拆分 2NF:针对于联合主键,非主属性完全依赖于联合主键,而非部分 3NF:非主属性只能直接依赖于主键
作者回复: 正确
2019-08-11438 - X5N又思考了一下课后练习题,感觉可以把“学生选课表”拆分成4个表。 1.学生表:学号(主键),姓名,系别编号(外键)。 2.课程表:课程编号(主键),课程名称。 3.成绩表:学号,课程编号,分数(学号和课程编号,一起构成“联合主键”)。 4.院系表:系别编号(主键),系别(名称),系主任。
作者回复: 拆成4个表是OK的
2019-07-29225 - 未来的胡先森我所理解的第二范式和第三范式的不同: 1、首先第三范式是第二范式的更进一步(要求更严格),要想满足第三范式首先要满足第二范式。 2、而什么情况下能够满足第二范式呢?候选码能确定一条记录的所有信息。以老师文中的例子来对照:知道球员的编号是可以知道球员信息的,但是比赛编号、比赛时间是无法来通过球员信息来确定的。这张表需要两个候选码(球员编号、比赛编号)才能确定一条记录的信息。类似于这样的关系我们称为「部分依赖」,消除后才能算「第二范式」。 3、第三范式的核心 —— 消除传递依赖。老师文中的图已经画的很清晰了,A->B,B->C,A->C,类似于这样依靠中间人串起的关系我们称之为「传递依赖」 学生选课表我的修改: 学生信息表:学号、姓名、系别编号 课程信息表:课程编号、课程名称 课程成绩表:学号、课程编号、分数 系别信息表:系别编号、系别名称、系主任
作者回复: 总结的不错 Good Job
2019-08-1316 - 发条对于理解1-3NF,CSDN的这篇文章作为辅助阅读挺好的:https://blog.csdn.net/wyh7280/article/details/83350722
作者回复: 多谢分享
2019-08-0616 - Cue第四范式这家公司起名来源难不成是和这个第四范式有关😄
作者回复: 哈哈 你也可以起一个叫做 完美范式
2019-07-299 - 野马对于非计算机专业人来说,名词太多了,已经被这些名词吓到了,希望老师用大白话讲解每一个知识点,让三岁小孩儿或者八十岁老太太都能听懂的讲解方式讲解,谢谢!
作者回复: 范式这块确实名词有些多
2019-07-306 - law建议课后习题,老师给出标准答案,或者对一些答案进行点评。
作者回复: 多谢建议,找了一些共性的问题放到答疑篇中了
2019-08-035 - cricket19811. 学生表:学号、姓名、系别 2. 课程表:课程名称 3. 系别表:系别、系主任 4. 成绩表:学号、课程名称、分数
作者回复: 正确
2019-07-3025
收起评论