一,前言
之前一直听说过范式,但是范式到底是什么真的不懂,只是听说有那么个知识点,最近在数据库系统原理这这本书中见到了范式,那就索性记录下来,让自己对他的理解更深一点。
二、关系型模型
关系型模型的核心:规范化,规范化是把数据库组织成在保持存储数据完整性的同时最小化冗余数据的结构的过程,
三、范式
1.概念:是符合某一级别的关系模式的集合。
2.第一范式;是指数据库的每一列都是不可分割的基本数据项,同一列不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
指导原则
(1)数组的每个属性只能包含一个值
(2)关系中的每个数组必须包含相同数量的值
(3)关系中的每个数组一定不能相同
3.第二范式:如果一个数据表已经满足第一范式,而且该数据表中的任何一个非主键字段的数值都依赖于该数据表的主键字段,那么该数据表满足第二范式,即2NF
4.第三范式:如果一个数据表已经满足第二范式,而且该数据表中的任何两个非主键字段的数据值之间不存在函数依赖关系,那么该数据表满足第三范式,即3FN
说明:
第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。理解注释:列不可分
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)
第三范式(3NF)满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
5.在上面核心中提到了数据冗余,什么是数据冗余呢?
简单的说也就是出现信息的重复,如果存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来了问题,当这个员工的电话号码变化时,冗余数据会导致对多个表的更新动作,如果有一个表不幸被忽略了,那么就可能导致数据的不一致性。 从一范式转化到二范式根据第二范式的定义,转化为二范式就是消除部分依赖。
四、PS
这些知识是通过自己看书,网上查找资料总结出来的,希望能帮助到对范式理论不理解的人。