流程

①先拆右边,假如依赖集F中的右边项包含不止一个属性,那么将这些项都拆为单个项。例如A->BC,拆分为A->B和A->C
②去除冗余依赖项,例如A->C和AB->C,那么就要去除AB->C这个冗余项
③拆左边,假如依赖集F中的左边项包含不止一个属性,那么将这些项中的第一个属性先遮住,看剩下的属性能否推出结果,不行的话就换第二属性遮住,看剩余的属性能否推出结果,以此类推


例题
已知G={A->BC,CD->E,B->D,BE->F,EF->A},求最小函数依赖集
答:
1.先拆右边
将G中依赖项右边包含两个属性的拆为单个属性
拆完G={A->B,A->C,CD->E,B->D,BE->F,EF->A}

2.去除冗余依赖项
诀窍:一个个试
①先去掉A->B,发现剩余的{A->C,CD->E,B->D,BE->F,EF->A}没法推出B,所以A->B不是冗余项
②以此类推,最后发现G中不存在冗余项

3.再拆左边
①第一个左边包含两个属性的为CD->E,先遮住C,看能否由D->E。首先由A->C可获得C,那么C与剩下的D就能推出E,因此C为冗余属性;然后再遮住D,看能否由C->E,因为A->B,A->C中都得不到D,因此没法组成CD->E,所以D不是冗余项。
经过第一步得出的G暂为{A->B,A->C,D->E,B->D}
②以此类推,第二个左边包含两个属性的为BE->F,先遮住B,看能否由E->F。因为A->B可获得B,那么B与剩下的E就能推出F,因此B为冗余属性;然后在遮住E,看能否由B->F,因为D->E,那么BE->F,因此E也可以为冗余属性。可知最小函数依赖集不止一个
暂定G为{A->B,A->C,D->E,B->D,E->F}
③同上,最后G为{A->B,A->C,D->E,B->D,E->F,F->A}

最小函数依赖集为{A->B,A->C,D->E,B->D,E->F,F->A}

最小函数依赖集的求解过程相关推荐

  1. 数据库期末考试预习之候选码,最小函数依赖集,3NF分解算法,判断第几范式

    一.候选码 参考链接:1 1.定义: 候选码(超级码)就是可以被选为主码的属性或属性组.当一个关系有N个属性或属性组可以唯一标识时,则说明该关系有N个候选码,可以选定其中一个作为主码. 候选码定义: ...

  2. 关系数据库理论之最小函数依赖集

    文章目录 前言 为什么需要最小函数依赖集 闭包 最小函数依赖集 定义 解释 算法 举例 写在最后 前言 在本文中,会介绍为什么要引入最小函数依赖集,最小函数依赖集是什么,以及如何求最小函数依赖集. 为 ...

  3. 【数据库】期末复习:SQL语句、关系代数的运算、范式的定义和判断、求最小函数依赖集、ER图转关系模式

    文章目录 SQL语句 查询select 其他 视图 关系代数的运算 并.差.笛卡尔积.投影和选择 连接 自然连接 笛卡尔积 详细版(如果完全不了解就看这里) 范式的定义和判断 如何求候选码 一些例题 ...

  4. 数据库常考题型(3)——求最小函数依赖集

    视频链接 https://www.bilibili.com/video/BV11F411K749/?spm_id_from=333.788&vd_source=467ab4c3cef3f6c7 ...

  5. 函数依赖集闭包、属性集闭包、超键、候选键和最小函数依赖集的求法。

    目录 关系模式 函数依赖的闭包 属性集闭包 码 求候选键算法 最小函数依赖集 关系模式R(U,D,DOM,F) R:关系名,符号化的元组定义 U:一组属性 D:属性组U中的属性所来自的域 DOM:属性 ...

  6. 数据库求最小函数依赖集

    [例1]关系模型R<U,F>,U={A,B,C,D,E},F={A→BC,ABD→CE,E→D},求F的最小依赖集. 第一步:将F中所有函数依赖的右边化为单一属性.得到F1={A→B,A→ ...

  7. 1579: 【例 5】皇宫看守(最小支配集——贪心求解/树形DP)

    [题目描述] 太平王世子事件后,陆小凤成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状,某些宫殿间可以互相望见.大内保卫森严,三步一岗,五步一哨,每个宫殿都要有人全 ...

  8. 主码求法,范式判断,最小函数依赖求法

    发现在模式分解这里还是有网络上的资源蛮少,讲这个东西的人蛮少.而且大家发表的文章,几乎是一模一样的,说的话,举得的例子.所以,写一个尽量让大家都能理解的方法.我现在就说一哈,书本上的定义,我自己的理解 ...

  9. 牛客假日团队赛8:H.Cell Phone Network(最小支配集)

    链接:https://ac.nowcoder.com/acm/contest/1069/A 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言6553 ...

最新文章

  1. mysql大于等于怎么写_数据库中大于等于0小于等于100怎样表达
  2. 迅雷“星域”打通最后一公里重新定义CDN
  3. Android Studio 代码注释插入图片
  4. 数据结构与算法 | 树与二叉树
  5. 了解linux服务器,教你快速了解一台Linux系统服务器的方法
  6. 腾讯的迷你门户首页新闻用到的Silverlight技术引用
  7. 广州云栖大会:阿里云携手虎牙,首次落地直播行业边缘节点及云企业网服务
  8. python Web抓取(一)[没写完]
  9. Sqlmap查找SQL注入漏洞入门
  10. 我的第一个 RN 项目-趣闻
  11. JVM学习-垃圾回收调优
  12. 通用权限系统快速开发框架
  13. php 卡号算法,验证信用卡卡号代码 Luhn算法
  14. android 字幕跑马灯,led跑马灯字幕
  15. @Insert的用法
  16. android融云自定义通知,android融云消息免打扰
  17. 自建内网穿透服务器替换TeamViewer和向日葵,实现远程控制。
  18. 你需要偷偷珍藏的java兼职平台
  19. 骑士飞行棋 c语言代码,骑士飞行棋源代码.doc
  20. jQuery三款简约MP3播放器插件

热门文章

  1. kindle 5 任意订阅自动定期推送 Rss/网页/新闻 详细解决方案
  2. Sine Wave如何将Unity游戏资产变成远程团队的在线工作区
  3. C# 保护进程不被结束(源代码)防任务管理器结束进程
  4. table设置colspan属性,列宽显示错位解决方法
  5. tcp/ip primer plus 第十四章 名字解析dns
  6. informer源码注释详情记录
  7. 论文笔记006-《Bootstrapping Entity Alignment with Knowledge Graph Embedding》
  8. 如何用python批量下载数据_利用python脚本,批量自动下载欧洲中心的气象数据
  9. 项目从intellij idea迁移到eclipse中问题总结
  10. 关于哈希函数的构造方法