第一范式(1NF):


  列1唯一确定列2, 列3, 列4, ...,即列2, 列3, 列4, ...不能再分裂出其它列。

  假设有关系模式列1: 订单名; 列2: 商品。一个订单下可以有多个商品,即列2: 商品可以分裂成商品A, 商品B, 商品C, ...,所以列1: 订单名; 列2: 商品这样的关系模式不符合第一范式。

第二范式(2NF):


  满足2NF的前提是必须满足1NF。此外,关系模式需要包含两部分内容,一是必须有一个(及以上)主键;二是没有包含在主键中的列必须全部依赖于全部主键,而不能只依赖于主键的一部分而不依赖全部主键。

  定义听起来有点绕,不慌,直接看图,只有全部的非主键列依赖于全部主键,才满足第二范式。

第三范式(3NF):


  满足3NF的前提是必须满足2NF。另外关系模式的非主键列必须直接依赖于主键,不能存在传递依赖。即不能存在:非主键列m既依赖于全部主键,又依赖于非主键列n的情况。

  定义听起来还是有点绕,不慌,直接看图,只要非主键内部存在传递依赖,就不满足第三范式。

  假设存在关系模式主键1: 课程编号; 列1: 教师名; 列2: 教师家庭地址。显然满足第一范式和第二范式,但是教师家庭地址传递依赖于教师名,所以不满足第三范式。

示例:

  设有课程关系模式如下:R(C#, Cn, T, Ta)(其中C#为课程号,Cn为课程名,T为教师名,Ta为教师地址),并且假定不同的课程号可以有相同的课程名,每门课程只有一位任课教师,但每名教师可以有多门课程。关系R范式最高达到()。

A)1NF
B)2NF
C)3NF
D)BCNF

【正确答案】B

【解析】

  一个“课程号”确定一个“课程名”,确定一个“教师名”,确定一个“教师地址”,所以符合第一范式;

  “课程号”是无重复的,所以“课程号”是主键,“课程名”、“教师名”、“教师地址”均是可重复的,所以它们都是非主键列并完全依赖于主键“课程号”,所以符合第二范式;

  非主键列“教师地址”传递依赖于非主键列“教师名”,所以不符合第三范式,故选B。

//以下有助于理解:依赖关系。

同理,该文中的:学号,班级,院系也是如此的依赖关系吧。

 ————————————————
版权声明:本文为CSDN博主「cczu_chan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43971764/article/details/88677688

第一范式(1NF)、第二范式(2NF)和第三范式(3NF)相关推荐

  1. 三张图搞透第一范式(1NF)、第二范式(2NF)和第三范式(3NF)的区别

    第一范式(1NF):   列1唯一确定列2, 列3, 列4, ...,即列2, 列3, 列4, ...不能再分裂出其它列.   假设有关系模式列1: 订单名; 列2: 商品.一个订单下可以有多个商品, ...

  2. 第一范式1NF、第二范式2NF、第三范式3NF详解

    第一范式1NF:表的每个属性必须具有原子(单个)值. 第二范式2NF:而 2NF 告诉我们一张表就是一个独立的对象,一张表只 表达一个意思.每个非主键属性依赖于主键,依赖于整个主键". 第三 ...

  3. 数据库第一范式1NF,第二范式2NF,第三范式3NF详解

    文章目录 一,超码.主码.候选码之间的定义与联系 二,函数依赖. 三,三大范式 第一范式(1NF): 第二范式(2NF): 第三范式(3NF): BCNF 一,超码.主码.候选码之间的定义与联系 码是 ...

  4. 数据库系统概论——函数依赖、码和范式(1NF、2NF、3NF、BCNF)详解

    文章目录 概念回顾 1.函数依赖的定义 1.1 平凡函数依赖和非平凡函数依赖 1.2 完全函数依赖和部分函数依赖 1.3 传递函数依赖 2.码 2.1 主码和候选码 2.1主属性与非主属性 2.2 全 ...

  5. 范式基本概念 第一范式、第二范式、第三范式

    范式理论概述 关系型数据库设计时,遵照一定的规范要求,目的在于降低数据的冗余性和数据的一致性,目前业界范式有:第一范式(1NF).第二范式(2NF).第三范式(3NF).斯-科德范式(BCNF).第四 ...

  6. 数据库范式(1NF、2NF、3NF、BCNF)

    关系数据库设计之时是要遵守一定的规则的.尤其是数据库设计范式 现简单介绍1NF(第一范式),2NF(第二范式),3NF(第三范式)和BCNF,另有第四范式和第五范式留到以后再介绍. 在你设计数据库之时 ...

  7. 数据库(第一范式,第二范式,第三范式)

    范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中 ...

  8. 关系数据库范式(1NF,2NF,3NF,BCNF,4NF,5NF)全解析

    1 范式的基本概念 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小.没有冗余的数据库未必是最好的数据库 ...

  9. 【数据库基础】正则化(Normalization)P1:UNF、1NF、2NF、3NF

    写下此文,希望能深入浅出地总结[正则化]的要点 此为正则化第二部分:[数据库基础]正则化(Normalization)P2:BCNF,MVD,4NFhttps://blog.csdn.net/YFY2 ...

最新文章

  1. .htaccess的重写规则
  2. 知识图谱的皇冠:知识图谱推理的前世今生
  3. 家园签到:无忧币天天送,连续领礼更多!【家园帮助】
  4. java学习_File属性处理
  5. TCP的定时器系列 — SYNACK定时器
  6. linux挂载查看、添加与取消
  7. PHP以指定字段为索引返回数组数据
  8. 多数据源切换(拦截器)
  9. jmail qq邮箱的服务器,asp jmail qq邮箱发送邮件方法
  10. git提交到主干后,本地将主干代码更新到分支上
  11. 高情商的人都在这样表现汇报工作
  12. 马赛克,一生之敌,是时候说再见了【兄弟,借一部说话】
  13. Egret eui.TextInput组件输入后未清掉焦点,微信浏览器切换后台再切回,点击会一直唤醒输入法的Bug
  14. 攻防世界 misc 高手区 Miscellaneous-300
  15. 2021牛客寒假算法基础集训营1
  16. 谷歌浏览器上传图片或任何文件都卡死
  17. 《朱元璋为何隐瞒自己的民族成份》
  18. [Happy Coding] 加速Windows GUI debug版本的编译
  19. 5G: 我们太过于狂妄自大
  20. 解决centos7 安装 mysql8 Requires: libstdc++.so.6(GLIBCXX_3.4.21)(64bit)....的常见坑

热门文章

  1. 美发CRM软件发布了
  2. 14-Springboot默认数据源配置HikariDataSource
  3. X登读书视频下载教程
  4. 计算机英语unite4翻译,Unit 2 (大学英语读写译4课文翻译).doc
  5. CSDN写文章使用红色字体
  6. Django使用心得(一) 善用migrations
  7. Ubuntu14.04 安装CUDA7.5 + Caffe + cuDNN
  8. 潘凯:C++对象布局及多态实现的探索(七)
  9. 基于JAVA新闻信息管理系统设计与实现 开题报告
  10. 【转载】【缺陷预防技术】自动错误预防(AEP)