一、今日学了啥?
本节主要涉及数据库模式分解,重点是保持函数依赖和无损连接的判断。通过实例演示了如何判断分解是否保持函数依赖,以及使用表格法和公式法判断无损分解。
二、重点/要记住的!
-
模式分解
- 保持函数依赖分解:对于关系R,有依赖集F,若对R进行分解,分解出来的多个关系模式,保持原来的依赖集不变,则为保持函数依赖的分解;另外要注意消除冗余依赖(如传递依赖)
- 无损分解:分解后的关系模式能够还原出原关系模式,就是无损分解,不能还原就是有损。当分解为两个关系模式,可以通过以下定理判断是否无损分解:
- 公式法:如果R的分解为 p={R1,R2},F为R所满足的函数依赖集合,分解 p 具有无损连接性的充分必要条件是R1∩R2——>(R1-R2)或R1∩R2——>(R2-R1)
- 表格法:当分解为三个及以上关系模式时,可通过表格法求解
三、今天的小收获/卡住的地方
用AI推导的母题:
1.判断模式分解是否保持函数依赖
题目特征:给出一个关系模式R及其函数依赖集F,以及将其分解成的若干子模式,判断该分解是否保持函数依赖
解题思路:
graph TD A[开始] –> B[列出所有子模式] B –> C[对每个子模式找出其函数依赖] C –> D[合并所有子模式的函数依赖] D –> E[检查是否能推导出原函数依赖] E –> F{是否全部推导出?} F –>|是| G[保持函数依赖] F –>|否| H[不保持函数依赖]
2.判断模式分解是否为无损连接分解
题目特征:给出一个关系模式R及其函数依赖集F,以及将其分解成的若干子模式,判断该分解是否为无损连接分解
解题思路:
graph TD A[开始] –> B{分解为几个子模式?} B –>|两个| C[使用公式法] B –>|三个或以上| D[使用表格法] C –> E[计算交集和差集] E –> F{交集能推导出差集?} F –>|是| G[无损连接] F –>|否| H[有损连接] D –> I[构造属性表格] I –> J[标记子模式属性] J –> K[根据函数依赖填充] K –> L{是否存在某行包含了所有原始属性?} L –>|是| M[无损连接] L –>|否| N[有损连接]
3.综合判断(既保持函数依赖又无损连接)
题目特征:结合前两个问题,要求同时判断分解是否保持函数依赖且为无损连接
四、明天学啥?
明天学习数据库封锁协议-安全-备份
像实干家一样思考问题,像思想家一样付诸行动。
愿你我共同进步!
来源链接:https://www.cnblogs.com/yangor/p/19043709
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
暂无评论内容