# 五、理论范式

# 1. 函数依赖

# 1.1 函数依赖的概念

# [1] 决定关系

其实就是 Y = f(X),X 决定 Y,Y 依赖于 X。

# [2] 非平凡的函数依赖

X -> Y,但是 Y ⊊ X

# [3] 平凡的函数依赖

X -> Y,但是 Y ⊆ X

# [4] 完全函数依赖(X-^F^>Y)

R(U)是属性集U上的关系模式,X, Y, Z 是 U 的不同子集,非空且不互相包含。

X -> Y,且任意 X 的真子集 X`,都有 X` ⧷> Y ,也就是 X 中没有滥竽充数的,每个都得要。

# [5] 部分函数依赖(X-^P^>Y)

就是不完全函数依赖。

# [6] 传递依赖(X-^t^>Z)

若有 X->Y( Y ⊊ X),Y⧷>X,Y->Z,则必有 X->Z,则称 Z 传递依赖于 X。

# △[例题]

  • 左部位单属性的函数依赖一定是完全函数依赖。
    • sno -> sname
    • sno -> class
    • tno -> tname
  • 左部有多个,那就看起真子集能否决定右部属性。
    • (sno,cno) -> grade:
      • sno ⧷> grade
      • cno ⧷> grade
      • 完全函数依赖
    • (sno,cno) -> sname:
      • sno -> sname
      • cno ⧷> sname
      • 部分函数依赖
    • cno -> tname
      • cno -> tno, tno⧷> cno
      • tno -> tname
      • 传递函数依赖

# 1.2 候选键

# [1] 定义

唯一标识实体,且不包含多余属性的属性集。

# [2] 相关概念

  • 主键

  • 主属性

    包含在任何一个候选键中的属性。

  • 非主属性

    不包含在任何一个候选键中的属性。

# 2. 关系模型的规范化

# 第 1 范式(1NF)

image-20200401194036000

# [1] 特点

  • 不重复
  • 原子性

# [2] 问题

  • 数据冗余

  • 插入异常

    image-20200401194501247
  • 删除异常

    image-20200401194607786
  • 修改异常

    image-20200401194654329

# 第 2 范式(2NF)

# [1] 特点

任意一个非主属性都完全依赖于 R 的任一候选键。

image-20200401195815547

image-20200401195943891

# [2] 问题

  • 减少了数据冗余

  • 插入异常

    image-20200401200110517
  • 删除异常

    image-20200401200236477
  • 修改异常

    一个地方修改,可能需要修改很多个表。

# 第 3 范式(3NF)

# [1] 特点

消除了非主属性对候选码的传递函数依赖。

image-20200401200618015 image-20200401200706535

# [2] 问题

  • 减少了数据冗余
  • 减少了前面的删除异常
  • 减少了前面的插入异常
  • 减少了前面的修改异常
  • 不彻底性。

# BC 范式(BCNF)

[1] 特点

  • R 中的每一个非平凡函数依赖的决定因素都包含一个候选键(只有依赖于候选键的函数依赖)。

    • 消除部分依赖
    • 消除传递依赖
  • BCNF 必定是 3NF

# 第 4 范式(4NF)

# 多值依赖(一对多)

image-20200401210648965 image-20200401210701100

[1] 特点

如果存在元组(x,y~1~,z~1~)和(x,y~2~,z~2~),一定存在元组(x,y~2~,z~1~)和元组(x,y~1~,z~2~)。

U=X+Y+Z,X →→ Y 表示 X 多值决定 Y

  • X 的一个值可以确定 Y 的多个值(这个关系决定于 Z 的取值无关,也就是说当 X 值确定后,无论 Z 取何值,得到的 Y 总是固定的。
  • 对称性:
    • 若 X →→ Y,则 X →→ Z
  • 合并性:
    • 若 X →→ Y,且 X →→ Z,则 X →→ YZ
  • 相交性:
    • 若 X →→ Y,且 X →→ Z,则 X →→ (Y∩Z)
  • 传递性:
    • 若X →→ Y,且 Y →→ Z,则 X →→ (Y-Z),X →→(Z-Y)

# 第 4 范式(4NF)

[1] 特点

设 R(U)是一个关系模式,D 是 R 上的多值依赖集合。如果 D 中每个非平凡多值依赖 X→→Y,X 都包含 R 的候选键,则 R∈4NF。

image-20200401210841443
  • 4NF 必定是 BCNF
上次更新: 8/4/2021, 7:49:01 PM