数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(u pdate)操作异常
反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息
范式说明 1
1 第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性
如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系
在第一范式(1NF)中表的每一行只包含一个实例的信息
简而言之,第一范式就是无重复的列
说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库
例如,如下的数据库表是符合第一范式的: 字段1 字段2 字段3 字段4 而这样的数据库表是不符合第一范式的: 字段1 字段2 字段3 字段4 字段3
2 数据库表中的字段都是单一属性的,不可再分
这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等
很显然,在当前的任何关系数据库管理系统(DBMS)中, 傻瓜也不可能做出不符合第一范式的数据库,因为这些DBMS 不允许你把数据库表的一列再分成二列或多列
因此,你想在现有的DBMS 中设计出不符合第一范式的数据库都是不可能的
2 第二范式(2NF)属性完全依赖于主键 [ 消除部分子函数依赖 ] 如果关系模式R 为第一范式,并且R 中每一个非主属性完全函数依赖于R 的某个候选键, 则称为第二范式模式
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)