实体:客观存在并可相互区别的事物称之为实体。常用于表示一个人、地方、某样事物或某个事件。

关系:关系表示一个或多个实体之间的联系。

属性:属性为实体提供详细的描述信息。

主属性:一个属性只要在任何一个候选码中出现过,这个属性就是主属性。

非主属性:与上面相反,没有在任何候选码中出现过,这个属性就是非主属性。

码:码也被称作是关键字。它可以唯一标识一个实体。

候选码:如果一组属性集能唯一地标识一个关系中的元组而又不含有多余的属性,则称该属性集为该关系的候选码 。(候选码可能不止有一个)

主码:用户选定的那个候选键称为主键。

外码:一个属性(或属性组),它不是码,但是它别的表的码,它就是外码。

元组:除含有属性名所在的行之外的其他行称之为元组。

分量:元组的某个属性值。

关系模式:关系名和其属性集合的组合称之为关系模式。如:课程关系表(课程号,课程名,学时)。

关系模型:关系模式组成的集合。

域:关系模型要求元组的每一个分量都是原子性的,也就是说,它必须属于某种元素类型,如Integer、String等等,不能是列,集合,记录,数组。域就代表着该元组中每个分量的类型。

第一范式(1NF)

每一个属性都不可再分。

所谓第一范式(1NF)是指在关系模型中,对域添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。

说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的设计基本要求,一般设计中都必须满足第一范式(1NF)。

在下面这个例子中,电话这个属性分了,故而不属于第一范式(1NF)。

满足第一范式(1NF)应该是

第二范式(2NF)

关系R是1NF,且每个非主属性都完全函数依赖于R的键。

在1NF的基础上,非码属性必须完全依赖于码,在1NF基础上消除非主属性对主码的部分函数依赖。

第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或记录必须可以被唯一地区分。选取一个能区分每个实体的属性或属性组,作为实体的唯一标识。例如在员工表中的身份证号码即可实现每个一员工的区分,该身份证号码即为候选键,任何一个候选键都可以被选作主键。在找不到候选键时,可额外增加属性以实现区分,如果在员工关系中,没有对其身份证号进行存储,而姓名可能会在数据库运行的某个时间重复,无法区分出实体时,设计辟如ID等不重复的编号以实现区分,被添加的编号或ID选作主键。(该主键的添加是在ER设计时添加,不是建库时随意添加)。

第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。

下面这个例子中,员工信息和部门信息。

一个员工属于一个部门,一定属于某个领导,所以有(姓名,部门)—领导,所以(姓名,部门)是一个码,

一个(部门),必定对应一个领导,并不需要依赖姓名,这就是不完全依赖,或者可以说部分依赖,如果员工表离职了,会将部门和领导同时删除。

应该拆分为员工表

和部门领导关系表

第三范式(3NF)

R是2NF,且它的任何非键属性都不传递依赖于任何候选键。

在1NF基础上,任何非主属性不依赖于其它非主属性,在2NF基础上消除传递依赖。

第三范式(3NF)是第二范式(2NF)的一个子集,即满足第三范式(3NF)必须满足第二范式(2NF)。第三范式(3NF)要求一个关系中不包含已在其它关系已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性,也就是在满足2NF的基础上,任何非主属性不得传递依赖于主属性。

继续上面的例子,如果一个领导被撤职了,那么他领导的这个部门其实是还在的,那么其实应该还分解出一张部门表。

转载于:https://www.cnblogs.com/wangrui1587165/p/10065893.html

关系型数据库-三范式相关推荐

  1. python学习笔记 day44 数据库三范式

    参考自 https://www.cnblogs.com/wangfengming/articles/7929118.html 1. 数据库三范式概念: 为了建立减少冗余,结构合理的数据库,涉及数据库时 ...

  2. 如何在数据库三范式的基础上进行数据库冗余设计

    数据库设计过程中不仅要考虑遵循第三范式,还要考虑是否冗余 很多数据库设计书籍都强调数据库设计三范式,而三范式的一个重要工作就是消除冗余,可以消除冗余在大多数情况下是正确的.当在实际的业务模型中,处理复 ...

  3. 为什么我不喜欢数据库三范式

    插曲 最近,一个远房亲戚的小表弟准备选修专业 找到我问: "哥,现在学数据库有没有前途阿?""当然有啊,前途大大的呢""那我现在开始学数据库,需要先从 ...

  4. MySQL笔记(七)数据库三范式

    这是我在学习Mysql之路上做的笔记,今天将它粘出来.这一篇主要是数据库三范式.有错误的欢迎大家指出... 数据库三范式 (1)第一范式(1NF): 定义:每一列都是不可分割的原子数据项(强调的是列的 ...

  5. 数据库三范式 无重复列 完全依赖主键 属性不依赖非主属性

    参考:http://www.cnblogs.com/xrq730/p/5100442.html 细说数据库三范式 2.1 第一范式(1NF)无重复的列,保证每列的原子性,即每一列的各个属性值之间不能有 ...

  6. 三句话归纳数据库三范式

    数据库三范式,网友已经总结n多了,这里不再赘述. 其实,归纳起来,就三句话: 一:行不可再分 二:列不可再分 三:列不可重复

  7. 从数据库三范式角度分析一对多、多对多和一对一关系

    文章目录 前言 一.三范式的目的 二.三范式及其对应关系 1.第一范式 2.第二范式 3.第三范式 4.一对一关系 总结 前言 几乎绝大多数项目的最终目的都是通过操作数据库来实现的,所以,操作数据库的 ...

  8. 数据库三范式通俗理解 -数据库三范式官方定义

    数据库三范式 官方定义 第一范式(1NF):数据库表中的字段都是单一属性的,不可再分. 第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖 第三范式(3NF):在第二范式的 ...

  9. MySql——数据库三范式

    用于自己学习时的简单解释 数据库三范式:是数据库的设计原则,主要目的是为了避免数据冗余. 数据库的设计应当遵循三范式 第一范式:任何一张表都应该有主键,每一个字段必须具有原子性不可再分 第二范式:在第 ...

最新文章

  1. Google 在印度建立 AI 实验室,致力于农业、医疗、教育
  2. ubuntu 安装 talib
  3. 谈一个优秀的美工需要掌握哪些技能
  4. python中long类型的取值范围_java基本数据类型取值范围
  5. 解决Qt graphis-view框架中,上层图元接收hover事件导致底层图元接收不到的问题
  6. SpringBoot 之环境搭建
  7. linux内核是否支持nfs,嵌入式命令:查看设备是否支持nfs
  8. 王思聪连收3条限制消费令后,债主回应:对于他是小钱,对于我们可是巨款
  9. idea 关闭检查更新_Intellij idea的抑制警告(SuppressWarnings)列表(正在持续更新)
  10. [老生常谈] Linux 下读取windows共享目录
  11. volley全然解析
  12. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_1_线程状态概述...
  13. 微信永久封禁:从入门到精通
  14. 如何压缩PDF文件、图片转PDF、PDF合并拆分!!!!
  15. 水下声学的基本声学量介绍
  16. neo4j 初始密码
  17. [Web端接入经验分享] 腾讯云即时通信TIM、实时音视频TRTC
  18. 开启邮箱的SMTP服务获取授权码(QQ邮箱、163邮箱)
  19. 网络游戏引入人工智能:游戏玩家并非真人
  20. java毕业设计——基于Java+Java ME的无线网络移动端的俄罗斯方块游戏设计与实现(毕业论文+程序源码)——俄罗斯方块游戏

热门文章

  1. 滴滴成立AI Labs 加大人工智能领域投入
  2. 刚毕业就能拿到56万年薪?对!看看Twitter机器学习大牛写给你的进阶手册吧
  3. 英特尔科再奇:AI战略决定每家企业的未来胜负
  4. Docker 图形化页面管理工具使用
  5. Spring Validation最佳实践及其实现原理,参数校验没那么简单!
  6. 主宰这个世界的10种算法
  7. 深入浅出Yolo系列之Yolov3amp;Yolov4核心基础知识完整讲解
  8. TensorFlow2.0 系列开篇: Windows下GPU版本详细安装教程
  9. 五年之内博士会开始内卷吗?
  10. 05后都上清华了!首批丘成桐数学领军人才名单发布,三位菲尔兹奖得主为其授课,周末就来学校报到...