重新学习数据库范式

  范式(Normal Form),它是英国人 E.F.Codd(关系数据库理论的创建者)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。理论上,目前有迹可寻的共有8种范式,依次是:1NF、2NF、3NF、BCNF、4NF、5NF、DKNF、6NF,但是在大多数情况下,第三范式(3NF)就可以满足需要。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF),第三范式(3NF)。如果关系是第三范式,那么它必须已经是第二范式。如果关系是第二范式,那么它必须已经是第一范式。

  第一范式

  定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。

  第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。它强调的是列的原子性,一是说数据表中的每个字段只能存储一个属性值(不允许表中有表);二是数据表中不可有重复的字段。现代的关系数据库管理系统都是基于关系模型的,而关系模型本身就要求关系是规范化的,至少得符合第一范式,这一点保证了在关系数据库管理系统下所涉及的表都是符合第一范式的。

  第二范式

  定义:若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于R的码,则R∈2NF。

  第二范式(2NF)要求实体的属性完全依赖于主关键字,如此可以使得数据库表中的每个实例(表中的一行)可以被唯一的区分开来。一是表中的每一行都要有主键,主键可以由单独属性决定,也可以由多个属性共同决定;第二个意思是针对复合主键来说的,非主属性对主属性的完全函数依赖,即不能存在仅依赖于主键某部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体。

  第三范式

  定义:关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(ZY), 使得X→Y,Y→Z,成立,则称R ∈ 3NF。

  第三范式(3NF)要求关系中每一个非主属性既不部分函数依赖于码也不传递函数依赖于码。一是每一个非主属性都必须完全函数依赖于码,实际上就是要求它符合第二范式;二是非主属性必须直接依赖于码,而不能是一个传递依赖的关系。

  忙里偷闲记录一二,抽空再来写例子说明。

转载于:https://www.cnblogs.com/hans_gis/archive/2011/01/13/1933251.html

你可能感兴趣的:(重新学习数据库范式)