欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据库的三级范式

程序员文章站 2022-05-09 12:06:08
范式是具有最小冗余的表结构。 三范式具体如下: 1.第一范式(1NF):字段都是不可再分的; 第一范式的目标是确保每列的原子性:如果每列都是不可再分的最小数据单元,则满足第一范式(1NF); 2.第二范式(2NF):每个表只描述一件事情; 首先满足第一范式,并且表中非主键属性必须完全要依赖于主键属性 ......

范式是具有最小冗余的表结构。

  三范式具体如下:

  1.第一范式(1nf):字段都是不可再分的;

    第一范式的目标是确保每列的原子性:如果每列都是不可再分的最小数据单元,则满足第一范式(1nf);

    数据库的三级范式

  2.第二范式(2nf):每个表只描述一件事情;

    首先满足第一范式,并且表中非主键属性必须完全要依赖于主键属性;第二范式要求每个表只描述一件事情。

    数据库的三级范式

  3.第三范式(3nf):不存在对非主键列的传递依赖

    第三范式,必须先满足第二范式,并且每列都与主键有直接关系,不存在传递依赖。任何非主键属性不依赖于其他非主属性。

    数据库的三级范式

 

  不符合第一范式的例子(关系数据库中create不出这样的表):

    表:字段1,字段2(字段2.1,字段2.2),字段3......

  不符合第二范式的例子:

    表:学号,姓名,年龄,课程名称,成绩,学分;

    这表明显说明了两个事物:学生信息,课程信息。

  不符合第三范式的例子:

    学号,姓名,年龄,所在学院,学院地点,学院联系电话,主键为“学号”;

    存在依赖传递:学号->所在学院->学院地点、学院电话