求最小函数依赖集(例题讲解)超详细,易理解

news2024/12/29 17:51:24

在关系R<U,F>中,U=ABCDEG

F={BG->C,BD->E,DG->C,ADG->BC,AG->B,B->D}

先进行第一大步:

先看右边

如果有BG->C,G-->C,因为单G就可以推出C了就不需要BG--->C了,可以把BG--->C这个冗余的去掉,根据F中的关系,没有此项,就可以跳过此步。

再看中间

第一个:BG--->C以外的推导式能否推出BG--->C

G=F-(BG-->C)=BC-->E,DG---->C,ADG-->C,AG-->B,B--->D

注:若BG为x0,则x1表示能从BG推出来的字母...

x0=BG(G+)     x1=BG+D=BGD     x2=BGD+EC=BCDEG   x3=BCDEG   推不出新字母了,停止

我们发现BCDEG中包含C,所以BG---->C冗余

第二个:BD-->E同理

G=F-(BD-->E)=DG-->C,ADG-->C,AG--->B,B--->D

x0=BD(G+)    x1=BD+D=BD    停止

BD中不包含E,不能将此推导式删除 

第三个:DG-->C

F=BD→E,DG→C,ADG→C,AG→B,B→D
G=F-(DG→C)=BD→E,ADG-->C,AG→B,B→D
x0=DG(G+)     x1=DG+NULL=x0  停止

DG中不包含C,不能将此推导式删除

以此类推得到以下推导式不能删除:
F=BD→E,DG→C,AG→B,B→D

所以F={BD→E,DG→C,AG→B,B→D}

现在进行第二大步:

再进行逐个细化:

BD--->E

先划掉B,则x0=D    x1=D

再划掉D,则x0=B,x1=BD,x2=BDE,发现包含E,所以删除B-->E

所以F={D--->E,DG--->C,AG-->B,B--->D}

DG-->C同理

先划去D,x0=G,x1=G

再划掉G  x0=D,x1=D

以此类推得到F={D--->E,DG--->C,AG-->B,B--->D}

重复以上第一大步和第二大步,直到无法删除任意一个字母

所以候选码,根据这个F找(重点)

1.如果这个属性只在左端出现了,那么必定是候选码(即候选码至少要包含A,G)

2.如果这个属性只在右端出现了,那么必定不是候选码

3.如果属性在两端出现了,那么是后备(如果主属性A,G足以推出全局,那么候选键就是A,G,如果不能,那么就在后备中找,一个一个试,看能否推出全集)

4.还有两端都不在的字母 

具体做法如下

设定左端为L,右端为R,既在左端又在右端为LR,两端都不在N

令X=L \bigcup N,求X的闭包

1.如果包含了R的所有属性,那么X为R的唯一候选键。

2.如果没有包含,那么从后备,即两端都有的字母中加入候选键一个一个试

接上面的例子:F={D--->E,DG--->C,AG-->B,B--->D}

x0=L \bigcup N=AG    x1=AG+B=AGB    x2=AGB+D=ABGD   x3=ABGD+EC=ABCDEG=U

AG(F+)=U:AG在F上的闭包=全集U,所以AG是候选码

再来几个例题:

例1:

设关系模式R(ABCD)

F={AB-->C,C-->A,C--->D}

L=B,R=D,LR=A,C,N=空集

x0=L \bigcup N=B       x1=B,不等于U

先选择A

x0=AB      x1=ABCD,等于U

再选择C

x0=BC     x1=ABCD,等于U

所以候选键是AB,AC

例2:

F={A-->BC,C-->AD}

L=空集,R={B,D}  LR={A,C}

x0=A    x1=ABCD  ,等于U

x0=C    x1=ABCD,等于U

所以候选键是A,C

例3:

关系模式R{A,B,C,D,E,F,G},函数依赖F={A--->BC,BC--->A,BCD--->EF,E---->C},求R的候选键

L={D}    R={F}   LR={A,B,C,E}    N={G}

x0=DG       x1=DG,不等于U

先从LR中选择一个字母:

A      x0=ADG   x1=ADGBCEF=U    所以候选键可以是ADG

B      x0=BDG   x1=BDG,不等于U

C      x0=CDG  x1=CDG,不等于U

E       x0=EDG  x1=EDGC,不等于U

注意A一定要划去,现在选2个

BC    x0=BCDG     x1=BCDGAE=U     所以BCDG是候选键

BE     x0=BEDG    x1=BEDGCAF=U    所以BEDG是候选键

CE      x0=CEDG    x1=CEDG,不等于U

所以候选键是ADG,BCDG,BEDG

补充:这里一定要区分主属性和候选码:

1.候选码的定义:如果关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;

2.主码的定义:如果一个关系有多个候选码,则选定其中一个为主码;

3.主属性定义:候选码的主属性称为主属性;

4.非主属性定义:不包含在任何候选码中的属性称为非主属性;

补充:将这个属性集的依赖关系规范为三范式:

对于范式我这里不细讲,如果不清楚可以看:http://t.csdn.cn/79MwB

U1=AGB(F=AG--->B)

U2=BDE(F=BD-->E,B-->D)

U3=CDG(F=DG---C)

分解成这样,才能既没有部分依赖也没有传递依赖。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682304.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Segment Anything Model(SAM)

Segment Anything Model&#xff08;SAM&#xff09;是Facebook Research近来开源的一种新的图像分割任务、模型。Segment Anything Model&#xff08;SAM&#xff09;可以从输入提示&#xff08;如点或框&#xff09;生成高质量的对象掩模&#xff0c;并可用于生成图像中所有对…

1、一条 SQL 查询语句是如何执行的?

基础篇 第一课、一条 SQL 查询语句是如何执行的&#xff1f; 下面是 MySQL 的基本架构示意图&#xff0c;从中可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。 大体来说&#xff0c;MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层包括连接器、查询缓存…

AI近十年盘点:纵览AI发展历程,探寻AI未来走向

编者按&#xff1a;当我们回顾过去十年的人工智能发展历程时&#xff0c;可以看到一场现在还正在进行的变革&#xff0c;对我们的工作方式、商业运营模式和人际交往行为都产生了深远的影响。从2013年的AlexNet到变分自编码器&#xff0c;再到最近的生成式大模型&#xff0c;人工…

Vue 2 - 常见面试题汇总大全

文章目录 一 基础知识1.vue 的生命周期1-1 钩子函数1-2 钩子函数的使用方法1-3 父子组件生命周期构造函数执行顺序 2 v-show 与 v-if v-for2-1.v-show 与 v-if 的区别2-2 v-if 和v-for的优先级 3.组件通信有哪些方式&#xff1f;4 computed和watch &#xff0c;有什么区别4-1.c…

西门子S7-1200定时器

一、西门子S7-1200定时器介绍 S7-1200的定时器为IEC定时器&#xff0c;用户程序中可以使用的定时器数量仅仅受CPU的存储器容量限制。 使用定时器需要使用定时器相关的背景数据块或者数据类型为IEC_TIMER&#xff08;或TP_TIME、TON_TIME、TOF_TIME、TONR_TIME&#xff09;的D…

别再弄混流程挖掘、BPM和BI

信息时代以来&#xff0c;各类信息系统不仅在企业中得到了广泛的应用和普及&#xff0c;种类和选择伴随全球数字技术的发展也逐渐变得丰富多样。而随着数字化转型的不断深入&#xff0c;企业对系统管理的需求面临着全新的变化。 如何配置最适合当下业务的系统&#xff1f;这个…

Axure教程——图片轮播(纵向滚动)

本文介绍的时用Axure中的动态面板制作图片轮播之纵向滚动 一、预览效果 预览地址&#xff1a;https://c1s4i1.axshare.com 二、功能描述 图片纵向自动滚动播放 三、元件制作 拖入一个动态面板&#xff0c;命名为1&#xff0c;设置大小为375*155&#xff0c;并设置四个状态&…

文科生从0学Python转数据分析学习建议避坑指南

我本科是财务管理&#xff0c;文科专业&#xff0c;零基础学习Python转行数分后&#xff0c;现在我的日常工作都离不开它。 接下来&#xff0c;给各位跟我一样无编程经验的朋友一些学习的建议 目标导向&#xff1a;先搞清楚为啥要学 Python几乎可以做任何事&#xff0c;但我…

2023汽车供应链大会暨爱普搜采购商交流会

2023汽车供应链大会暨爱普搜采购商交流会 Automotive Supply Chain Conference & APSOTO Purchasing Exchange Meeting 补链强链 绿色发展--打造中国汽车供应链新生态 北京是我国汽车工业重地之一&#xff0c;产业实力雄厚&#xff0c;发展强劲。北京车企及零部件公司分布…

springboot高校宿舍报修管理系统计算机毕设 附源码83946

springboot高校宿舍报修管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实…

VUE L 事件处理 ⑤

目录 文章有误请指正&#xff0c;如果觉得对你有用&#xff0c;请点三连一波&#xff0c;蟹蟹支持✨ V u e j s Vuejs Vuejs E v e n t j s Eventjs Eventjs总结 文章有误请指正&#xff0c;如果觉得对你有用&#xff0c;请点三连一波&#xff0c;蟹蟹支持✨ ⡖⠒⠒⠒⠤⢄⠀⠀⠀…

Java反射机制以及应用

Java反射机制以及应用 1、Java反射 在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够获取到这个类的所有属性和方法&#xff0c;对于任意一个对象&#xff0c;都能够调用它的任意一个方法和属性(包括私有的方法和属性)&#xff0c;这种动态获取的信息以及动态调用对…

【推荐】免费PDF编辑修改软件排行榜Top11!

随着组织进入数字时代&#xff0c;他们需要处理大量数字文档&#xff0c;尤其是 PDF。PDF 是数字文档中使用最广泛的文件格式之一&#xff0c;能够编辑 PDF 文件至关重要。PDF编辑并不是任何软件都能轻松完成的。不过&#xff0c;网络上有大量免费、开源的 PDF 编辑软件可以帮助…

基于Springboot+vue+协同过滤+前后端分离+电子产品推荐系统(用户,多商户,管理员)+全套视频教程

基于Springbootvue协同过滤前后端分离电子产品推荐系统(用户,多商户,管理员)(毕业论文11000字以上,共33页,程序代码,MySQL数据库) 代码下载 链接&#xff1a;https://pan.baidu.com/s/1ckCKm4zKT0m4RqfHULYyOg 提取码&#xff1a;8888 【运行环境】Idea JDK1.8 Maven MySQL …

基于Servlet+JDBC实现的基础博客系统>>系列2 -- 前端基础页面

目录 1. 博客公共页面样式 2. 博客列表页 3. 博客详情页 4. 博客登录页 5. 博客编辑页 1. 博客公共页面样式 导航栏以及背景图设置 <body> <!-- 1.navigation 导航栏 --><div class"nav"><!-- logo --><img src"image/logo.png&q…

【深圳触觉智能技术分享】Purple Pi OH Android11 ROOT 方法

为了让应用程序可以直接调用su执行系统命令和获取root权限&#xff0c;本文基于Purple Pi OH主板的Android SDK&#xff0c;介绍如果修改和编译一个root版本的Android11系统,以下为sdk源码修改方法。 Purple Pi OH作为一款兼容树莓派的开源主板&#xff0c;采用瑞芯微RK3566 (…

【yocto2】利用yocto工具构建嵌入式Linux系统

1.定制化嵌入式linux系统 在实际项目中&#xff0c;一款嵌入式产品往往具有不同的硬件平台和软件需求&#xff0c;因此需要对嵌入式Linux系统进行定制&#xff0c;以满足不同的产品需求。之前的章节中基于Freescale官方提供的例程&#xff0c;构建了运行于imx6ull14x14evk硬件…

OpenCVForUnity(一)简介与插件

文章目录 前言:下载地址&#xff1a;官方文档/教学地址&#xff1a;主要模块的功能&#xff1a; 前言: 端午假期到了&#xff0c;最近我发现了一个非常有意思的课题——OpenCV&#xff0c;而我需要研究的则是OpenCVForUnity。它可以用于在Unity里处理图像、视频和摄像头数据&am…

Linux基础内容(24) —— 线程概念

Linux基础内容&#xff08;23&#xff09;—— 信号补充与多线程交接知识_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/131275661?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22131275661%22%2…

【无监督学习】0、有监督学习、无监督学习、半监督学习

文章目录 一、有监督学习二、半监督学习三、无监督学习3.1 对比式学习 一、有监督学习 有监督学习最大的特点就是数据集是带标签的&#xff0c;如有监督分类任务&#xff0c;就是给每张图都分配一个真实标签&#xff0c;表示这张图是 dog、cat 或者是 bird。 而标签的作用就是…