第六章 关系数据理论

6.1 问题的提出

作为一个二维表,关系要符合一个最基本条:每一个分量必须是不可分的数据项。满足该条件的关系模式叫做第一范式(1NF)

数据依赖是一个关系内部属性与属性之间的一种约束关系,通过属性见值的相等与否体现出来

多种类型的数据依赖中最重要的是函数依赖多值依赖

6.1.1 函数依赖

属性间的数据依赖类似于 y=f(x)y=f(x) 记作 xyx\rightarrow y

存在问题:

  1. 数据冗余
  2. 更新异常:因为数据冗余很多,所以更新数据库时系统需要付出很大的代价卡来维护数据的完整性
  3. 插入异常
  4. 删除异常

一个好的模式应当不会发生上述异常,且数据冗余较少

6.2 规范化

6.2.1 函数依赖

函数依赖和别的数据以来一样是语义范畴,只能根据语义来确定一个函数依赖

  1. 函数依赖定义

    任意的R(X,Y)不存在两个元组在X上取值相同而在Y上取值不同,则称X函数决定Y或Y依赖于函数X
    计作XYX\rightarrow Y

    XYX\rightarrow Y则称X为决定因素

  2. 非平凡函数依赖

    XY,YXX\rightarrow Y , Y\subsetneq X

    X->x’ X决定X的真子集,在X上属性相等,则在x的任意真子集上取值也相等

  3. 平凡函数依赖

    XY,YXX\rightarrow Y , Y\subseteq X
    X决定Y但是Y不属于X的真子集

6.2.2 码

码是关系模式中一个重要的概念

6.2.4 1NF

每一个属性列都不可再分

6.2.5 2NF

不存在非主属性对码的部分函数依赖

6.2.6 3NF

不存在非主属性对码的传递函数依赖

6.2.7 BCNF

每一个起函数决定的因素都是码,消除主属性之间的部分函数依赖和传递函数依赖

6.2.8 4NF

消除非平凡的多值依赖