第六章总结

关系数据理论

  • 问题的提出
  • 规范化
    • 函数依赖
    • 2NF、3NF、BCNF(第二范式第三范式BC范式)
    • 多值依赖

问题的提出

第六章总结_第1张图片

就拿我们之前的的基本表来举例,如图所示,Student表上存在各种函数依赖,但是这个关系模式存在以下问题:

1.数据冗余

比如:每一个系的系主任姓名重复出现,重复次数与该系所有课程成绩出现次数相同,这将浪费大量空间。

更新异常

由于数据冗余,当更新数据库中的数据时,系统要付出很大的代价来维护数据库的完整性,否则会面临数据不一致的危险。比如,更换系主任后要修改该系学生所有元组。

插入异常

如果一个系刚成立,尚无学生,则无法把这个系及其系主任的信息存入数据库。

删除异常

如果某个系的学生全部毕业了,在删除该系学生的同时,这个系及其系主任的信息也丢掉了。

规范化

函数依赖

设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作 X → Y X→Y XY

  • X → Y X→Y XY,但 Y ⊈ X Y \not\subseteq X YX,则称 X → Y X→Y XY是非平凡的函数依赖
  • X → Y X→Y XY,但 Y ⊆ X Y \subseteq X YX,则称 X → Y X→Y XY是平凡的函数依赖。对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义。若不特别声明,总是讨论非平凡的函数依赖
  • X → Y X→Y XY,则X称为这个函数依赖的决定属性组,也称为决定因素。
  • X → Y X→Y XY, Y → X Y→X YX,则记作 X ⟷ Y X \longleftrightarrow Y XY
  • .若Y不函数依赖于X,则记作X ↛ \not\rightarrow Y。

在R(U)中,如果 X → Y X→Y XY,并且对于X的任何一个真子集X,都有 X ′ X' X
↛ \not\rightarrow Y,则称Y对X完全函数依赖,记作
X → F Y X \overset F \rightarrow Y XFY
若X → → Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作
X → P Y X \overset P \rightarrow Y XPY

在R(U)中,如果 X → Y ( Y ⊈ X ) X→Y(Y \not\subseteq X) XY(YX),Y ↛ \not\rightarrow X,Y→Z, Z ⊈ \not\subseteq Y则称Z对X传递函数依赖(transitive functional dependency)。记为 X → 传 递 Z X \overset {传递} \rightarrow Z XZ

设K为R中的属性或属性组合,若K → F \overset{F} \rightarrow FU,则K为R的候选码。注意U是完全依赖于K,而不是部分依赖于K。如果U部分函数依赖于K即K → P \overset{P} \rightarrow PU,则K称为超码。候选码是最小的超码,即K的任一真子集都不是候选码。
\quad 若候选码多于一个,则选定其中一个为主码
\quad 包含在任何一个候选码中的属性为主属性;不包含在任何候选码中的属性称为非主属性。

2NF、3NF、BCNF(第二范式第三范式BC范式)

一个二维表就是一个第一范式,在此基础上满足:
每一个非主属性完全函数依赖于任何一个候选码就满足第二范式;
若每一个非主属性既不传递依赖于码,也不部分依赖于码,就满足第三范式;若在第三范式的前提下,每个决定因素都包含码,则满足BC范式。

多值依赖

设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖 X → → Y X→→Y XY成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。
X → → Y X→→Y XY,而 Z = ∅ Z=\varnothing Z=,即 Z Z Z为空,则称 X → → Y X→→Y XY为平凡的多值依赖。即对于R(X, Y),如果有 X → → Y X→→Y XY成立,则 X → → Y X→→Y XY为平凡的多值依赖。

你可能感兴趣的:(第六章总结)