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

标签: 数据库 范式


首先知道两个依赖:

1、完全依赖

比如(x,y)->z并且x或者y都不能单独得到z,则z是对(x,y)的完全依赖。
2、部分依赖

比如(x,y)->z,但是x->z,则z是对(x,y)的部分依赖。

3、传递依赖

比如x->y y->z则z是对x的传递依赖(x可能也是一个组合比如(x1,x2)->y y->z

开始正餐,首先要知道范式从1NF到3NF以及BCNF是依次更好,如果达到3NF,则肯定满足1NF和2NF。如果达到1NF或2NF则不一定为3NF。

一、1NF 第一范式

平时能录入数据库的都能达到第一范式,第一范式只要满足每个属性是原子属性即可,举个栗子:如下表

因为地址又包含了省和市,所以不满足原子属性,如果想改为第一范式,则把省市分开为两个属性即可:

姓名

这样就达到了1NF 。

二、2NF第二范式

想要看是否为2NF,首先要找表的主键,之后看所有的非主键要对关键码是完全依赖,也就是不存在部分依赖,如果有部分依赖则不满足2NF,否则满足2NF,比如一个关系的关键码为(x,y),非主属性为z首先因为(x,y)是关键码,所以一定能得到z,如果存在x->z或者y->z则说明z是部分依赖,则不满足2NF,否则满足2NF。

三、3NF第三范式

要想达到3NF,首先要判断是否为2NF,然后看里面是否有传递依赖,其实就是看其他的非主键之间有没有依赖,如果有主键x,还有非主键y z w,如果有其他的非主键之间的依赖比如y->z 则不满足3NF,因为有主键肯定能推出非主键即,x->y,而又有y-z,所以存在传递依赖,则不满足3NF,否则满足3NF。

四、BC范式

首先满足3NF,然后主要是看主键了,所有的主键对于每一个不包含他的其他主键也要是完全依赖,比如主键(x,y,z),那么z对(x,y)要是完全依赖。

欢迎大家关注我的微信公众号,未来上面会推送python 机器学习 算法学习 深度学习 论文阅读 以及偶尔的小鸡汤等内容。ようこそいらっしゃい!

搜索 coderwangson 关注

数据库中1NF,2NF,3NF的判别相关推荐

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

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

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

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

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

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

  4. 数据库范式 1NF, 2NF, 3NF的问题与细解

    转自https://www.jianshu.com/p/94a274ef35a9 一. 关于数据冗余与异常 数据库的规范化 数据库规范化是一种在数据库中组织数据的技术. 规范化是消除冗余(重复)和不良 ...

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

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

  6. 数据库范式1NF 2NF 3NF BCNF通俗讲解

    1NF(第一范式) 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库. 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数 ...

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

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

  8. 数据库三大范式(1NF,2NF,3NF)及ER图

    数据库三大范式(1NF,2NF,3NF)及ER图 百度官方解释: 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据 ...

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

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

最新文章

  1. mybatis-plus团队新作:mybatis-mate 轻松搞定数据权限
  2. 【Python】统计字符串里某个字符或子字符串出现的次数
  3. jquery validation remote进行唯一性验证时只使用自定义参数,不使用默认参数
  4. 【小白学习keras教程】九、keras 使用GPU和Callbacks模型保存
  5. Quartz框架中的Scheduler
  6. python面向对象(part2)--封装
  7. 网络技巧:无线路由器越用越慢的解决方法
  8. SELinux深入理解
  9. 从零开始学前端:CSS字体属性和文本属性 --- 今天你学习了吗?(CSS:Day08)
  10. 20181220 Oracle程序包基本开发逻辑
  11. lol韩服游戏内设置_LOL手游:灵药战队有多强?辅助国际服第六,AD堪比UZI
  12. 使用python抓取分析链家网二手房数据
  13. Tomcat出现中文乱码
  14. Linux-文件打开数配置实践
  15. 迅雷thunder://协议解密
  16. 账号权限问题导致数据泄露频发,如何破解“万豪们”的安全难题?
  17. c mysql trans_MYSQL STRICT_TRANS_TABLES使用图解教程
  18. Data Vault初探(十) —— 星型模型向Data Vault模型转化
  19. 哪款蓝牙耳机性价比最高?几款大热门蓝牙耳机实测
  20. 转子豪兄 树莓派上安装OpenCV

热门文章

  1. warning: mysql_fetch_array_php提示Warning:mysql_fetch_array() expects的解决方法,expects
  2. command a expects \ followed by text
  3. 怎么在电脑端下载和编辑哔哩哔哩的视频
  4. 【SVAC】国家视频编解码标准SVAC的特色和优势
  5. TeamViewer14检测为商业用途最优解
  6. 每日一佳——A Support Vector Method for Multivariate Performance Measures(Thorsten Joachims,ICML,2005)
  7. vue获取列表中的数量_vue.js中列表里面的子元素怎么获取列表的索引index值
  8. React 报错 Too many re-renders. React limits the number of renders to prevent an infini
  9. TikTok跨境:TikTok搬运视频,怎么才不会识别出搬运?
  10. Tableau学习(一)