数据库的第一、第二、第三范式、BCNF范式
2017-07-14 22:49
751 查看
参考资料:https://www.zhihu.com/question/24696366
第一范式:
数据库设计原则:
记录的每个属性只能包含一个值
关系中的每个记录必须包含相同数量的值
关系中的每个记录一定不能相同
(1)可能出现重复学号的数据,大量冗余数据
(2)每一行都非空,一些不确定的属性不能置null
(3)删除学生数据,其它所有数据都不存在了
(4)修改不方便,重复项太多
第二范式:避免了重复学号,但不同学号可能对应同样的姓名(重名)
引入了主键的概念,主键不可重复,凡是有主键的数据库都满足第二范式
图1主键:课名
图2主键:学号
使用了模式分解,修改映射关系
(1)每一行都非空,一旦不确定学号,则无法添加数据
(2)删除学生数据,其它所有数据都不存在了
第三范式:
满足第二范式,但是因为第二范式的“系主任”和“学号”直接没有依赖关系,“系主任”只和“系名”有依赖关系(出现了依赖传递),所以不满足第三范式,只有将表继续拆分。
凡是有主键、表中所有属性都和主键有直接依赖关系(没有依赖传递)的表都是第三范式
进一步模式分解,数据之间的依赖关系更加明确
BCDF范式
满足第三范式,且只能存在一种主键:学号、学生QQ号都可以做主键(都成为候选键),但要满足BCDF范式则必须去掉其中一个候选键,另外健表。
第一范式:
数据库设计原则:
记录的每个属性只能包含一个值
关系中的每个记录必须包含相同数量的值
关系中的每个记录一定不能相同
(1)可能出现重复学号的数据,大量冗余数据
(2)每一行都非空,一些不确定的属性不能置null
(3)删除学生数据,其它所有数据都不存在了
(4)修改不方便,重复项太多
第二范式:避免了重复学号,但不同学号可能对应同样的姓名(重名)
引入了主键的概念,主键不可重复,凡是有主键的数据库都满足第二范式
图1主键:课名
图2主键:学号
使用了模式分解,修改映射关系
(1)每一行都非空,一旦不确定学号,则无法添加数据
(2)删除学生数据,其它所有数据都不存在了
第三范式:
满足第二范式,但是因为第二范式的“系主任”和“学号”直接没有依赖关系,“系主任”只和“系名”有依赖关系(出现了依赖传递),所以不满足第三范式,只有将表继续拆分。
凡是有主键、表中所有属性都和主键有直接依赖关系(没有依赖传递)的表都是第三范式
进一步模式分解,数据之间的依赖关系更加明确
BCDF范式
满足第三范式,且只能存在一种主键:学号、学生QQ号都可以做主键(都成为候选键),但要满足BCDF范式则必须去掉其中一个候选键,另外健表。
相关文章推荐
- 数据库-如何理解第一范式、第二范式、第三范式;1NF,2NF,3NF,BCNF
- 数据库设计准则(第一、第二、第三范式说明)------即数据库设计经典三范式!
- 数据库笔记4:数据库范式概念(第一范式,第二范式,第三范式)
- 【数据库设计】第一范式,第二范式,第三范式
- 【数据库设计】范式基础 第一范式、第二范式、第三范式、BC范式
- 数据库设计准则(第一、第二、第三范式说明)
- 数据库(第一范式,第二范式,第三范式)
- SQL 第一范式、第二范式、第三范式、BCNF
- 数据库(第一范式,第二范式,第三范式)
- 数据库(第一范式,第二范式,第三范式)
- 最简洁,最容易理解的第一范式,第二范式,第三范式,BCNF介绍
- 数据库设计准则(第一、第二、第三范式说明)
- 数据库范式概念解析(第一范式,第二范式,第三范式)
- 详解数据库设计准则: 第一范式,第二范式,第三范式
- 数据库设计准则(第一、第二、第三范式说明)
- 第一范式,第二范式,第三范式,BCNF
- 数据库设计准则(第一、第二、第三范式说明)
- 数据库设计准则(第一、第二、第三范式说明)
- 数据库(第一范式,第二范式,第三范式)
- MySQL之数据库模型设计-1 第一范式、第二范式、第三范式理解