数据库三范式和反三范式

  要说数据库什么最抽象,我觉得就是这个三范式,不是很好理解,但是表在设计的时候又必须要知道这么一个规则。

  首先使用最简洁的话说说这三范式:

第一范式(1NF:The First Normal Form):每一列不能再分割。

第二范式(2NF:The Second Normal Form):满足1NF条件下,每一列非主键列要完全依赖主键,不能只依赖联合主键中的一部分(因为主键可能是联合主键,有多列的,必须所有字段都用上 )

第三范式(3NF:The Third Normal Form):满足2NF条件下,非主键的列不能依赖于非主键的列;

  看到这三句话肯定不理解,于是,我们用图来理解一下

1.第一范式

  简单的来说就是不能建立下面这样的表,可以看到地址这一列是可以分割的;

  一般只要是关系型数据库建立的表都会满足第一范式的。

2.第二范式

  看下面这个表,这里联合主键是(学号,科目),只有确定了这两个值,才能确定其他的列;比如分数,如果只依赖学号,那么当学号为1的时候,分数有两个,不能唯一确定;如果只依赖科目,当科目为语文的时候,分数也对应有两个;

  注意上面这个表中的姓名,它只是依赖学号的,根据学号就可以找对唯一对应的姓名,所以这时非主键列 “姓名”  部分依赖于联合主键“学号,科目”,不是完全依赖,所以不满足第二范式;

  我们需要将姓名这一列给提取出来,下表所示,对于完全依赖主键的放在一张表中,展示依赖一部分主键的放在另外一张表中;

3.第三范式

  什么叫做非主键列不能依赖非主键列呢?看着就看不懂...

  不要急,我们再看一张表:

  我们可以知道系名可以依赖学号,毕竟一个学生肯定对应着唯一的系,但是系主任呢?系主任肯定是依赖于系名的,不可能依赖某个学生吧,所以有这样的一个依赖关系:学号->系名->系主任,系主任间接依赖于主键,这是不满足第三范式的;

  所以我们需要将系主任给拿出来,单独弄一张表:

以上就是我对三范式的理解,看了一些视频和找了一些博客总结一下的吧,其实可以使用更加专业的话来说三范式的,有兴趣的可以看看这个老哥的博客,传送门╮(╯_╰)╭ ,这个就比较专业了,哈哈

4.反三范式

  按理来说按照三范式设计数据库之后,可以避免冗余数据,使得数据库结构很精简;但是有时这样的设计会使得查询表的时候需要进行关联查询,比如上面说第二范式的时候,姓名那里就不需要单独弄张表出来;

  单独弄张表出来,如果有个需求要查询一个学生的名字,科目和分数,你就需要关联查询一下;但是不单独弄张表出来,你只需要查询一次就够了;

  所以适当的冗余数据是可以接受的,而且可以提高查询效率,不应该为了遵守三范式而创建设计表,应该衡量自己项目的实际需要,在三范式和反三范式之间做权衡。

  

  我这里也就是大概讲了一下我的理解,肯定有的地方不是很正确,哈哈哈,实际的项目中表肯定是非常复杂的,那就要多分析了╮(╯_╰)╭

(0)

相关推荐

  • 数据库的三级范式,涉及范式的问题

    范式是具有最小冗余的表结构. 三范式具体如下: 1.第一范式(1NF):字段都是不可再分的:原子性: 第一范式的目标是确保每列的原子性:如果每列都是不可再分的最小数据单元,则满足第一范式(1NF): ...

  • 数据库设计

    关系型数据库建议在E-R模型的基础上,我们需要根据产品经理的设计策划,抽取出来模型与关系,制定出表结构,这是项目开始的第一步. 在开发中有很多设计数据库的软件,常用的如power designer,d ...

  • 数据库三大范式

    数据库三大范式 数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常. 1.第 ...

  • 范式通俗理解:1NF、2NF、3NF和BNCF

    https://blog.csdn.net/wyh7280/article/details/83350722 范式通俗理解:1NF.2NF.3NF和BNCF 原创hongiii 最后发布于2018-1 ...

  • 手把手教 | 如何设计高性能数据库表

    回复"面试"获取全套面试资料 如何斩获offer?如何提升技术?看看我的案例吧 尽管我们不是DBA,但我们平时都会涉及到数据库表的设计,那么我们该怎么设计呢?,表名怎么取?字段名怎 ...

  • 最全面的“反三违”培训知识手册!节后全员学习必备

    第一部分"三违"的识别和预防 一.违章指挥的识别与预防 二.识别和预防违章操作行为 三.违反劳动纪律 第二部分 习惯性违章的成因与防范 一.习惯性违章的成因 二.反习惯性违章的特点 ...

  • 2021年十大违章行为、四不伤害及反三违警示教育,必看!

    ▼ ABC安全防失联号-急事大观 培训大典 预案大典 制度大典 楼上的按钮里干货不一般,最少成百甚至上千! 正文 ▼  点击链接获取: 800+安全资料免费无条件领取! 1000+安全视频快速查询.即 ...

  • 全员反三违,欢迎对号入座.....

    在工作之前一定要三问:一是问问自己这样做安全吗?如果你认为这样做安全了,二是问一问一起工作的同事这样做安全吗?三是问一问安全管理人员或资深经验人员这样做安全吗?当你都咨询过了再去工作.不要让无知毁了卿 ...

  • 当脱口秀开始“反三俗”

    十几年前相声圈曾掀起一股"反三俗"的风气,三俗即低俗.庸俗.媚俗.时隔多年,这股风又吹到新兴的脱口秀行业,而且目前已经有一家脱口秀公司"中招",因"演 ...

  • 安全知识 | 收藏!最全面的“反三违”培训知识手册!新员工入职学习必备

    蓝字 新员工是公司发展注入的新鲜血液,对于新员工的培训,也是企业发展的重要环节之一,小安为大家准备了一份"反三违"安全手册快收好,培训使用吧~01识别和预防违章操作行为1 凡在劳动 ...

  • 2021全员安全生产四不伤害及反三违警示教育,必看!

    干货推荐 [完整版]全行业安全风险辨识分级管控清单 企业安全生产标准化达标要素清单(2021版) 你的每次违章 都有可能是人生的最后一次 违章指挥是杀人,违章作业是自杀 十大典型违章行为 1.高处作业 ...

  • 最佳学习方法之三:听课--听一反三

    听课最为关键的事,是随着讲课人的思想.思路进行联想,在你知识的断层区建起桥梁,使你学习的知识成为一个整体. 一. 理解新知识 理解新知识:听课首要的任务是理解新知识,而新知识必须通过旧知识来理解.新. ...

  • 安全生产反‘‘三违’’学习

    安全生产反‘‘三违’’学习

  • 淘汰马琳的日本人松平健太很狂妄,许昕连反三局打服日本一哥

    淘汰马琳的日本人松平健太很狂妄,许昕连反三局打服日本一哥