数据库——范式

需要提前理解的概念:

关系就是一张二维表

属性就是表中的字段

三大方式简要概括:

1NF: 字段是最小的的单元不可再分
2NF:满足1NF,表中的字段必须完全依赖于全部主键而非部分主键 (一般我们都会做到)
3NF:满足2NF,非主键外的所有字段必须互不依赖
4NF:满足3NF,消除表中的多值依赖

解释

1NF 第一范式就是无重复的列。例如,由“职工号”“姓名”“电话号码”组成的表(一个人可能有一部办公电话和一部移动电话),这时将其规范化为1NF可以将电话号码分为“办公电话”和“移动电话”两个属性,即职工(职工号,姓名,办公电话,移动电话)。

2NF 首先要满足第一范式,其次每一个非主属性要完全函数依赖于候选键,或者是主键。也就是说,每个非主属性是由整个主键函数决定的,而不能有主键的一部分来决定。

3NF 如果关系模型R是第二范式,且每个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。

以学生表(学号,姓名,课程号,成绩)为例,其中学生姓名无重名,所以该表有两个候选码(学号,课程号)和(姓名,课程号),故存在函数依赖:学号——>姓名,(学号,课程号)——>成绩,唯一的非主属性成绩对码不存在部分依赖,也不存在传递依赖,所以属性属于第三范式。

参考资料:https://blog.csdn.net/jtjljy/article/details/93504010

       https://www.cnblogs.com/rosesmall/p/9585655.html  

 

什么是三大范式:

第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要

求,否则,将有很多基本操作在这样的关系模式中实现不了。

第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。

第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF.

注:关系实质上是一张二维表,其中每一行是一个元组,每一列是一个属性

原文地址:https://www.cnblogs.com/knowledgesea/p/3667395.html

 

通俗解释

1NF 属性(表中的字段)不可分割,比如学生信息组成学生信息表,有姓名、年龄、性别、学号等信息组成。姓名不可拆分,所以可以作为该表的一个字段,但是在国外,所以姓名字段是可拆分的,分为姓字段和名字段。

简单来说,一范式是关系数据库的基础,但字段是否真的不可拆分,根据你的设计目标而定。

原文地址:https://www.zhihu.com/question/24696366/answer/29049568

 

名字解释:

主属性——包含在任一候选关键字中的属性称主属性。

非主属性——不包含在主码中的属性称为非主属性
非主属性是相对与主属性来定义的。

候选码——若关系中的某一属性组的值能唯一的标识一个元组,而其任何真子集都不能再标识,则称该属性组为候选码。
例如:在学生实体中,“学号”是能唯一的区分学生实体的属性,同时又假设“姓名”、“年龄”的属性组合足以区分学生实体,那么{学号}和{姓名,年龄}都是候选码

关键码——唯一可以决定整个关系的码就是关键码

在《数据库系统概论》(第五版)——王珊、萨师煊编著中:
1.候选码的定义:如果关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;
2.主码的定义:如果一个关系有多个候选码,则选定其中一个为主码;
3.主属性定义:候选码的诸属性称为主属性;
4.非主属性定义:不包含在任何候选码中的属性称为非主属性;
5.实体完整性规则:如果属性(一个或者一组属性)A是基本关系R的主属性,则A不能取空值。
————————————————
原文链接:https://blog.csdn.net/must_5/article/details/90348037

 

posted on 2019-09-26 12:02  songsong_p_blue  阅读(299)  评论(0编辑  收藏  举报