网站后台上传不了文件/微信营销工具
一、关系数据库的规范化理论
- 函数依赖:核心,是模式分解和设计的基础
- 范式:模式分解的标准
- 模式设计
二、不合理的关系模式存在的异常问题
异常种类
- 数据冗余
- 插入异常
- 删除异常
- 更新异常
根本原因:属性间存在着数据依赖的关系。
解决方法:模式分解
一个好的关系模式应该具备以下四个条件:
- 尽可能少的数据冗余
- 没有插入异常
- 没有删除异常
- 没有更新异常
三、函数依赖
- 关系模式中的各属性之间相互依赖、相互制约的联系称为数据依赖。分为函数依赖和多值依赖。
- 函数依赖(FD,Functional Dependency)是关系模式中属性之间的一种逻辑依赖关系。 X→Y,X决定Y,Y函数依赖于X。
- 逻辑蕴涵:由F中可以推导出 X→Y,则称 X→Y 为F的逻辑蕴涵,记为F|= X→Y。
- 闭包:设F是函数依赖集,被F逻辑蕴涵的函数依赖的全体构成的集合,称为函数依赖集F的闭包,记为F+。即F+ = { X→Y |F|= X→Y}。
1. 函数依赖的推理规则
- 自反律:一组属性函数决定它的所有子集。
- 增广率:若 X→Y,且 Z∈U,则 XZ→YZ 成立。
- 传递率:若 X→Y,且 Y→Z,则 X→Z 成立。
推论
- 合并律:若 X→Y,且 X→Z,则 X→YZ 成立。
- 伪传递律:若 X→Y,且 YW→Z,则 XW→Z 成立。
- 分解律:若 X→Y,且 Z∈Y,则 X→Z 成立。
- 复合律:若 X→Y,且 W→Z,则 XW→YZ 成立。
2. 函数依赖规则具有正确性和完备性。
3. 完全函数依赖(f)与部分函数依赖(p)
- 只有当决定因素是组合属性时,讨论部分函数依赖才有意义。
- 单属性一定是完全函数依赖。
4. 传递函数依赖(t)和直接函数依赖
- 若 X→Y,且 Y!→X,Y→Z,则Z对X传递函数依赖,记为X(t)→Z。
- 若 X→Y,且 Y→X,Y→Z,则Z对X直接函数依赖,记为X(t)→Z。
四、属性集的闭包
- 定义:U是属性集,F是R上的函数依赖集,X是U的子集,用函数依赖推理规则可以从F推出函数依赖X→A中所有A的集合,称为属性集X关于F的闭包,称为X+ 。
- 定理: X→Y 能用函数依赖推理规则推出的充分必要条件是 Y 属于 X+ 中。
五、候选码的求解理论和算法
1. 候选码的定义
- 设关系模式R的属性集是U,X是U的一个子集,F是在R上成立的函数依赖集。
- 如果 X→U 在R上成立,即 X→U 在F+ 中,那么称 X 是 R 的一个超码。
- 如果 X→U 在R上成立,但对 X 的任一真子集X‘ 都有 X’→U 不成立,即 X’→U 不在F+ 中,那么称 X 是 R 的一个候选码。
2. 候选码的求解理论和算法
快速求解候选码的一个充分条件:
对于给定的关系模式R(A1,A2…An)和函数依赖集F,可将其属性分为以下四类:
L类(函数依赖在左部出现)、R类(右部)、N类(左右都不出现)、LR类(左右都出现)。
六、函数依赖集的等价、覆盖和最小函数依赖集
- 等价/覆盖:关系模式R的两个函数依赖集F和G,如果满足 F+ = G+ ,则称F和G是等价的函数依赖集。记作F = G。如果F和G等价,就说F覆盖G,或G覆盖F。
- 无关函数依赖:如果左右两边的属性都是无关属性,则函数依赖称为无关函数依赖。
- 最小函数依赖集Fmin 满足:
- Fmin+ = F+ ;
- 每个函数依赖的右边都是单属性;
- Fmin中没有冗余的函数依赖,即减少任何一个函数依赖,都将与原来的F不等价;
- 每个函数依赖的左边没有冗余的属性,即减少任何一个函数依赖左部的属性,都将与原来的F不等价。
- 求最小函数依赖集Fmin 的算法
- 右边单属性:用分解率;
- 去除左边的多余属性,用求解闭包来验证是否多余;
- 去除冗余函数依赖。