关系型数据库的1,2,3范式

原创 2018年04月16日 11:54:59

本文图片转载于知乎,也是对知乎上文章的一个整理和总结,详细解释请看:

链接:https://www.zhihu.com/question/24696366/answer/29189700


A——>B 表示A函数决定B


Sno, Cname -> Sname, Sdept, Mname, Grade,键码为 {Sno, Cname}。也就是说,确定学生和课程之后,就能确定其它信息。

不符合范式,主要产生以下四种异常:

1.冗余数据

2. 修改异常   修改了一个记录中的信息,但是另一个记录中相同的信息却没有被修改。

3.删除异常    删除一个信息,那么也会丢失其它信息。例如如果删除了 课程-1,需要删除第一行和第三行,那么 学生-1 的信息                         就会丢失。

4.插入异常    例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。

为了解决上述问题,提出了范式这一概念:

范式是某一种级别的关系模式的集合,表示一个关系内部个属性之间的联系的合理化程度。

1范式的每个属性不可再分。


修改为:


符合1范式:


存在的问题:

数据冗余过大

插入异常 : 无法将系名与系主任的数据单独地添加到数据表中去

删除异常 : 假如将某个系中所有学生相关的记录都删除,那么所有系与系主任的数据也就随之消失了

修改异常 : 李小明转系到法律系,那么为了保证数据库中数据的一致性,需要修改三条记录中系与系主任的数据。

提高设计标准。需要第二范式,2范式在1范式的基础之上,消除了非主属性对于码的部分函数依赖

传递函数依赖:例子——系主任依赖于系名,系名包含于学号,学号不函数依赖于系名,那么系主任传递函数依赖于学号。

转换步骤:

第一步:找出数据表中所有的
第二步:根据第一步所得到的码,找出所有的主属性
第三步:数据表中,除去所有的主属性,剩下的就都是非主属性了。

第四步:查看是否存在非主属性对码的部分函数依赖


可以看到,数据冗余减少了。修改异常也改进了。但是插入异常和删除异常仍然存在。

3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖


插入异常和删除异常都有改进。


总结一下:

1NF 属性不可再分

2NF 解决了非主属性对于码的部分函数依赖 改善了数据冗余和修改异常

3NF 解决了非主属性对于码的传递函数依赖 改善了删除异常和插入异常

关系型数据库三范式

关系数据库、 三大范式
  • niclascage
  • niclascage
  • 2015-10-07 21:35:01
  • 2135

关系型数据库设计三大范式

1.何为数据库范式?设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同 规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。目前关系数据库有六种范式:第一范式...
  • u012745215
  • u012745215
  • 2016-11-25 21:27:53
  • 946

对关系型数据库五个范式的理解

复习了一下数据库的五个范式,这里不用公式,用尽可能少的术语说说理解。 之所以使用范式,往往是设计不规范的数据库表可能造成大量的数据冗余,也可能在发生插入、删除、修改操作后出现各种各样的不合理的问题。...
  • huzhaomu945
  • huzhaomu945
  • 2016-10-15 10:56:01
  • 4566

关系型数据库的范式理解

设计关系型数据库时,遵从不同的规范要求,设计出合理的关系型数据库。这些规范被称作范式。越高的范式数据库的冗余度就越低。 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3N...
  • tianjf0514
  • tianjf0514
  • 2012-12-22 23:25:11
  • 2510

通俗说明第一,二,三范式概念

数据库设计准则(第一、第二、第三范式说明)I、关系数据库设计范式介绍1.1 第一范式(1NF)无重复的列        所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列...
  • gaotianyou
  • gaotianyou
  • 2011-04-13 17:36:00
  • 2615

数据库 第一.二.三范式的定义与用途

设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。关系数据库中的关系必须满足一定的要求,即满足不同的范...
  • THISISPAN
  • THISISPAN
  • 2012-06-14 19:15:19
  • 2667

关系数据库的几种范式(1NF,2NF,3NF,BCNF)

关系数据库的范式就是设计关系数据表的一种规范,不同范式代表的不同的规范等级。 达到的等级越高,设计出的数据库表就越合理,问题越少。否则就会出现重复数据(数据冗余),插入、删除、修改等异常。 要理解...
  • tww85
  • tww85
  • 2016-11-02 10:33:36
  • 2075

数据库第一、二、三、BC范式理解

最近准备数据库工程师考试,发现好多问表结构属于什么类型的问题,这里总结归纳一下,其中第四范式并不常见,了解下就行了。 借鉴:都讲的很详细 http://blog.csdn.net/lishehe/...
  • weixin_38961318
  • weixin_38961318
  • 2018-02-27 23:24:25
  • 24

关于关系数据库的几种设计范式

关系数据库的几种设计范式介绍 1、第一范式(1NF)         在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。    ...
  • SpringFileld
  • SpringFileld
  • 2014-04-30 21:08:16
  • 742

数据库之三个范式

第一范式( 1NF ):    字段具有原子性 ,不可再分。所有关系型数据库统都满足第一范式 。    数据库表中的字段都是单一属性,不可再分。例如,姓名字段,其中的姓和名必须作为一个整体,无法区分哪...
  • yingzai1010
  • yingzai1010
  • 2018-04-02 10:04:13
  • 12
收藏助手
不良信息举报
您举报文章:关系型数据库的1,2,3范式
举报原因:
原因补充:

(最多只允许输入30个字)