第一范式:数据库表中的字段都是单一属性,不可再分。

一句话总结:只要是关系数据库都满足第一范式。

第二范式:实体的属性完全依赖与主关键字

例:多个病人对应一个医生。把医生表拆分

非关键字字段都依赖与主键,但这样的拆分是不符合第三范式的。

第三范式:是第二范式的子集,即满足第三范式必须满足第二范式。

          不存在的非关键字段对任一候选关键字段的传递函数依赖。

        例:科室名称依赖科室编号,科室编号依赖医生编号,这里存在冗余,所以不符合第三范式。

小结:在开发应用程序时,设计的数据库要最大程度的遵守三范式,特别对于OLTP型系统来说。三范式是必须遵守的规则。三范式最大的问题在于查询时通常需要join很多表,而且查询效率很低。

性能的考虑做冗余--达到提高效率的目的。---反范式化