数据库三大范式详解以及部分、完全、传递依赖

  • 一、第一范式
  • 二、第二范式
  • 三、第三范式
  • 四、部分依赖、完全依赖、传递依赖
  • 完结撒花

一、第一范式

数据库每一列都是不可分的基本数据项(原子数据项)
就比如说:下面一个数据表

编号 姓名 地址
001 李一 山东,青岛
002 李二 山东,济南
003 李三 山东,济宁

上表所示的地址,就不符合第一范式,以为地址那一列可以分为省份和市区,故可以修改为

编号 姓名 省份 市区
001 李一 山东 青岛
002 李二 山东 济南
003 李三 山东 济宁

二、第二范式

第二范式要求在满足第一范式的基础上,非码属性必须完全依赖于候选字,也就是要消除部分依赖。(完全依赖,部分依赖在后文)
就比如说:

订单号 产品号 产品数量 产品价格 订单时间 订单金额
2001 001 3 8.5 20200224 25.5
2002 002 2 7.5 20200424 17
2002 003 2 6.5 20200424 17
2003 001 2 8.5 20200324 16

如上图加粗字体所示,可能对于同一个订单,含有不同的产品,因此主键必须是产品号和订单号联合组成。但可以发现产品数量、产品价格与订单号、产品号都有关,不过订单时间与订单金额仅与订单号有关,这就违反了第二范式。故可以修改为:

订单号 产品号 产品数量 产品价格
2001 001 3 8.5
2002 002 2 7.5
2002 003 2 6.5
2003 001 2 8.5
订单号 订单时间 订单金额
2001 20200224 25.5
2002 20200424 17
2002 20200424 17
2003 20200324 16

三、第三范式

第三范式要求在满足第二范式的基础上,任何非主属性不依赖于其他非主属性,即在第二范式的基础上消除传递依赖。第三范式要求数据表的每一列都与主键直接相关,而不是间接相关。
就比如说:

学号 姓名 性别 班主任姓名 班主任性别 班主任年龄
2001 李一 陈毅 35
2003 李二 陈毅 35
2004 李三 王玉 26
2005 李四 王玉 26

从上表可以看出,所有属性都完全依赖于学号,故符合第三范式,但是班主任性别和班主任年龄直接依赖于班主任姓名,而不是主键学号,故不符合第三范式。可修改为:

学号 姓名 性别 班主任姓名
2001 李一 陈毅
2003 李二 陈毅
2004 李三 王玉
2005 李四 王玉
班主任姓名 班主任性别 班主任年龄
陈毅 35
陈毅 35
王玉 26
王玉 26

这样就满足第三范式了。

四、部分依赖、完全依赖、传递依赖

部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X’是X的真子集,存在X’→Y,则称Y部分函数依赖于X。

比如说:C可以通过AB得到,并且C也可以仅通过A得到,仅通过B得到,
那么就说C部分依赖AB。

完全函数依赖:设X,Y是关系R的两个属性集合,X’是X的真子集,存在X→Y,但对每一个X’都有X’!→Y,则称Y完全函数依赖于X。

比如说:C可以通过AB得到,并且C不可以仅通过A得到,也不可以仅通过B得到,
那么就说C完全依赖AB。

传递函数依赖:设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。

比如说:B可以通过A得到,C可以通过B得到,那么就称C传递依赖A。

完结撒花

biu 点个赞再走呗

数据库三大范式详解,部分依赖、完全依赖、传递依赖相关推荐

  1. 数据库三大范式详解实例图文教程

    title: 数据库三大范式详解实例图文教程 date: 2021-09-04 20:29:31 tags: 数据库 MySQL categories: 数据库 cover: https://cove ...

  2. 数据库三范式详解,优缺点,解决了什么问题?

    https://zhuanlan.zhihu.com/p/20028672 三范式详解 解决了什么问题:(上面也有讲到)https://blog.csdn.net/qq_41174684/articl ...

  3. 数据库的三大范式详解

    数据库的三大范式 第一范式(1NF) 原子性:保证每一列不可再分 举例: 在上面的表中,family_inf列中不满足原子性的要求,故不满足第一范式.需调整如下: 第二范式(2NF) 在第一范式的基础 ...

  4. MySQL三大范式详解(小白也能懂哦)

    1.范式基础 1.1范式的概念 设计数据库的时候需要遵从的一些规范,目前关系数据库有六种范式:第一范式(1NF).第二范式(2NF).第三范式(3NF).巴斯-科德范式(BCNF).第四范式(4NF) ...

  5. 数据库六种范式详解(1NF/2NF/3NF/BCNF/4NF/5NF)

    目录 数据库的基本概念 函数依赖 函数依赖的定义 函数依赖与属性的关系 六种范式 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) 巴斯-科德范式(BCNF,Boyce-Codd Norma ...

  6. 数据库三范式详解+例子

    转载 <a href="http://blog.csdn.net/w__yi/article/details/19934319"></a> 数据库的设计范式 ...

  7. mysql数据库设计三大范式_数据库设计三大范式详解

    引言数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟,不 ...

  8. 数据库设计三大范式详解

    引言数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟,不 ...

  9. mysql三大范式 答案_数据库三大范式定义与理解

    数据库三大范式定义与理解 发布时间:2018-06-04 10:24, 浏览次数:291 一.第一范式(1NF) 要求: 要求:每一个分量必须是不可分的数据项. 特点: 1)有主键,且主键不能为空. ...

最新文章

  1. ajax invoke error,配置全局的异常捕获时,走ajax请求下面报错
  2. 换根dp求树所有节点的最小深度
  3. C++程序设计语言编程风格演变史
  4. Game(HDU-6669)
  5. select count(*) 和 select count(1) 以及 select count(column) 的区别
  6. We7 从这里开始---we7的功能和特点(3)
  7. Excel选择某单元格整行变色是这样做的
  8. Linux DMA 内dwc_prep_slave_sg函数与device_prep_dma_cyclic函数
  9. 全球链界科技发展大会_科技界的女性-过去,现在和未来
  10. 本地域名转向Hosts文件位置
  11. Win10上如何显示本地lrc文件歌词——lrc播放器——《超级lrc播放器》
  12. 现在可用:Yggdrasil图标包
  13. JDBDUitl代码记录
  14. Openvpn搭建并使用用户名密码登录
  15. 华为p40还用麒麟990鸿蒙,华为P40渲染图曝光,2K挖孔屏+麒麟990+鸿蒙OS
  16. 网页上显示word和Excel
  17. 光学实验-偏振光的研究(matploylib)
  18. 第20讲:Mybatis 中 XML 文件是如何解析的?
  19. net_framework 种子
  20. 摘录:Linux打Patch的方法

热门文章

  1. python字符串能不能加减乘除_Python运算符可不只有加减乘除
  2. OpenCV数字图像处理学习平台
  3. 瑜伽健身app开发功能详细说明
  4. BoW(词袋)模型详细介绍
  5. 纯CSS实现正方形、自适应正方形方法
  6. Unity-网络开发(三)
  7. Spring的基础知识精讲,创客学院一招教你彻底掌握
  8. 二度云抢先成为首批工信部(.vip/.xyz/.club)域名注册管理机构
  9. python画旺仔代码_Python基础3
  10. M.2、PCIe、mSATA接口的SSD 速度性能如何?哪一个是装机首选