一、三大范式通俗解释:

(1)简单归纳:

  第一范式(1NF):字段不可分;
  第二范式(2NF):有主键,非主键字段依赖主键;
  第三范式(3NF):非主键字段不能相互依赖。

(2)解释:

  1NF:原子性。 字段不可再分,否则就不是关系数据库;;
  2NF:唯一性 。一个表只说明一个事物;
  3NF:每列都与主键有直接关系,不存在传递依赖。

二、例子说明

  (1)不符合第一字段的例子

表:字段1, 字段2(字段2.1,字段2.2), 字段3

字段2可以拆分成字段2.1和字段2.2,不符合第一范式。

  (2)不符合第二范式的例子

表:学号, 姓名, 年龄, 课程名称, 成绩, 学分

这个表明显说明了两个事务:学生信息, 课程信息。

  1)存在以下问题:

a、数据冗余:每条记录都含有相同信息; 
                               b、删除异常:删除所有学生成绩,就把课程信息全删除了; 
                               c、插入异常:学生未选课,无法记录进数据库; 
                               d、更新异常:调整课程学分,所有行都调整。
  2)修正:
                               学生表:学号, 姓名, 年龄

课程表:课程名称,学分

选课关系表:学号, 课程名称, 成绩

  (3)不符合第二范式的例子

表:学号, 姓名, 年龄, 所在学院, 学院联系电话

其中关键字为单一关键字"学号"。存在依赖传递::(学号) → (所在学院) → (学院联系电话) 。

  1)存在问题::
      a、数据冗余:有重复值; 
      b、更新异常:有重复的冗余信息,修改时需要同时修改多条记录,否则会出现数据不一致的情况 
      c、删除异常 
  2)修正: 
                      学生表:学号, 姓名, 年龄, 所在学院;
                      学院表:学院, 电话

整理自:https://www.zhihu.com/question/24696366

转载于:https://www.cnblogs.com/hezhiyao/p/7407468.html

数据库设计的三大范式通俗解释相关推荐

  1. mysql增删改查不区分大小写吗_MySQL的增删改查语句以及数据库设计的三大范式...

    数据库设计的三大范式: 1.列的原子性,即列是不可再分的 2.表里的每一列都应该与主键有关系, 3.表里的每一列都应该与主键有直接关系, 当使用自增长列不满足2.3范式,是特殊例子,只用在解决较为复杂 ...

  2. 数据库逻辑设计之三大范式通俗理解

    一.第一范式 1NF是对属性的原子性,要求属性具有原子性,不可再分解: 表:字段1. 字段2(字段2.1.字段2.2).字段3 ...... 如学生(学号,姓名,性别,出生年月日),如果认为最后一列还 ...

  3. mysql三大范式 答案_数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩...

    一.第一范式 1NF是对属性的原子性,要求属性具有原子性,不可再分解:表:字段1. 字段2(字段2.1.字段2.2).字段3 ...... 如学生(学号,姓名,性别,出生年月日),如果认为最后一列还可 ...

  4. 数据库设计的三大范式:详细

    在大学学习数据库的时候,不明白为什么会学习很多关系代数.设计范式的理论.但是,有了这些理论基础,在遇到问题的时候脑袋会有灵光一闪的感觉.那种感觉很像是大雾天太阳照射大地的感觉,心中一片光亮.^_^ 那 ...

  5. 5、数据库设计的三大范式

    为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中,这种规则就是范式.范式是符合某一种级别的关系模式的集合.关系型数据库中的关系必须满足一定的要求,即满足不同的范式. ...

  6. 数据库设计常用三大范式

    前言 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小. 目前关系数据库有六种范式:第一范式(1NF). ...

  7. 数据库设计的三大范式(举例详解)

     为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就被称为范式.范式是符合某一种设计要求的总结.因此要设计一个结构合理的关系型数据库,就必须要满足下面这三大 ...

  8. 浅聊数据库设计的三大范式

    写在最前 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中,这种规则就是范式.范式是符合某一种级别的关系模式的集合.关系型数据库中的关系必须满足一定的要求,即满足不 ...

  9. 数据库设计的三大范式

    为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际 ...

最新文章

  1. 选择适合过一辈子的人
  2. Netty源码解析8-ChannelHandler实例之CodecHandler
  3. JavaScript练习笔记
  4. 2019.01.23【NOIP普及组】模拟赛C组总结
  5. red hat安装宝塔_只需几分钟即可安装Red Hat Container Development Kit(视频)
  6. 安卓端/iOS端如何播放4K分辨率的RTMP/RTSP流
  7. sharepoint2013的审核日志的时间区域设置
  8. tar压缩及解压命令
  9. 暑假作业点评:运动会管理系统设计说明书
  10. 尚硅谷JDBC笔记(带源码)——了解数据库,看这一篇就够了
  11. 计算机专业本科生必学课程
  12. 手机测试光纤网速的软件,如何测试光纤网速?如何测试网速多少兆
  13. 【转】Java Hotspot G1 GC的一些关键技术
  14. 【Bugs】Hbase:File system needs to be upgraded. You have version null and I want version(habse缓冲问题)
  15. Oracle 数据库(一)—— Oracle 数据库基本介绍
  16. 大白话云计算,大数据,人工智能
  17. 请编程序将china译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如:字母A后面4个字母为E,因此,China应译为Glmre。
  18. 文字图片滚动 jquery 实现代码
  19. 14-《ARKit by Tutorials》读书笔记1:开始入门
  20. 双栈排序java_双栈排序

热门文章

  1. idea 代码编译打包不报错,但是代码显示报错
  2. MySQL Workbench工具设置编码
  3. Eureka 配置参数说明
  4. Oracle索引状态查询与索引重建
  5. Android开发笔记(一百三十二)矢量图形与矢量动画
  6. Android开发笔记(一百二十七)活用提示窗Toast和Snackbar
  7. linux思科认证,思科CCIE认证知识点之IPv6地址
  8. MySQL命名、设计及使用规范--------来自标点符的《MySQL命名、设计及使用规范》...
  9. Web安全之点击劫持
  10. Android安全开发之WebView中的地雷