*本文中码指代候选码,主属性为构成码的属性。

先简要引入几个概念

图1

图2

单拿出来我认为不是很好理解的3NF和BCNF详细的说说。

书上写了,BCNF是完善后的3NF。从图2中显然得出,1-3NF都是规范非主属性与码之间的关系。而主属性之间的关系没有规范。有人说了 ,要是构成码的主属性之间存在部分函数依赖或传递函数依赖,那么这就不是码,是超码了。too young!谁告诉你码必须是一个了?比方说AB->C,BC->A,此时AB、BC都是码即ABC都是主属性。所以ABC之间有什么函数依赖不在1-3NF的约束之内。所以需要有BCNF来约束主属性之间的函数依赖了。

举个例子,R={AB->C,BC->A,C->A},R的码为AB、BC,故主属性为ABC,R为3NF。但是函数依赖C->A,决定因素C不包含码BC故R不是BCNF。

【范式与函数依赖】3NF与BCNF的区别的更多相关文章

  1. 关系模式范式分解教程 3NF与BCNF口诀

    https://blog.csdn.net/sumaliqinghua/article/details/86246762 [通俗易懂]关系模式范式分解教程 3NF与BCNF口诀!小白也能看懂原创置顶 ...

  2. [MySQL] 关系型数据库的设计范式 1NF 2NF 3NF BCNF

    一.缘由: 要做好DBA,就要更好地理解数据库设计范式.数据库范式总结概览: 为了更好地理解数据库的设计范式,这里借用一下知乎刘慰老师的解释,很通俗易懂.非常感谢!   二.具体说明: 首先要明白”范 ...

  3. 数据库范式:1NF,2NF,3NF,BCNF浅析

    在设计与操作维护数据库时,最关键的问题就是要确保数据能够正确地分布到数据库的表中.使用正确的数据结构,不仅有助于对数据库进行相应的存取操作,还可以极大地简化应用程序中的其他内容(查询.窗体.报表.代码 ...

  4. 数据库范式1NF 2NF 3NF BCNF(实例)通俗易懂的讲解

    [转] 数据库范式1NF 2NF 3NF BCNF(实例)通俗易懂的讲解     本文对大多数初学数据库原理的同学绝对是个大福利,哈哈,完完整整的看完此篇博文一定能够清晰地理解数据库的四大范式.    ...

  5. 数据库的范式(1NF、2NF、3NF、BCNF)转载

    文章属于转载:https://www.cnblogs.com/hi-bazinga/archive/2012/06/05/2536806.html 第一范式:关系模式中,每个属性不可再分.属性原子性第 ...

  6. 转!!数据库 第一范式(1NF) 第二范式(2NF) 第三范式(3NF)的 联系和区别

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

  7. sql 范式:1NF、2NF、3NF、BCNF(函数依赖)

    第一范式(1NF) 每个属性都是不可分的基本数据项.(必须有主键,列不可分) eg:非第一范式的表:(列可再分) 学院名称 高级职称人数 教授 副教授 信电学院 3 34 管理学院 5 23 外语学院 ...

  8. 数据库求闭包,求最小函数依赖集,求候选码,判断模式分解是否为无损连接,3NF,BCNF

    1.说白话一点:闭包就是由一个属性直接或间接推导出的所有属性的集合. 例(1):   设有关系模式R(U,F),其中U={A,B,C,D,E,I},F={A→D,AB→E,BI→E,CD→I,E→C} ...

  9. 数据库范式1NF 2NF 3NF详细阐述

    范式:关系数据库中的关系是要满足一定要求的,满足不同程度要求的不同范式.满足最低要求的叫第一范式,简称1NF ,在第一范式中满足进一步要求的为第二范式,其余以此类推.通俗来说是满足数据库关系表中的一套 ...

随机推荐

  1. Inception Score

    转载 https://www.jiqizhixin.com/articles/2019-01-10-18    全面解析Inception Score原理及其局限性 https://blog.csdn ...

  2. 吴裕雄--天生自然C++语言学习笔记:C++ 数据抽象

    数据抽象是指,只向外界提供关键信息,并隐藏其后台的实现细节,即只表现必要的信息而不呈现细节. 数据抽象是一种依赖于接口和实现分离的编程(设计)技术. 它们向外界提供了大量用于操作对象数据的公共方法,也 ...

  3. Node.js NPM 介绍

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json NPM ...

  4. 微信小程序拒绝授权后提示信息以及重新授权

    wx.authorize({ scope: 'scope.writePhotosAlbum', success() { // 授权成功 wx.saveImageToPhotosAlbum({ file ...

  5. 外部 Storage Provider【转】

    如果 Kubernetes 部署在诸如 AWS.GCE.Azure 等公有云上,可以直接使用云硬盘作为 Volume,下面是 AWS Elastic Block Store 的例子: 要在 Pod 中 ...

  6. 77.Q表达式详解

    Q表达式可以包裹查询条件,可以在多个条件之间进行操作:与或非等.Q表达式一般会放在filter()中进行使用,F表达式一般是放在update()中进行使用. 定义模型的models.py文件中,示例代 ...

  7. 2.7 app的本地化(根据手机的系统进行语言切换)

    首先设计一个基本的界面:系统默认为英文 如图所示: 找到如下路径: res/values/strings/strings.xml 如图所示: 然后点击右上方的open editor 添加需要的字符串如 ...

  8. 使用DOM4J生成XML文档

    package xml; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; imp ...

  9. UVA 11992 懒惰标记应用

    这个题目要求和 还有 设置区间值 区间增值,明显要用线段树来 由于行数不超过20 而列数多达 10^5,所以对每一行建一棵线段树. 然后主要是在懒惰标记方面是难点 针对两种操作 分别设置 set 和 ...

  10. mini2440 裸机程序,下载到nand 里面,复制到 sdram 中不运行

    按照韦东山的视频中 sdram的裸机代码,写了一份,通过 minitools 下载到 0x30000000,然后烧录到 nand中,接过不能正常运行. 尝试过多种方法后,只有一种解决方法,就是不要用 ...