用数据库搭建范式大白话来回顾一下什么是三范式:

第一范式:每个表应该有唯一标识每一行的主键。

第二范式:在复合主键的情况下,非主键部分不应该依赖于部分主键。

第三范式:非主键之间不应该有依赖关系。

这是我们设计数据库的基本规则,但是只有这三个规则并不能完全解决数据的增删改的异常情况,下面就来看看BC范式的例子。

BC范式

BC范式(BCNF)是Boyce-Codd范式的缩写,其定义是:在关系模式中每一个决定因素都包含候选键,也就是说,只要属性或属性组A能够决定任何一个属性B,则A的子集中必须有候选键。BCNF范式排除了任何属性(不光是非主属性,2NF和3NF所限制的都是非主属性)对候选键的传递依赖与部分依赖。

比如我们有一个学生导师表,其中包含字段:学生ID,专业,导师,专业GPA,这其中学生ID和专业是联合主键。

StudentId Major Advisor MajGPA
1 人工智能 Edward 4.0
2 大数据 William 3.8
1 大数据 William 3.7
3 大数据 Joseph 4.0

这个表的设计满足三范式,有主键,不存在主键的部分依赖,不存在非主键的传递依赖。但是这里存在另一个依赖关系,“专业”函数依赖于“导师”,也就是说每个导师只做一个专业方面的导师,只要知道了是哪个导师,我们自然就知道是哪个专业的了。

所以这个表的部分主键依赖于非主键部分,那么我们可以进行以下的调整,拆分成2个表:

学生导师表:

StudentId Advisor MajGPA
1 Edward 4.0
2 William 3.8
1 William 3.7
3 Joseph 4.0

导师表:

Advisor Major
Edward 人工智能
William 大数据
Joseph 大数据

其实还有第四范式,而第四范式的定义也很简单:已经是BC范式,并且不包含多值依赖关系。这样就好理解里面的各种数值关系。

数据库搭建范式——BC范式相关推荐

  1. 4.MYSQL 三大范式+BC范式

    前言 首先,你得知道范式是干啥的? 范式就是规范我们建表的依据,为后续的增删改查提高安全保障 正文 come on~~~~~~ 第一范式 第一范式:所有属性都是不可分割的原子值. 也就是每个属性都是不 ...

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

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

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

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

  4. 3.6.2数据库系统-范式判断:范式分类、第一范式、第二范式、第三范式、BC范式

    3.6.2数据库系统-范式判断:范式分类.第一范式.第二范式.第三范式.BC范式 范式分类 第一范式 例题 第二范式 例题 第三范式 例题 BC范式 例题 范式分类 逐步优化以解决问题:插入异常.删除 ...

  5. 数据库三大范式、BC范式、第四范式

    目录 第一范式(1NF):原子性(存储的数据应该具有"不可再分性") 第二范式(2NF):唯一性 (消除非主键部分依赖联合主键中的部分字段)(一定要在第一范式已经满足的情况下) 第 ...

  6. 对数据库三大范式及BC范式的理解

    1.第一范式:数据库的字段是单一属性,不可再分 不能是复合属性,如果存在,应该拆分为多个属性 不能是多值属性,如果存在,应该建立一个实体,而让此属性与其存在1对多的关系) 不能是重复属性 2.第二范式 ...

  7. 数据库的范式,第一、二、三、四、五范式、BC范式,为什么分不清

    这件事,怪我. 数据库范式 的 来历 数据库的规范化(上一篇博客有写到)的程度不同,便有了这么多种范式.数据库范式是数据库设计必不可少的知识,没有对范式的理解,就无法设计出高效率.优雅的数据库,甚至设 ...

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

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

  9. 数据库关系范式——第一范式、第二范式、第三范式、BC范式【通俗易懂,博主会讲人话】

    范式:是符合某一种级别的关系模式的集合. 说白了,就是对关系模式的一种规范化. 范式分为:第一范式.第二范式.第三范式.BC范式.第四范式.第五范式.后面两种在这里不讨论. 1.第一范式(1NF):关 ...

最新文章

  1. bzoj1089 [SCOI2003]严格n元树(dp+高精)
  2. C# ckeditor+ckfinder的图片上传配置
  3. python pip install virtualenv时注意事项:需使用root权限 否则报virtualenv命令找不到
  4. html自动执行的事件,js自执行事件
  5. [蓝桥杯][2013年第四届真题]大臣的旅费(树的直径)
  6. OD汇编指令集(不断更新)
  7. 【LeetCode】3月17日打卡-Day2
  8. 中国程序员的前景并非一片黑暗,教你如何拥有光明的前程
  9. 53 SD配置-定价配置-定义条件排斥组
  10. views 多个文件夹 netcore_优化 .net core 应用的 dockerfile
  11. ZooKeeper官方文档学习笔记03-程序员指南
  12. Cannot load 64-bit SWT libraries on 32-bit JVM 解决方法
  13. IBM的ITIL管理解决方案
  14. 从事计算机工作的应该,未来想从事计算机方面的工作,现在应该学习些什么东西?...
  15. 端到端车道线检测_如何使用Yolov5创建端到端对象检测器?
  16. input标签详解,用户注册表单
  17. 十三年来,淘宝走过的大数据之路
  18. 只需7步,魔方6面即刻还原!
  19. R语言可视化回归模型的残差直方图并进行残差分析(Histogram of Residuals)
  20. 离散信号内插和抽取Matlab,抽取与内插的频谱分析

热门文章

  1. 百度JS实现文本语音朗读
  2. 淘宝美工设计需要掌握什么技能 ?小白如何快速学会美工设计?
  3. 动态令牌主要功能是什么???
  4. 关于bitamap旋转图片全黑
  5. 鼠标右键点击文件夹、bat文件、txt文档,指针出现假死转圈的解决方法(Adobe Acrobat右键邮件选项引起的win10假死)
  6. 2023年安徽省职业院校“磐云杯”网络安全竞赛任务书
  7. 基于微信小程序的毕业设计题目(22)php有声读物音频播放小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  8. python批量打印mathcad_快速批量打印软件 – Print Conductor 6.1
  9. windows系统运维基础
  10. java定义苹果类Apple_定义一个水果接口Fruit,里面定义一个表示吃水果的eat方法。定义一个苹果类Apple和一个橘子...