offer来了读书笔记-数据库三范式
2021/6/1 2:21:53
本文主要是介绍offer来了读书笔记-数据库三范式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
面试中被问到了数据库三范式,只知道范式是数据库的设计规范,但是具体文档化的内容一下子却想不起来了,回顾平时的数据库表设计,其实也没有特别遵守范式,一切都是以方便开发为第一要素,这里对数据库的几个范式做一个总结,内容来自《offer来了原理篇》。
范式是具有最小冗余的表结构,三范式的概念如下所述。
1.第一范式
如果每列都是不可再分的最小数据单元(也叫作最小的原子单元),则满足第一范式,第一范式的目标是确保每列的原子性。如图7-3所示,其中的Address列违背了第一范式列不可再分的原则,要满足第一范式,就需要将Address列拆分为Country列和City列。
2.第二范式
第二范式在第一范式的基础上,规定表中的非主键列不存在对主键的部分依赖,即第二范式要求每个表只描述一件事情。如图7-4所示,Orders表既包含订单信息,也包含产品信息,需要将其拆分为两个单独的表。
3.第三范式
第三范式的定义为:满足第一范式和第二范式,并且表中的列不存在对非主键列的传递依赖。如图7-5所示,除了主键的订单编号,顾客姓名依赖于非主键的顾客编号,因此需要将该列去除。
上面将数据库三范式说得通俗异动,总结一下,第一范式规定每一列都是原子性的,不可再分。第二范式规定一张表只能描述一件事情。第三范式规定中的列不存在对非主键列的传递依赖。
实际上在日常的开发中,数据库的设计不必严格遵守范式,例如一个学生表和成绩表,为了比较方便的查询,可以适当的在成绩表中做一些学生数据的冗余,这样就可不必做表关联,加快查询效率。
这篇关于offer来了读书笔记-数据库三范式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-29DataGrip使用ssh连接数据库的操作流程
- 2024-05-28SpringBoot3.2更新声明!
- 2024-05-28中外程序员到底有啥区别?
- 2024-05-25外企也半夜发布上线吗?
- 2024-05-24鸿蒙原生应用再新丁!芒果TV 入局鸿蒙
- 2024-05-22基本概念
- 2024-05-22检索数据
- 2024-05-22排序数据
- 2024-05-22基础过滤数据
- 2024-05-22通过逻辑操作符过滤数据