数据三范式 及 BCNF解释

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010818959/article/details/82251543

大家在数据设计中经常接触到范式设计,那到底什么设计是合乎范式的,在解释范式之前,先来讲解下范式是什么?

范式: 字面意思就是规范,在数据库设计中指数据表各个字段间的关联关系。

第一范式:课本上的解释是字段不可拆分的最小单元。

这个很简单,基本上现在主流的RDMS,你设计出来的数据表想不符合第一范式都比较难,手动狗头。简单举个例子来说 考试成绩 这个信息设计成 考试成绩一个字段就不满足第一范式,设计成考试科目+分数就是符合第一范式的。不满足第一范式会带来插入异常,你想想语文50分怎么插入到一个字段里?

第二范式:消除非主属性对主属性的部分依赖

如果你的主属性是一个字段,那没什么说的,肯定是满足第二范式的。但是主属性是多个字段呢?那就看每一个非主属性是否完全依赖主属性组,如果只依赖主属性组中的部分属性,该情况就不符合第二范式。第二范式:消除非主属性对主属性的部分依赖 。

第三范式:消除非主属性对主属性的传递依赖。

很好理解,就是非主属性必须直接依赖主属性,不能通过一个非主属性来传递一下。

BCNF:消除主属性之间的部分依赖于传递依赖。与非主属性无关。

猜你喜欢

转载自blog.csdn.net/u010818959/article/details/82251543