关系数据库理论

关系模式的规范化

函数依赖

函数依赖定义

在一个关系中R中,对于X存在唯一的Y与之对应,叫做Y函数依赖于X,或X函数确定Y,X→Y

平反函数依赖与非平凡函数依赖

在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但Y不属于X,则称X→Y是非平凡的函数依赖
若X→Y,但Y$\subseteq $X, 则称X→Y是平凡的函数依赖

例:在关系SC(sno, cno, grade)中

非平凡函数依赖:(sno, cno) → grade

平凡函数依赖:(sno, cno) → sno

​ (sno, cno) → cno

完全函数依赖与部分函数依赖

() → ***这个模式中,括号内的属性在决定右侧***时,都用到了,就叫完全函数依赖,否则叫部分函数依赖

范式

第一范式(1NF)

不存在表中表,属性是不可分割的数据项

存在的问题:

  • 插入异常
  • 删除异常
  • 数据冗余度大
  • 修改复杂

第二范式(2NF)

每个属性完全依赖于码,不存在对码的部分依赖

存在的问题:

可以一定程度上解决各种异常,但并不能完全消除异常和数据冗余

第三范式(3NF)

每个非主属性既不部分依赖于码,也不传递依赖于码

存在的问题:

仍不能完全消除异常和数据冗余

BC范式(BCNF)

每个决定属性因数都包含码

实现了彻底的分离,已消除了插入和删除异常。

多值依赖与第四范式

多值依赖

下表所表示的现实世界的情形,变成数据库的关系,就会形成多值依赖

关系数据库理论_第1张图片

用二维表表示后

关系数据库理论_第2张图片

闭包

求闭包

闭包就是由一个属性直接或间接推导出的所有属性的集合,例如:

f={ a->b, b->c, a->d, e->f }

a可直接得到bd,间接得到c,则a的闭包就是{ a, b, c, d }

设关系R(A, B, C, D, E, G)有函数依赖集F={AB→C, BC→AD,D→E, CG→B},求AB的闭包。

首先从AB出发,令X={A, B},由于函数依赖AB→C左边的所有属性都在X中,所以可以把右边的C添加到X中,这时X={A, B, C}

其次考虑函数依赖BC→AD,左边B,C均在X中,右边D不在X中,将其添加到X中,此时X={A, B, C, D}

再考虑函数依赖D→E,同理可将E添加到X中,此时X={A, B, C, D, E}。

上述方法再不能向X中添加属性,所以得到 A B + = { A , B , C , D , E } AB^{+}=\{A, B, C, D, E\} AB+={A,B,C,D,E}

最小依赖集

最小依赖集定义

如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集。亦称为最小依赖集或最小覆盖。
(1) F中任一函数依赖的右部仅含有一个属性。
(2) F中不存在这样的函数依赖X→A,使得F与F-{X→A}等价。
(3) F中不存在这样的函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。

求最小依赖集(点我)

关系模式的分解

无损链接的判断(点我)

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