关系数据库设计理论
关系数据库设计理论
基本概念
函数依赖
定义
设 R(U)是属性集 U 上的一个关系模式,X,Y 是 U 的子集。对于 R(U)上的任何一个可能的关系 r,如果 r 中不存在两个元组,他们在 x 上的属性值相同,而在 y 上的属性值不同,则称 X 函数决定 Y 或 Y 依赖 X。
不存在一个 X 有多个 Y,跟数学的函数概念一样
- 函数依赖只 R 的所有关系均要满足的约束条件
- 若 X->Y,则称 X 为这个函数依赖的决定因素
- 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
运用投影分解法,将传递依赖解除