一、模式分解及分解后的特性
1. 无损连接
1)分解及无损连接的定义
- 核心概念:将一个关系模式R分解成若干个子模式后,若能通过自然连接和投影运算还原原模式,则称为无损连接分解
- 教材参考:详细定义见教材P288页,强调通过运算还原的特性
- 考试重点:判断给定分解是否具有无损连接性是高频考点
2)定理
- 适用条件:仅适用于分解为两个子模式的情况(R→R1,R2)
- 判定条件:设分解为ρ=[R1(U1,F1),R2(U2,F2)],无损连接的充要条件是:
-
U1∩U2→U1−U2∈F+或U1∩U2→U2−U1∈F+
-
- 关键步骤:
- 计算U1∩U2
- 计算U1−U2和U2−U1
- 检查函数依赖是否属于原函数依赖集F的闭包
3)应用案例
- 例题:关系模式分解无损连接判断
- 题目背景:给定
-
R(U,F),U={A,B,C},F={A→B}
- 分解方案1:ρ1={AB,BC}
- 计算过程:
-
U1∩U2=B
-
U1−U2=A
-
U2−U1=C
- 检查B→A和B→C是否属于F+(均不属于)
-
- 结论:有损分解
- 计算过程:
- 分解方案2:ρ2={AB,AC}
- 计算过程:
-
U1∩U2=A
-
U1−U2=B
-
U2−U1=C
- 检查A→B(属于F+)
-
- 结论:无损分解
- 计算过程:
- 易错提醒:定理仅适用于二分解情况,多分解需用其他方法(考试不考)
2. 保持函数依赖
1)定义
- 形式定义:分解ρ=[R1(U1,F1),...,Rk(Uk,Fk)]保持函数依赖当且仅当(∪Fi)+=F+
- 通俗理解:分解后所有子模式的函数依赖的并集能推导出原模式的所有函数依赖
- 判断要点:检查原函数依赖是否都"落在"某个子模式中(即相关属性在同一子模式)
2)应用案例
- 例题:关系模式分解保持函数依赖判断
- 案例1:
- 原模式:R(A1,A2,A3),F={A1A3→A2,A1A2→A3}
- 分解:ρ={(A1,A2),(A1,A3)}
- 分析:两个函数依赖都涉及三个属性,但分解后没有子模式包含全部三个属性
- 结论:不保持函数依赖
- 案例2:
- 原模式:R(A1,A2,A3,A4),F={A1A3→A2,A2→A3}
- 分解:ρ={(A1A2A4),(A1A3)}
- 分析:
-
A1A3→A2:属性分散在不同子模式
-
A2→A3:属性不在同一子模式
-
- 结论:不保持函数依赖
- 案例1:
- 例题:保持函数依赖的分解方法
- 正确分解示范:
- 对案例2可分解为:ρ={(A1A2A3),(A2A3)}
- 原理:每个函数依赖的所有属性都包含在至少一个子模式中
-
A1A3→A2包含在第一个子模式
-
A2→A3包含在第二个子模式
-
- 正确分解示范:
- 例题:关系模式分解保持函数依赖判断
- 案例3:
- 原模式:R(A,B,C,D),F={A→B,BC→D}
- 分解:ρ={(A,B,C),(A,C,D)}
- 分析:
- A→B:保留在第一个子模式
- BC→D:B,C,D不在同一子模式
- 结论:不保持函数依赖(丢失BC→D)
- 解题技巧:快速判断函数依赖是否"丢失"——检查依赖涉及的属性是否都在某个子模式中
- 案例3:
二、知识小结
|
知识点 |
核心内容 |
考试重点/易混淆点 |
难度系数 |
|
无损连接分解 |
分解后能通过自然连接和投影还原原关系模式 |
定理适用条件:仅适用于分解为两个子模式的情况 |
⭐⭐⭐ |
|
无损连接判定定理 |
U1∩U2 → U1-U2 或 U1∩U2 → U2-U1 需属于F的闭包 |
关键步骤:交集决定差集是否成立(例:B→A或B→C是否可推导) |
⭐⭐⭐⭐ |
|
保持函数依赖 |
分解后子模式函数依赖的并集闭包等于原函数依赖闭包 |
判断方法:检查原函数依赖是否因属性分散而丢失(如A1A3→A2需属性同属一子模式) |
⭐⭐⭐ |
|
真题案例1(分解为AB和BC) |
U1∩U2=B,B→A或B→C均不成立 → 有损分解 |
易错点:忽略定理仅适用于二分子模式 |
⭐⭐⭐⭐ |
|
真题案例2(分解为AB和AC) |
U1∩U2=A,A→B成立 → 无损分解 |
对比维度:交集决定差集的有效性 |
⭐⭐⭐ |
|
保持函数依赖反例 |
A1A3→A2和A1A2→A3在分解后均丢失 → 不保持依赖 |
典型错误:未验证所有原依赖是否保留 |
⭐⭐⭐⭐ |
|
保持依赖的正确分解 |
按函数依赖分组属性(如A1A3A2和A2A3) |
考试技巧:优先合并依赖涉及的属性 |
⭐⭐⭐ |
3547

被折叠的 条评论
为什么被折叠?



