数据库设计的三大范式通俗解释
一、三大范式通俗解释:
(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
数据库设计的三大范式通俗解释相关推荐
- mysql增删改查不区分大小写吗_MySQL的增删改查语句以及数据库设计的三大范式...
数据库设计的三大范式: 1.列的原子性,即列是不可再分的 2.表里的每一列都应该与主键有关系, 3.表里的每一列都应该与主键有直接关系, 当使用自增长列不满足2.3范式,是特殊例子,只用在解决较为复杂 ...
- 数据库逻辑设计之三大范式通俗理解
一.第一范式 1NF是对属性的原子性,要求属性具有原子性,不可再分解: 表:字段1. 字段2(字段2.1.字段2.2).字段3 ...... 如学生(学号,姓名,性别,出生年月日),如果认为最后一列还 ...
- mysql三大范式 答案_数据库逻辑设计之三大范式通俗理解,一看就懂,书上说的太晦涩...
一.第一范式 1NF是对属性的原子性,要求属性具有原子性,不可再分解:表:字段1. 字段2(字段2.1.字段2.2).字段3 ...... 如学生(学号,姓名,性别,出生年月日),如果认为最后一列还可 ...
- 数据库设计的三大范式:详细
在大学学习数据库的时候,不明白为什么会学习很多关系代数.设计范式的理论.但是,有了这些理论基础,在遇到问题的时候脑袋会有灵光一闪的感觉.那种感觉很像是大雾天太阳照射大地的感觉,心中一片光亮.^_^ 那 ...
- 5、数据库设计的三大范式
为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中,这种规则就是范式.范式是符合某一种级别的关系模式的集合.关系型数据库中的关系必须满足一定的要求,即满足不同的范式. ...
- 数据库设计常用三大范式
前言 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小. 目前关系数据库有六种范式:第一范式(1NF). ...
- 数据库设计的三大范式(举例详解)
为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就被称为范式.范式是符合某一种设计要求的总结.因此要设计一个结构合理的关系型数据库,就必须要满足下面这三大 ...
- 浅聊数据库设计的三大范式
写在最前 为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中,这种规则就是范式.范式是符合某一种级别的关系模式的集合.关系型数据库中的关系必须满足一定的要求,即满足不 ...
- 数据库设计的三大范式
为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 在实际 ...
最新文章
- 选择适合过一辈子的人
- Netty源码解析8-ChannelHandler实例之CodecHandler
- JavaScript练习笔记
- 2019.01.23【NOIP普及组】模拟赛C组总结
- red hat安装宝塔_只需几分钟即可安装Red Hat Container Development Kit(视频)
- 安卓端/iOS端如何播放4K分辨率的RTMP/RTSP流
- sharepoint2013的审核日志的时间区域设置
- tar压缩及解压命令
- 暑假作业点评:运动会管理系统设计说明书
- 尚硅谷JDBC笔记(带源码)——了解数据库,看这一篇就够了
- 计算机专业本科生必学课程
- 手机测试光纤网速的软件,如何测试光纤网速?如何测试网速多少兆
- 【转】Java Hotspot G1 GC的一些关键技术
- 【Bugs】Hbase:File system needs to be upgraded. You have version null and I want version(habse缓冲问题)
- Oracle 数据库(一)—— Oracle 数据库基本介绍
- 大白话云计算,大数据,人工智能
- 请编程序将china译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母。例如:字母A后面4个字母为E,因此,China应译为Glmre。
- 文字图片滚动 jquery 实现代码
- 14-《ARKit by Tutorials》读书笔记1:开始入门
- 双栈排序java_双栈排序