数据库表结构设计之三大范式
在设计数据库的表结构时,一般要遵循三大范式。何为范式,就是数据库设计的某一种级别的关系模式,范式能降低数据的冗余和减少维护与数据变动时产生的异常,后者的根本原因是数据的冗余引起的
- 第一范式(1NF)——表中字段不可分
表中字段不可分,也就是字段属性是不能再分解成二个及以上的属性,其实,在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。
- 第二范式(2NF)——非主键字段依赖主键中的全部字段(对于关联主键来说)
要满足第二范式,首先必须满足第一范式。另外,第二范式只是对于关联主键来说的,单一字段构成的主键必然是满足第二范式的。当主键为关联主键时,非主键字段必须依赖主键中所有的字段,不能只依赖于其中一部分或者干脆全部不依赖,这样是不满足第二范式要求的。
- 第三范式(3NF)——非主键字段不传递依赖于主键
要满足第三范式,首先必须满足第二范式。所谓的传递依赖,也就是有一字段C(非主键字段)有如下的依赖关系:
A(主键字段)->B(非主键字段)-->C
其实也就是非主键字段之间没有依赖关系,只与主键字段有依赖关系