文章目录

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

一,超码、主码、候选码之间的定义与联系

码是数据系统中的基本概念

它包括超码,候选码,主码

(1)超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。
如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。

(2)候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合,候选码是最小超码,它们的任意真子集都不能成为超码
如果K是超码,那么所有包含K的集合都不能是候选码
如果K,J都不是超码,那么K和J组成的集合(K,J)有可能是候选码

(3)主码是从多个候选码中任意选出一个做为主码,如果候选码只有一个,那么候选码就是主码。
虽然说主码的选择是比较随意的,但在实际开发中还是要靠一定的经验,不然开发出来的系统会出现很多问题。一般来说主码都应该选择那此从不或者极少变化的的属性。

二,函数依赖、

函数依赖简单点说就是:某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。

(1)完全函数依赖
存在 X 属性集(注意是集合,说明是联合主键)决定 唯一的 Y ,且 X 中的任一子集都不能决定 唯一的 Y,则 Y 完全依赖于 X。

学生数学成绩完全由该学生的学号和数学课决定,所以数学课成绩完全依赖于(学号,数学课)

(2)部分函数依赖
X 的属性集中任一子集可以决定唯一的 Y

学生学号和姓名可以决定唯一的学生,但是学生号也可以决定唯一的学生

(3)传递函数依赖
设 R 为任一给定关系, X Y Z 为其不同的属性子集,若 X —> Y, Y 不决定 X 且 Y —>Z,则有 X —>Z,称为 Z 传递函数依赖于 X

书的出版编号是唯一,版权归出版社所有,所以只能由该出版社出版、 书出版编号—>出版社名,出版社名—>出版社地址

三,三大范式

首先要明白,范式的包含关系。一个数据库设计如果符合第二范式,一定也符合第一范式。如果符合第三范式,一定也符合第二范式…

第一范式(1NF):

属性不可分

第二范式(2NF):

符合1NF,并且,非主属性完全依赖于码。一个候选码中的主属性也可能是好几个。如果一个主属性,它不能单独做为一个候选码,那么它也不能确定任何一个非主属性。
2NF要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。

假设存在如下决定关系:
(学号, 课程名称) → (姓名, 年龄, 成绩, 学分) 这个数据库表不满足第二范式,因为存在如下决定关系:
(课程名称) → (学分)
(学号) → (姓名, 年龄)

即存在组合关键字中的字段决定非关键字的情况。

第三范式(3NF):

在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系:
关键字段 → 非关键字段x → 非关键字段y

假定学生关系表为 Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话)
,关键字为单一关键字"学号",因为存在如下决定关系:
(学号) → (姓名, 年龄, 所在学院, 学院地点, 学院电话) 这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:
(学号) → (所在学院) → (学院地点, 学院电话)
即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递函数依赖。

BCNF

在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合第三范式。
符合3NF,并且,主属性不依赖于主属性

数据库第一范式1NF,第二范式2NF,第三范式3NF详解相关推荐

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

    数据库第一范式,第二范式,第三范式详解 基础知识 实体:现实世界中客观存在并可以被区别的事物.比如"一个学生"."一本书"."一门课"等等. ...

  2. 数据库中1NF,2NF,3NF的判别

    数据库中1NF,2NF,3NF的判别 标签: 数据库 范式 首先知道两个依赖: 1.完全依赖 比如(x,y)->z并且x或者y都不能单独得到z,则z是对(x,y)的完全依赖. 2.部分依赖 比如 ...

  3. 数据库|第一范式、第二范式、第三范式、BC范式、第四范式简单理解

    数据库|第一范式.第二范式.第三范式.BC范式.第四范式简单理解 在设计数据库的时候,虽说将我们要的数据正确完整导入数据库是很关键的,但是对于数据库的设计者来说,如何将大量数据合理有效正确地导入数据库 ...

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

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

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

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

  6. 数据库三大范式是什么?(3NF详解)

    什么是范式? 范式是数据库设计时遵循的一种规范,不同的规范要求遵循不同的范式. 最常用的三大范式 第一范式(1NF):属性不可分割,即每个属性都是不可分割的原子项.(实体的属性即表中的列) 第二范式( ...

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

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

  8. 数据库随笔-1NF,2NF,3NF详解

    数据库随笔-1NF,2NF,3NF详解 基础概念 通过表的更新来举例说明 总结 基础概念 1. 第一范式(1NF):每一列都是不可分割的原子数据项 2. 第二范式(2NF):在1NF的基础上,非码属性 ...

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

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

最新文章

  1. 把你手机里的照片秒变3D!Facebook训练了一个CNN端到端系统
  2. 潘建伟团队进行人类首次洲际量子通信,给奥地利发去了什么?
  3. 介绍一个.Net资源站点
  4. 3D模型“换皮肤”有多简单?也就一句话的事
  5. TP5 实现多字段的关键词模糊查询
  6. 数组中其余的排除_胆码中26,或许这样选号更容易中奖!双色球055期红球胆码+大底!(附实战精选)...
  7. 信息系统项目管理师论文范文-干系人管理
  8. c语言课程描述英文版,c语言学生选课系统(国外英文资料).doc
  9. pg多线程更新会发生死锁_何时用多线程?多线程需要加锁吗?线程数多少最合理?...
  10. Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法。
  11. cassandra 数据库_使用Apache Cassandra构建分布式NoSQL数据库
  12. C++判断进程id是否存在
  13. GaussDB(openGauss)宣布开源,性能超越 MySQL 与 PostgreSQL
  14. obs计算机丢失,安装obs时提醒没法启动此程序,因为计算机丢失
  15. pi/4QPSK调制解调原理
  16. 倒立摆状态反馈控制——分析、建模与仿真(matlab)
  17. 微信扫一扫不能打开APK下载链接的问题
  18. ctf-web-never_give_up
  19. 水果忍者腾讯版 v1.0.2 官方安卓版下载
  20. AST使用eval运行函数,更换数值

热门文章

  1. 无线充电Qi通信协议分析-转载
  2. 计算机控制电缆 规范,控制电缆和计算机电缆安全CQC认证要求变更的通知
  3. 国家专利有什么价值?
  4. 通过R语言做灰色预测
  5. 统计学的Python实现-010:四分位距
  6. 优达学城机器学习之--聚类(Cluster)
  7. 读写文件操作OpenFile()
  8. TensorFlow Mnist数据集下载问题
  9. qq空间动态设置在哪?
  10. C51单片机基础之串口编程实战