数据库——范式

目录

一、概念

二、各范式

第一范式

第二范式

第三范式

BC范式

第四范式

第五范式(略)


一、概念

  1. 基本概念
    1. 关系:通常一个关系对应一张表;
    2. 元组:一行;
    3. 属性:一列;
    4. 码:键;
    5. 超码:能唯一标识一个元组的一个属性或属性组;
    6. 候选码:能唯一标识一个元组的一个属性或属性组,而它的真子集不能,候选码是最小的超码;
    7. 主码:主键,主码是候选码里人为选一个;
    8. 主属性:包含在任意一个候选码中的属性;
    9. 非主属性:不包含在任何码中的属性;
    10. 域:属性的取值范围;
    11. 外键:关系(表)A中的公共属性包含的关键字是另一个关系B的主键,则这个关键字被称为A的外键,A是主表,B是从表。
  2. 范式Normal Form:设计数据库时要求遵循的不同设计规范与要求,不同等级的范式对数据关系有不同等级的约束条件;
    1. 关系型数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)
    2. 总的来说,范式不满足的情况都是由于属性之间的关系复杂,而没有将关系拆解,而导致同一个表内属性之间的关系大量牵连耦合,所谓规范化,实质上是概念的单一化,即一个关系表示一个实体。

二、各范式

  1. 第一范式

    1. 域是原子性的,即属性不可分,每一列都是不可再分割的原子数据项,且不重复。(部分数据库设计突破了1NF的设计要求,因此是否满足1NF主要取决于所使用的关系类型)
  2. 第二范式

    1. 满足第一范式;
    2. 实体的属性完全依赖于主键,即整个主键唯一标识一个元组且主键不可拆分
      1. 比如ABCD表中,A→B,A→C,C→D,属性D不依赖于主键A。
  3. 第三范式

    1. 满足第二范式;
    2. 一个表可以包含其他表的主键,但不可以包含其他表除主键外的其他非主属性,即任何非主列不得传递依赖于主键
      1. 如ABCD表中,A→B,A→C,A→D,C→D,存在A→C→D的传递依赖关系,此时可以拆分成ABC和CD两张表(或者ABE,ECD,其中E→C,E→D)
  4. BC范式

    1. 满足第三范式;
    2. 不存在关键字决定关键字的情况,一般需要对表进行拆分,但拆分后有可能会损失一些依赖关系
      1. 比如ABCD表中的依赖关系:AB→C,AB→D,BC→A,BC→D,D是唯一的非关键属性;
      2. 满足第三范式,但不满足BC范式(因为存在A→C,C→A这样的关系);
      3. 但拆表后可能会出现损失依赖关系的情况。
  5. 第四范式

    1. 满足第BC范式;
    2. 消除非平凡函数依赖的多值依赖关系,
      1. 平凡函数依赖:Y⊆X,X→Y。即一组属性函数决定它的所有子集;
      2. 多值依赖:属性之间的一对多关系;
      3. 比如ABC,一个A对应于多个B,一个A也对应于多个C,B和C相互独立。
  6. 第五范式(略)

    1. 只存在理论研究中,很少出现,且难以察觉。

     

你可能感兴趣的:(#,数据库,数据库)