第一范式(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。

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

  1. 三张图搞懂JavaScript的原型对象与原型链

    对于新人来说,JavaScript的原型是一个很让人头疼的事情,一来prototype容易与__proto__混淆,二来它们之间的各种指向实在有些复杂,其实市面上已经有非常多的文章在尝试说清楚,有一张 ...

  2. 第一范式(1NF)、第二范式(2NF)和第三范式(3NF)

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

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

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

  4. 三张图搞定TCP 握手、HTTPS、TLS加密过程

    1. 抓包内容(WireShark) 2. 搞定握手.挥手.SSL加密过程 3. 消息内容(Charles) 之前看到写的比较好的文章,有文字详细叙述: TLS版本差异 https://zhuanla ...

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

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

  6. 4张图搞懂Salesforce的认证体系(附新手考证攻略)

    Salesforce认证计划概述 最近这一两年,Salesforce的Trailhead和认证太热门了,小伙伴们前赴后继地刷Badge拿认证,可以考的认证也随着产品家族的增加而增加,从十几年前的几个认 ...

  7. 【科普干货】3张图搞懂Salesforce的认证体系(附新手考证攻略)

    Salesforce.com,这家神一般的公司及其产品我就不多说了,需要了解的可以阅读我的另一篇科普文章<一张图读懂Salesforce的产品架构>. 今天给大家带来另一篇关于Salesf ...

  8. 3张图搞懂Salesforce的认证体系

    今天给大家带来另一篇关于Salesforce认证考试的科普文章. [Salesforce认证计划概述] 最近这一两年,Salesforce的Trailhead和认证太热门了,小伙伴们前赴后继地刷Bad ...

  9. 三张图助您掌握OTN分层结构

    OTN(Optical Transport Network,光传送网)是一个层次化网络,业务信号在不同层次之间进行传输. 根据ITU-T国际电信联盟规定,OTN分为7层结构: 客户信号层:指OTN网络 ...

最新文章

  1. 亿级PV物联网的基础架构
  2. C# 将string 转换为二维码图片,然后转为base64字符串编码 。
  3. SpringMVC核心流程图
  4. 轻量级的Ajax解决方案——DynAjax:直接在客户端调用C#类的方法
  5. wpf: DataGridTextColumn 数字格式显示,编辑时取消格式(StringFormat)
  6. 局域网工业交换机的种类和选择注意事项!
  7. 关于虚拟机第二块网卡eth1(仅主机模式)的配置问题
  8. 大流量场景下如何云淡风轻地进行线上发布?
  9. [ES6] 细化ES6之 -- 前端模块化
  10. 庖丁解牛之-Android平台RTSP|RTMP播放器设计
  11. linux里的tree 命令,Linux中tree命令起什么作用呢?
  12. ttf字体文件抽取自己想要的字
  13. 电子专业必懂的焊接知识与技能!
  14. 基于Nodejs+vue开发实现高校学院网站系统
  15. 使用UMI仿今日头条首页
  16. Android全局捕获异常信息,并上传到服务器。
  17. android sqlite 分词,sqlite3自定义分词器
  18. 我100米跑了7秒会不会太慢了
  19. WebView 视频播放,全屏按钮显示不出来,全屏后不能播放视频
  20. 行为型模式----golang实现

热门文章

  1. KingbaseES 工具sys_dump,sys_restore使用介绍
  2. linux挂载硬盘并建立samba共享操作流程
  3. 偏向锁、轻量级锁、重量级锁,Synchronized底层源码终极解析!
  4. 雅思备考Road to IELTS
  5. css详解position五种属性用法及其含义
  6. python字典嵌套列表_Python 字典 列表 嵌套 复杂排序大全
  7. 如何查看80端口是否被占用
  8. Java 基础 之 Valid 验证
  9. ESP8266(ESP-12F)案例实操 -- 8x32点阵显示(MAX7219)
  10. Hologres笔记