一、第一范式(1NF)

要求:

要求:每一个分量必须是不可分的数据项。

特点:

1)有主键,且主键不能为空。

2)字段不能再分。

示例:(以下例子不满足第一范式)

学号 年龄 信息
101 19 湖北武汉市,电话:12345678
101 20 湖北

主键:学号

不满足原因:1)主键重复。2)信息字段可以再分

二、第二范式(2NF)

要求:在范式一的基础上,且每一个非主属性完全函数依赖于主键。

特点:

1)满足第一范式。

2)表中的每一个非主属性,必须完全依赖于本表主键。

3)只有当一个表中,主键由两个或以上的属性组成的时候,才会出现不符合第二范式的情况。

示例:(以下例子不符合第二范式)

学号 课程号 得分 课程名
101 003 95 数据库
主键:学号,课程号
不满足原因:课程名不完全依赖于所定义的所有主键,课程名部分依赖于主键课程号

三、第三范式(3NF)

要求:在第二范式的基础上,且消除传递依赖性

1)满足第二范式

2)所有的非主键列依赖于主键列

注:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余,但是没有数据冗余的数据库并不一定是最好的数据库,所以有没有冗余的设计,要综合来考虑

学生 课程 老师 老师职称 教室 上课时间
小明 语文 王五 讲师 110 8:30

主键:学生、课程

上面的“学生上课表”符合2NF,可以这样验证:两个主属性单独使用,不用确定其它四个非主属性的任何一个。但是它有传递依赖!在“老师”和“老师职称”这里,一个老师一定能确定一个老师职称。

如果不消除这种传递依赖,有可能会出现:

1、老师职称变了,变教授了,要改数据库,表中有N条,改了N次……(修改异常)

2、没人选这个老师的课了,老师的职称也没了记录……(删除异常)

3、新来一个老师,还没分配教什么课,他的职称记到哪?……(插入异常)

所以为了解决这些问题应把表拆分成:

学生 课程 老师 教室 上课时间
小明 语文 王五 110 8:30
老师 老师职称
大宝 讲师

版权声明:本博客为记录本人自学感悟,内容大多从网上学习与整理所得,若侵权请告知!

https://mp.csdn.net/postedit/80365677

数据库三大范式定义与理解相关推荐

  1. mysql三大范式 答案_数据库三大范式定义与理解

    数据库三大范式定义与理解 发布时间:2018-06-04 10:24, 浏览次数:291 一.第一范式(1NF) 要求: 要求:每一个分量必须是不可分的数据项. 特点: 1)有主键,且主键不能为空. ...

  2. mysql三大范式 答案_数据库三大范式的个人理解~!

    下面引用的是百度文库的解释,之后是我自己的理解,如果我写的理解不了可以看下百度文库的解释! 百度文库: 范式简介编辑 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求 ...

  3. 数据库三大范式(通俗理解)

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

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

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

  5. 3nf mysql表_数据库三大范式(1NF,2NF,3NF)及ER图

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

  6. 浅显易懂 SQLite3 笔记(08)— 数据库三大范式

    文章目录 前言 一.函数依赖 1.第一定义 2.第二定义 3.第三定义 二.数据库范式 1.第一范式 2.第二范式 3.第三范式 4.范式关系图 5.范式对查询的影响 总结 前言    本篇,我们将学 ...

  7. Mysql数据库与数据库三大范式

    作者:左新宇 链接:https://zhuanlan.zhihu.com/p/59394493 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. MySQL 常用命令 ...

  8. 数据库三大范式详解,部分依赖、完全依赖、传递依赖

    数据库三大范式详解以及部分.完全.传递依赖 一.第一范式 二.第二范式 三.第三范式 四.部分依赖.完全依赖.传递依赖 完结撒花 一.第一范式 数据库每一列都是不可分的基本数据项(原子数据项) 就比如 ...

  9. 数据库三大范式(重要)

    转自微信 上周四下午的VIP试听课是由芒果给大家介绍的MySQL的一些基础知识,在这里芒果给大家分享其中的一部分内容--对数据库三大范式做个小介绍: 范式(数据库的设计范式)是符合某一种级别的关系模式 ...

最新文章

  1. 《JavaScript入门经典》学习笔记1
  2. android最佳活动启动方法,026-启动活动的最佳写法
  3. 【转】ADO.NET对数据库操作经典类
  4. 如何使用 AutoPilot 对作业自动调优?
  5. Android 实现九宫格、点击图片放大全屏浏览等
  6. 微软人工智能和对话平台--知识商城体验
  7. 华为畅享max有没有人脸识别_华为畅享7s有人脸识别吗 让我来告诉你
  8. 无重复字符串的最长子串
  9. Windows2008r2如何关闭防火墙
  10. PLSQL Developer报“动态执行表不可访问,本会话的自动统计被禁止”的解决方案...
  11. bosboot -a的作用
  12. python mysql到处excel
  13. HTTPS时代全面到来,你准备好了吗? 1
  14. 支付宝——(JAVA)支付测试开发
  15. Atitit..状态机与词法分析  通用分词器 分词引擎的设计与实现 attilax总结
  16. 2021年华中杯数学建模挑战赛A题马赛克瓷砖选色问题求解全过程文档及程序
  17. 华擎主板设置来电开机_华擎bios修改开机画面 BIOS界面焕然一新 - 电脑常识 - 服务器之家...
  18. 微软通过共享文件夹的思路,使用工具SyncToy实现两台windows机器间的文件同步
  19. 做人力资源需要掌握python_彭剑锋:做人力资源管理必须吃透的20个金句
  20. C++迭代器之'插入迭代器'

热门文章

  1. Android Skeleton使用和阴影动画的说明
  2. 【IDEA 报错 ERROR 16720 --- [ restartedMain] o.a.coyote.http11.Http11NioProtocol : Failed to sta】
  3. 对抗样本方向(Adversarial Examples)2018-2020年最新论文调研
  4. 网络精英赛模拟练习(6)
  5. Lingo 基础知识
  6. 2022西山居--技术训练营--一面(已oc)
  7. 大四寒假实习——面试总结
  8. webStrom使用gitee管理代码
  9. [caffe学习笔记]用自己的数据进行训练和测试
  10. python学习笔记 selenium