数据表设计三大范式

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

数据表的设计:

    通俗地理解三个范式,对于数据库设计大有好处,在数据库设计中,为了更好的应用三个范式,就必须通俗的理解三个范式(通俗的理解是够用的理解,并不是科学准确的理解)。

   第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可分解(只要是关系型数据库都要满足1NF)。

   第二范式:2NF是对于记录的唯一约束,要求记录有唯一标识,既实体的唯一。

   第三范式:3NF是对字段冗余的约束,既字段不能由其他字段派生出来,它要求字段没有冗余。

 1、第一范式(数据的原子性)

      1NF是对属性的原子性约束,要求属性具有原子性,不可分解(只要是关系型数据库都要满足1NF)。

      比如数据库里的地址,需要经常用到地址的部分属性,那么就需要把 地址 这个地段重新拆分存储,这样对地址中操作其中的某一方部分就会非常方便,这样的设计才满足了数据库的第一范式。如下:

 

   第二范式:每一列都和主键有关系

   2NF是对于记录的唯一约束,要求记录有唯一标识,既实体的唯一。

例如:       

改进:
   

第三范式:和主键直接相关,而不是间接相关

3NF是对字段冗余的约束,既字段不能由其他字段派生出来,它要求字段没有冗余。

 例如:

   

改进:

   

但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行的效率,就必须降低范式的标准,
适当保留冗余的数据,具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到
物理数据模型设计时考虑,降低范式就是增加字段,允许冗余

猜你喜欢

转载自blog.csdn.net/qq_38287952/article/details/86837013