第一范式:数据库表中的字段都是单一属性,不可再分。
一句话总结:只要是关系数据库都满足第一范式。
第二范式:实体的属性完全依赖与主关键字
例:多个病人对应一个医生。把医生表拆分
非关键字字段都依赖与主键,但这样的拆分是不符合第三范式的。
第三范式:是第二范式的子集,即满足第三范式必须满足第二范式。
不存在的非关键字段对任一候选关键字段的传递函数依赖。
例:科室名称依赖科室编号,科室编号依赖医生编号,这里存在冗余,所以不符合第三范式。
小结:在开发应用程序时,设计的数据库要最大程度的遵守三范式,特别对于OLTP型系统来说。三范式是必须遵守的规则。三范式最大的问题在于查询时通常需要join很多表,而且查询效率很低。
性能的考虑—做冗余--达到提高效率的目的。---反范式化