关系数据理论
关系模型 定义
R(U,D,DOM,F)
- 关系 R,它是符号化的元祖语义
- 一组属性 U
- 属性组 U 中属性所有来自的域 D
- 属性到域的映射 DOM
- 属性组 U 上的一组数据依赖 F
- 第一范式:
一张二维表,它的每个分量必须是不可分割的数据项。
- 规范化可以解决的问题:
1.数据冗余太大
2.更新异常
3.插入异常
4.删除异常
规范化
- 函数依赖
定义:设 R(U) 是属性集 U 上的关系模式。X,Y 是 U 的子集。若对于 R(U) 的任意一个可能的关系 r, r 中不可能存在两个元祖在 X 上的属性值相等,而在 Y 上的属性值不等, 则称 X 函数确定 Y 或 Y 函数依赖于 X , 记作 X->Y
非平凡函数依赖:Y 依赖于 X ,但是 Y 不属于 X
平凡函数依赖: Y 依赖于 X,但 Y 属于 X
决定因素: Y 依赖于 X , 则 X 为这个函数依赖的决定属性组
相互依赖: Y 依赖于 X , X 依赖于 Y , 则 X,Y 相互依赖
不函数依赖:
- 定义:在 R(U) 中,如果 X->Y ,并且对于 X 的任何一个真子集 X1 ,都有 Y 不依赖于 X1 ,则称 Y 对 X 完全依赖
如果 Y 对 X 不完全依赖, 称为 Y 对 X 部分依赖
定义:传递依赖,在 R(U) 中,Y 依赖于 X ,X不依赖于 Y , Z依赖于 Y ,则称 Z 对 X 传递函数依赖
码
定义: 设 K 为 R<U,F> 中的属性或属性组合,若 K 完全依赖 U,则 K 为 R 的候选码,若候选码多于一个, 则选定其中的一个为 主码。
主属性:在任何一个候选码中的属性
非主属性:不包含在任何码中的属性
- 定义: 关系模式 R 中属性或属性组 X 并非 R 的码,但 X 是另一个关系模式的码,则称 X 是 R 的外部码,也称外码
第一范式:
一张二维表,它的每个分量必须是不可分割的数据项。2NF 范式
2NF: 若 R 属于 第一范式,且每一个非主属性完全函数依赖于码,称为 2NF-
3NF 范式
3NF: 关系模式 R<U,F> 中若不存在这样的码 X ,属性组 Y 及 非主属性 Z (Z 不属于 Y )使得 Y 依赖于 X,Z 依赖于 Y 成立,X 不依赖于 Y, 称 R<U,F> 为 3NF非主属性 即不部分依赖于 码, 也不传递依赖于码。
-
BCNF 依赖
定义:关系模式 R< U,F > 属于第一范式,若 Y 函数依赖于 X,且 Y 不属于 X 时,X 必含有码,则 R<U,F> 属于范式 BCNF满足 BCNF 的关系模式 有下面的特点
- 所有非主码属性对每一个码都是完全函数依赖
- 所有的主属性对每一个不包含它的码,也是完全函数依赖
- 没有任何属性完全函数依赖于非码的任何一组属性
多值依赖
定义:设 R(U) 是属性集 U 上的一个关系模式。 X,Y,Z 是 U 的子集,并且 Z = U - X - Y 。关系模式 R(U) 中多值依赖 X->->Y 成立,当且仅当对 R(U) 的任一关系 r,给定的一对(x,z)值,有一组 Y 的值,这组值仅仅决定于 x 值而与 z 值无关。-
另一个等价形式的多值依赖定义:
在 R(U) 的任一关系 r 中, 如果存在元祖 t,s使得t[X]=s[X],那么就必然存在元祖w,u属于r (w,u 可以与x,t 相同),使得w[X]=v[X]=t[X], 而 w[Y]=t[Y],w[Z]=s[Z],u[Y]=s[Y],u[Z]=t[Z]( 即交换 s,t 元祖的Y值所得的两个新元祖必在 r 中)则 Y 多值依赖于 X,记为 X->->Y。这里 X,Y 是 U 的子集, Z=U-X-Y若 X->->Y,则 Z为空,称 X->->Y 为平凡的多值依赖。
多值依赖具有对称性:若X->->Y,则X->->Z 其中 Z=U-X-Y.
多值依赖具有传递性:若 X->->Y,Y->->Z 则 X->->Z-Y
函数依赖可以看做是多值依赖的特殊情况,若 Y 依赖于 X,则 Y 多值依赖于 X,这是因为当 Y 依赖 X 时,对 X 的每个值 x,Y 有一个确定的值 y 与之对应,所以 X->->Y
若 X->->Y,X->->Z, 则 X->->YZ
若 X->->Y,X->->Z, 则 X->->Y交集Z
若 X->->Y, X->->Z , 则 X->->Y-Z, X->->Z-Y