关键码:

  1. 超键:在关系中能唯一标识元组的属性或属性集称为关键模式的超键。
  2. 候选键:不含有多余属性的超键称为候选键。也就是在候选键中在删除属性就不是键了。
  3. 主键:用户选作元组标识的候选键称为主键。一般不加说明,键就是指主键。
  4. 外键:如果模式R中属性K是其他模式的主键,那么K在模式R中称为外键。

函数依赖关系:

存在关系:

R(学号,姓名,性别,班级,班主任,课号,课名,成绩)

主键:学号,课号

主属性:{学号,课号}

非主属性:{姓名,性别,班级,班主任,课名,成绩}

  1. 完全函数依赖,{学号,课号}-->成绩,{学号,课号}可以决定成绩,但只有学号或是只有课号无法决定成绩。
  2. 部分函数依赖,{学号,课号}-->姓名,只有学号就能决定姓名   (课号是冗余的)  。
  3. 传递函数依赖,{学号,课号}-->班主任,班主任依赖于班级,因班级依赖于学号,所以班主任间接依赖于学号。

第一范式(1NF)

数据库的每一列都是不可分割的基本数据项,强调列的原子性。即列不可以再拆分。反例:

ID 姓名 联系方式
    电话 邮箱
1 张三 188XXXXXXXX XXX@163.COM

第二范式(2NF)

建立在第一范式的基础上,每一个非主属性要完全函数依赖于候选键(或者说是主键,任一个候选键都可以做主键)。即非主键列完全依赖于主键,而不能是依赖于主键的一部分,必须满足两个条件:

  1. 必须有一个主键。
  2. 没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。

第三范式(3NF)

建立在第二范式的基础上,任何非主属性不依赖于其它非主属性。即每一个非主属性都不传递依赖于该范式的候选键。即非主键列只依赖于主键,不依赖于其他非主键。

BC范式(BCNF)

建立第三范式的基础上,任何非主属性不能对主键子集依赖。即数据库表中如果不存在任何字段对任一候选键的传递函数依赖则符合BC范式。

总结:

1NF消去对主键的部分函数依赖后=2NF。

2NF消去对主键的传递函数依赖后=3NF。

3NF消去对候选键的部分函数依赖和传递函数依赖后 = BCNF。

BCNF是对3NF的改进,即在3NF的基础的又把范围从主码扩大为候选码。

第一范式、第二范式、第三范式、BCNF范式的区别相关推荐

  1. MySQL (4) 第一范式 第二范式 第三范式 BC范式

    第一范式 第一范式:所有属性都是不可分割的原子值. 也就是每个属性都是不可再分的. 例如下图就不符合第一范式的要求 实际上,1NF是所有关系型数据库的最基本要求,你在关系型数据库管理系统(RDBMS) ...

  2. 第一范式 第二范式 第三范式 BC范式

    第一范式 第一范式:所有属性都是不可分割的原子值.  也就是每个属性都是不可再分的.  例如下图就不符合第一范式的要求   实际上,1NF是所有关系型数据库的最基本要求,你在关系型数据库管理系统(RD ...

  3. 第一范式第二范式第三范式学习笔记

    三楚白云生佛手,九江寒月照禅心. --李日华<佛手岩> 文章目录 前言 一.第一范式(1NF) 二.第二范式(2NF) 三.第三范式(3NF) 四.参考学习视频 五.名词解释&知识 ...

  4. 第一范式 第二范式 第三范式理解

    数据库中设计一个好的标准化范式能大大减少数据冗余,增强数据的易操作性. 范式的演变: 第一范式:表中没有重复数据组 属性不可以再分,具有一个主键(主键组) 例如: 出现从重复的数据组,把它转换为第一范 ...

  5. 数据库 部分函数依赖 完全函数依赖 传递函数依赖 第一范式、第二范式、第三范式、BCNF范式区别

    数据库 部分函数依赖 完全函数依赖  传递函数依赖  第一范式.第二范式.第三范式.BCNF范式区别 在理解函数依赖之前,先来看一下函数依赖分析: 在关系中,包括在任何候选码中的属性称为主属性:不包括 ...

  6. 第一范式,第二范式,第三范式,BCNF范式理解

    基础知识 实体:现实世界中客观存在并可以被区别的事物.比如"一个学生"."一本书"."一门课"等等.值得强调的是这里所说的"事物& ...

  7. 数据库第一范式、第二范式、第三范式、BCNF范式

    文章目录 什么是"范式(NF)" 1. 第一范式(1NF) 2. 第二范式(2NF) 2.1 函数依赖 2.1.1完全函数依赖 2.1.2 部分函数依赖 2.2 码 2.3 非主属 ...

  8. 关于1NF、2NF、3NF、BCNF范式

    首先要明白"范式(NF)"是什么意思.按照教材中的定义,范式是"符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度".很晦涩吧?实际上 ...

  9. mysql中bcnf_请问数据库设计中BCNF范式是什么意思?

    展开全部 BCNF范式在3NF基础上消除对主码子集的62616964757a686964616fe78988e69d8331333431373230依赖. 以仓库管理关系表为例:仓库号,存储物品号,管 ...

  10. 数据库,部分函数依赖,传递函数依赖,完全函数依赖,三种范式的区别

    要讲清楚范式,就先讲讲几个名词的含义吧: 部分函数依赖:设X,Y是关系R的两个属性集合,存在X→Y,若X'是X的真子集,存在X'→Y,则称Y部分函数依赖于X. 举个例子:学生基本信息表R中(学号,身份 ...

最新文章

  1. 计算机的c盘是硬盘吗,c盘是硬盘吗
  2. error: declaration of 'cv::Mat R ' shadows a parameter
  3. 记录前端浏览器常见错误SyntaxErro或GET http://xxx/xxx (Not Found)等
  4. 前端如何正确使用中间件?
  5. HDU - 1723 - Distribute Message
  6. JSP 获得服务器时间和浏览器时间
  7. java getrealpath_JavaEE路径陷阱之getRealPath
  8. 20-50k,杭州小影科技社招
  9. activemq后台管理 看topic消息_17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列...
  10. srsLTE源码学习:安全证书polarssl
  11. linux下c语言版线程池
  12. mifi随身wifi选购
  13. matlab安装与下载
  14. MWEC:一种基于多语义词向量的中文新词发现方法
  15. CPU处理器IO接口小结
  16. rk1808交叉编译opencv_ubuntu16.04交叉编译opencv 移植到rk1808上
  17. python爬虫爬微信数据可信吗_我用 Python 爬取微信好友,最后发现一个大秘密
  18. 最热门的10个美食公众号推荐
  19. iamp是什么意思计算机网络,pop3和imap什么意思
  20. 勒索病毒SARA,请勿用于非法用途。

热门文章

  1. CYQ.Data V5 分布式自动化缓存设计介绍
  2. 微信转账2020假图片_微信头像图片2020独一无二
  3. bind服务器响应,DNS和Bind服务器
  4. QTcpSocket网络通讯多客户端功能
  5. 单目标跟踪、多目标跟踪、单目标跟踪发展现状、多目标跟踪发展现状
  6. 【PIC单片机】-- LCD的相关知识
  7. 树莓派4B安装配置LibreELEC并连接到三星电视
  8. 梯度散度旋度常用基本关系
  9. 最新抖音视频无水印解析接口-突破频率限制
  10. python逻辑编程题_python逻辑取反