范式很重要呀,我们关系数据库的设计都要满足范式关系
这里总结一下1NF,2NF,3NF和BCNF

1.第一范式(1NF)

定义

(1NF, Normal Form) 如果一个关系模式R中的每个属性A的域值都是原子的,即属性值是不可再分的,则关系模式R属于第一范式,简记为R ∈ 1NF。若数据库模式R中的每个关系模式都是1NF,数据库模式 R∈1NF。

这个非常好理解,基本上,只要题目给了,他就是一个满足第一范式的关系模式


2.第二范式(2NF)

定义

2NF指的就是,我们的关系模式中的所有非主属性完全依赖于每个键。什么意思呢,这里呢最重要的是理解什么是非主属性,什么是主属性,什么是

推荐看另外一个博客的总结,理解一下键的含义: https://blog.csdn.net/fjxcsdn/article/details/76549751
看我之前写的博客理解完全依赖和部分依赖的含义: 数据库基础(3)函数依赖-平凡依赖,完全依赖,部分依赖,传递依赖
那非主属性和主属性怎么理解呢,举个例子:关系模式R={A,B,C,D} ,已知R的候选键是AD , 那么AD中的A和D就是主属性,而B和C就是非主属性。包含在候选键里的属性就是主属性!

现在理解键和依赖关系的含义之后,我们就可以好好看看2NF是个什么了

举例子1:

已知,R={A,B,C},函数依赖集为 F ={ B →C, AC →B } ,判断关系模式是不是2NF

那么我们首先看这个R关系模式里面的键是谁

利用数据库基础(4)中我们学习的属性闭包算法求出R的候选键为:AC

所以第二步 就是看是否有非主属性部分依赖于主属性AC (我们这里的非主属性就是B)

很明显并没有B部分依赖于A或者C ,所以R是2NF

举例子2

已知,R={A,B,C,D},函数依赖集为F ={ A →C,AD →B },判断关系模式是不是2NF

和第一个例子一样,我们首先看这个R中的键是谁

用属性闭包算法,求出R的候选键为:AD (AD+ = ABCD) ,所以C和B都是非主属性,A和D是主属性

所以,很明显,我们发现 AD中的A竟然可以单独决定C(A->C),所以C部分依赖于AC ,存在非主属性部分依赖于主属性,R不是2NF


3.第三范式(3NF)

定义

第三范式的意思就是,R中没有非主属性传递依赖于R的键,R才是3NF

这里也隐含了一个条件,那就是,如果是R中的主属性传递依赖于R的键,那么R也是满足3NF的

注意区分主属性传递依赖和非主属性传递依赖喔

举例子1

已知R(A,B,C), 其函数依赖集为 F ={ B →C, AC →B };该关系模式是否第3范式

我们来判断判断,首先第一步,找键!我们发现AC是候选键(AC+=ABC,通过属性闭包算法求的候选键)

同时由于AC->B , B->C ,所以C传递依赖于AC ,那么R是不是3NF呢?

R 当然是3NF啦,因为R的候选键是AC,所以C是主属性,因此 这里是主属性C传递依赖于键AC,R是3NF

注意!只有当非主属性传递依赖于R的时候,R才不是3NF

举例子2

R(A,B,C,D), 其函数依赖集为 F ={AB →C, C →D };该关系模式是否第3范式

首先第一步,还是找键! 发现AB是候选键, 但是由于AB -> C , C -> D ,所以D传递依赖于AB

那么R是3NF吗?

R当然不是3NF啦,因为D是非主属性,所以这里是非主属性D传递依赖于主属性AB,因此就不满足3NF的定义啦


4.Boyce-Codd范式(BCNF)

定义

BCNF最高级了,它指的是R中没有任何属性传递依赖于R中的任何一个键。所以联想到上面我们3NF中的举例1,它虽然满足3NF,但是由于有主属性传递依赖于键,它就不是BCNF。

看例题,判断是几范式

很明显,两个都是BCNF,因为都没有任何属性存在传递依赖

最后说一下,满足BCNF的关系模式,肯定也满足3NF;同理,满足3NF的关系模式,肯定也满足2NF

数据库基础(5)1NF,2NF,3NF,BCNF 四大范式的定义和判别相关推荐

  1. 数据库范式解析(1NF 2NF 3NF BCNF)

    数据库设计范式是关系型数据库的设计准则.其目的在于通过规划设计使得数据库结构合理,尽量减少数据冗余,消除存储异常,方便数据的插入.更新和删除操作.目前常用范式包括1NF(第一范式).2NF(第二范式) ...

  2. 【数据库】范式理解:1NF,2NF,3NF,BCNF,4NF详析

    数据库入门(一)范式理解:1NF,2NF,3NF,BCNF,4NF详析 引言 范式种类 第一范式(1NF) 符合1NF的关系中的每个属性都不可再分 存在问题 第二范式(2NF) 在1NF基础上消除了非 ...

  3. 数据库范式1NF 2NF 3NF BCNF

    设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合.构造数据库必须遵循一定的规则.在关系数据库中,这种规则就是范式.关系数据库中的关系必须满足一定的要求,即满足不同的范 ...

  4. 数据库六种范式详解(1NF/2NF/3NF/BCNF/4NF/5NF)

    目录 数据库的基本概念 函数依赖 函数依赖的定义 函数依赖与属性的关系 六种范式 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) 巴斯-科德范式(BCNF,Boyce-Codd Norma ...

  5. 数据库范式判定(1NF 2NF 3NF BCNF 区别)

    *考试复习周怕忘了再写一个备忘 * 1.范式概念 关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式 1)1NF 满足最低要求的范式 2) 2NF 满足1NF,且每一个非主属性完全函数 ...

  6. 数据库规范化 (1NF, 2NF, 3NF, BCNF)

    先记录几个概念 超键: 超键类似主键, 通过"超键", 我们可以一次性定位到某一条准确的数据上; 候选键: 候选, 即"主键"的候选; 超键是可以由多个属性来组 ...

  7. 理解数据库 1NF 2NF 3NF BCNF

    参考文章写的非常不错,给自己解惑了 参考文章: https://www.zhihu.com/question/24696366 首先是范式的定义 范式是"符合某一种级别的关系模式的集合,表示 ...

  8. 【转】数据库范式(1NF 2NF 3NF BCNF)详解二

    以下内容转自:http://jacki6.iteye.com/blog/774889 -------------------------分割线----------------------------- ...

  9. 1NF,2NF,3NF,BCNF

    消除部分依赖,可以从1NF转换为2NF 消除函数依赖,可以从2NF转换为3NF BCNF 在3NF基础上,消除主属性对键的部分依赖,传递依赖,则称它符合BCNF 关系模式R<U,F>中,对 ...

  10. 数据库范式(1NF 2NF 3NF BCNF)详解

    数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟,不仅给 ...

最新文章

  1. sap系统操作流程财务软件_金蝶财务软件的操作流程汇总
  2. 内部类不能有静态变量(除静态的对Static的理解)
  3. networkx 标签_networkx绘制BA无标度网络
  4. Cisco无线AP的配置
  5. Python笔记002-列表推导式
  6. 网易研选大数据架构演进
  7. 学习RedHat7第一课
  8. 常用邮箱后缀总结,常用邮箱域名信息汇总
  9. 炫酷 雨滴桌面设置工具
  10. 超级计算机app网易,网易有道超级计算器
  11. java lifo_java:stack栈: Stack 类表示后进先出(LIFO)的对象堆栈
  12. HP暗影精灵7笔记本OMEN16.1inch Gaming Laptop PC16-b0000原装出厂Win11系统恢复原厂OEM系统
  13. 历数PC发展史上的祖先们
  14. 智能BI,如今走到了哪一步?
  15. 09年中国网络广告:淘宝市场份额直逼新浪
  16. PP过滤器(螺纹式)操作说明书
  17. 太空帝国5 Space Empires V SE5 攻略
  18. VVC之PDPC计算步骤
  19. 4.1 不定积分的概念与性质
  20. 【MATLAB】基本绘图 ( 句柄值 | 对象句柄值获取 | 创建对象时获取句柄值 | 函数获取句柄值 | 获取 / 设置 对象属性 | 获取对象属性 )

热门文章

  1. CentOS 7安装Mysql并设置开机自启动
  2. 通过Jquery异步获取股票实时数据
  3. Windows Phone 7 手机使用小记
  4. [摘]ASP.Net标准控件(Label控件)
  5. java concurrent 线程通信_java并发之线程间通信
  6. java字符串反转异或_字符串反转总结】Java中七种方法实现
  7. 网站服务器和空间大小,网站服务器和空间大小
  8. 衡算计算机性能指标,广东海洋大学2018年硕士生招生初试科目的考试内容范围说明计算机.PDF...
  9. 最大连续子序列和(4种算法)
  10. 【算法笔记】输出字符串的所有子序列