1.2.4 数据库规范化

来源:这里教程网 时间:2026-03-03 17:36:28 作者:

数据库范式是建立数据库关系表的规范,遵守范式的级别越高,能够让数据冗余越少,下一级别的范式包含上一级别的所有范式;但是对于特定的的冗余数据(数据属性的对应关系不变)能够提高查询速度(无需连表查询)。   第一范式 ( 1NF  1 Normal Form ) :确保每列原子 性 确保每个字段不可再分,下表area可再分 第二范式 ( 2NF  2 Normal Form ) :非键字段必须依赖于键字段 一个表只能描述一件事,下表描述了两件事情,所以需要拆分 第三范式 ( 3NF  3 Normal Form ) :消除传递依赖 在所有的非键字段中,不能有传递依赖, 下表cityid和cityname是一种数据,由cityid可以查到cityname 下表 因为语文和数学确定了,总分就确定了。所以 设计不满足第三范式 总结:表字段{A,B,C,D} 关联关系:{A->BC,B->C,A->B,AB->C} 可拆分关系: A->B, A->C, B->C, A->B, AB->C 因为 A->C,所以 AB->C可以不要, A->B重复,A可以关联到B和C 可以得到最简表: {A,D} 反三范式 当性能和规范化冲突的时候, 性能更重要 。比如统计大量学生各科分数及总分的时候,就是如下设计 BC范式(BCNF Boycee Codd Normal Form):任何函数依赖(X->Y),X必须是候选键。意思是:任何属性(包括非主属性和主属性)都不能被非主属性所决定;BC范式要求主属性不能依赖于非主属性,这个也是第三范式和BC范式的主要区别,先拆分成3NF,再进行拆分 第四范式 ( 4NF ) : 消除多值依赖; 如果属性A依赖于B,属性C也依赖于B,且属性A和属性C没有依赖关系,但是造成了数据冗余,可以把表ABC分为BA,BC两个表来消除冗余数据   第五范式 ( 5NF ) : 拆分表为更小的表,每个小表不可再分,且每个小表都能够通过候选键推导出来

相关推荐