关系数据库设计理论

基本概念

函数依赖

定义

设 R(U)是属性集 U 上的一个关系模式,X,Y 是 U 的子集。对于 R(U)上的任何一个可能的关系 r,如果 r 中不存在两个元组,他们在 x 上的属性值相同,而在 y 上的属性值不同,则称 X 函数决定 Y 或 Y 依赖 X。

不存在一个 X 有多个 Y,跟数学的函数概念一样

  1. 函数依赖只 R 的所有关系均要满足的约束条件
  2. 若 X->Y,则称 X 为这个函数依赖的决定因素
  3. X->Y 且 Y->X 则 X<–>Y

平凡函数依赖

定义

设 R(U)是属性集 U 上的一个关系模式 X,Y 是 U 的子集,如果 X->Y,并且 Y 包含于 X,则称 X->Y 是平凡函数依赖

很显然,对于任一关系模式,平凡函数依赖都是必然存在的。

非平凡函数依赖

定义

设 R(U)是属性集 U 上的一个关系模式 X,Y 是 U 的子集,如果 X->Y,并且 Y 不包含于 X,则称 X->Y 是非平凡函数依赖

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

定义

在 R(U)中,如果 X->Y,并且对于 X 的任何一个真子集 X都有X不决定 Y,则称 Y 对 X 完全函数依赖。
如果 X->Y,但不完全函数依赖于 X,则成 Y 对 X 部分函数依赖

传递函数依赖

定义

在 R(U)中,如果,X->Y,Y->Z,且 Y 不包含于 X,Y 不决定 X,则称 Z 传递函数依赖于 X。

完全函数依赖,部分函数依赖,传递函数依赖,均是非平凡函数依赖

定义

设 K 为 R<U,F>中的属性或属性组合。若 K 完全函数决定 U,则 K 为 R 的候选码。若候选码多于一个,则选定其中一个作为主键

包含在任何一个候选码中的属性称为主属性,不包含在任何码中的属性称为非主属性

外键

定义

关系模式 R 中属性或属性组 X 并非 R 的码,但 X 是另一个关系模式 S 的码,则称 X 为 R 的外键

规范化

通常把关系数据库的规范化要求设立的不同标准称为范式
1NF<2NF<3NF<BCNF<4NF<5NF

第一范式

定义

如果关系模式 R 的所有属性均为简单属性,即每个属性都是不可再分的,则称 R 属于第一范式,简称 1NF

关系数据库的语法决定了,所有关系的属性必须是原子性的,不满足 1NF 的数据库不符合关系型数据库

第二范式

定义

如果关系模式 R 属于 1NF,且每个非主属性都完全函数依赖于 R 的码,则称 R 属于第二范式

如何实现 1NF 向 2NF 的转换

使用投影关系,将部分函数依赖接触

第三范式

定义

如果关系模式 R 属于 2NF,且每个非主属性都不传递函数依赖于 R 的候选码,则称 R 属于 3NF

怎么把 2NF 提升为 3NF

运用投影分解法,将传递依赖解除

BC 范式