范式概念是库恩范式理论的核心,而范式从本质上讲是一种理论体系。提出这个概念的目的是想说明,在科学实践活动中某些被公认的范例——包括定律、理论、应用以及仪器设备等一为某种科学研究传统的出现提供了模型。简单的概括可以包括两层含义:1.约定;2.范例。不同的领域有不同的范式,我下面要介绍的就是关系数据库中的范式。
顾名思义范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式,其目的是不会发生插入(insert)、删除(delete)和更新(update)操作异常。关系数据库有六种范式:第一范式(1NF)、第二范式(2 NF)、第三范式(3 NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。
第一范式:
第一范式最核心的思想即无重复的列,占据着关系模型的基本要求的地位。
展开来讲是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多的关系。在第一范式中,表的每一行只包含一个实例的信息。
2)第二范式:
第二范式要求实体的属性完全依赖于主关键字。
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。
这里需要强调的是完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。
第三范式:
第三范式就是属性不依赖于其它非主属性。
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。