数据库-----范式判断

目录

(1)求最小函数依赖集

(2)求候选码

(3)求R最高属于哪级范式

总结:


以一道例题来看:

3.已知关系模式R<ABCDEG>
F={BC-->E,DC-->B,D-->A,B-->G,D-->E,E-->G,B-->C} 求:
①F的最小函数依赖集        ②R的候选码        ③R最高属于哪级范式

(1)求最小函数依赖集

首先,看F={BC-->E,DC-->B,D-->A,B-->G,D-->E,E-->G,B-->C},将每一个推导依次去掉,看其他推导能否推出这一推导,如果可以就把这一推导去掉,例如将BC-->E去掉,看在其他推导中BC能否推出E

F={BC-->E,DC-->B,D-->A,B-->G,D-->E,E-->G,B-->C},即F - {BC-->E}

BC--->G,推不出E,不是多余的,不能将其删去

F={BC-->E,DC-->B,D-->A,B-->G,D-->E,E-->G,B-->C},即F - {DC-->B}

DC-->AEG,推不出B,不是多余的,不能将其删去

F={BC-->E,DC-->B,D-->A,B-->G,D-->E,E-->G,B-->C},即F - {D-->A}

D-->EG,推不出A,不是多余的,不能将其删去

F={BC-->E,DC-->B,D-->A,B-->G,D-->E,E-->G,B-->C},即F-{B-->G}

B-->CEG,可以从其他推导中推出G,所以这是多余的,需要删除

同理其他依次判断,得到F:

F={BC-->E,DC-->B,D-->A,D-->E,E-->G,B-->C}

现在看左边不是单个的推导式:BC-->E,DC-->B,

对于BC-->E,若B-->E或C-->E,则也可以简化

例如B-->C,BC-->E,所以B+=BCE,包含E,所以可以简化,另一个同理,D-->B或D-->C都不满足,所以还是DC-->B

所以最终简化得最小函数依赖集

F={B-->E,DC-->B,D-->A,D-->E,E-->G,B-->C}

(2)求候选码

只在左边的元素:L:{D}

只在右边的元素:R:{A,G}

两边都有的:LR:{B,C,E}

只在左边出现的,一定是候选码,所以D一定是候选码,只在右边出现的,一定不是候选码,而两边都在的则不确定是不是候选码

首先,看D--->u(全集),若D能推出全集则一定是唯一候选码

D-->AEG,不能推出全集,所以D不是唯一的候选码

接着,我们将D与LR组合,先组成2个为1组的,再3个为一组的,看是否能以尽量少的元素推出全集

DB--->AEGC,能够推出全集,所以BD是候选码

DC--->AEGB,能够推出全集,所以DC是候选码

DE--->AG,不能推出全集,所以DE不是候选码

这里DCB不是候选码,因为比他更少元素的DB,DC已经能推出全集了,所以{DB,DC是候选码}

若DB,DC,DE,都不能推出全集,就应该往3个为一组推了,即DBC,DBE,DCE

(3)求R最高属于哪级范式

如果你看懂如下图,就都明白了:

现在通过例子来细说一下:

F={B-->E,DC-->B,D-->A,D-->E,E-->G,B-->C}

上面例子已经求出,候选码为{DB,DC}

主属性为:D,B,C

非主属性:A,E,G

判断是否为2NF,即候选码的真子集(D或B或C)是否能推出A或E或G

由于D-->A,又因为D\nsubseteq(真包含)于{D,B},非主属性A部分依赖于候选键DB,所以存在部分依赖,其是1NF,不是2NF,即最高属于1NF

上面说明了1NF,现在说说其余范式:

对于2NF,若非主属性传递依赖于候选键,则为2NF,例如

B-->A,A-->C

①若B是候选键,C是非主属性

②并且A不能推出B,只有B能推出A

只有这两个步都满足时,才能说C传递依赖于B

再举一例:

对于R(A,B,C,D),F={B-->D,D-->B,AB-->C}

按照上面的(1)可知,最小函数依赖集就为F={B-->D,D-->B,AB-->C}

由(2)的步骤得到候选键为AB,AD

主属性为:A,B,D

非主属性为:C

由于F={B-->D,D-->B,AB-->C},非主属性C不部分依赖于候选键AB,只有AB能推出C,单独的A不行,单独的B也不行,所以其不是1NF

由于F={B-->D,D-->B,AB-->C},也不存在非主属性传递依赖于候选键,所以也不是2NF

由于依赖项的左边为B,D,AB,B和D都不是候选键,所以不满足左边全部为候选键,所以其不是BCNF,最高为3NF

再举一例:

R(A,B,C),F={A-->B,B-->A,A-->C}

由(1)(2)可得,候选键为A,B

可以很直观地看到不是部分依赖,其不是1NF,再看是不是2NF,2NF需要满足

① B-->A,A-->C,非主属性C传递依赖于候选键B

②但其不满足第二个条件,第二个条件是A不能推出B,但是这里A能推出B

所以不满足第2个条件,这里也不是2NF,需要非常注意,这里至少为3NF

由于依赖项的左边都是候选键,所以其最高为BCNF范式

总结:

从1NF--->2NF-->3NF-->BCNF条件是越来越严苛的

若存在非主属性部分依赖于候选键,为1NF

在非主属性全部依赖于候选键的基础上,若满足传递依赖的两个条件,则为2NF

不满足传递依赖的任意条件的基础上,若依赖项左边不全为候选键,则为3NF

不满足传递依赖的任意条件的基础上,若依赖项左边全为候选键,则为BCNF

 

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

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

相关文章

美国中性原子量子公司QuEra宣布将在英国建造量子测试平台

编辑丨慕一 编译/排版丨沛贤 深度好文&#xff1a;1250字丨7分钟阅读 中性原子量子公司QuEra Computing宣布&#xff0c;英国国家量子计算中心&#xff08;NQCC&#xff09;将成为一个量子计算测试平台的所在地。 通过NQCC的资助&#xff0c;并在小型企业研究计划&#xff…

【Kubernetes in Action笔记】1.快速开始

在Kubernetes上运行一个程序 基础运行环境 当前的运行环境为使用虚拟机构建的单master集群。 [rootk8s-master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION k8s-master Ready control-plane 109d v1.27.1 k8s-node1 Ready …

如何基于YAML设计接口自动化测试框架?看完秒会!

在设计自动化测试框架的时候&#xff0c;我们会经常将测试数据保存在外部的文件&#xff08;如Excel、YAML、CSV&#xff09;或者数据库中&#xff0c;实现脚本与数据解耦&#xff0c;方便后期维护。目前非常多的自动化测试框架采用通过Excel或者YAML文件直接编写测试用例&…

沁恒CH32V30X学习笔记05--串口接收中断和空闲中断组合接收数据

同步异步收发器(USART)** 包含 3 个通用同步异步收发器(USART1/2/3)和 5 个通用异步收发器(UART4/5/6/7/8) 空闲帧,空闲帧是 10 位或 11 位高电平,包含停止位。 断开帧是 10 位或 11 位低电平,后跟着停止位 引脚模式配置 引脚分配 bsp 驱动代码 bsp_uart_it.c /…

固定资产与总账对账,业务系统出不来数据?

1、【财务会计】-【固定资产】-【与总账对账】 2、【财务会计】-【总账】-【对账执行】 以上两个节点都可以进行 “固定资产与总账” 对账执行 操作。 问题&#xff1a; 固定资产与总账对账&#xff0c;业务系统出不来数据&#xff1f;如下图 &#xff1a; 原因&#xff…

麒麟linux和东方通TongWeb时区timezone不同步问题的解决

默认东方通文件夹位置如下&#xff1a; /data/TongWeb7.0.4.9_M3_Enterprise_Linux 在bin文件夹下有一个external.vmoptions 文件。 将下面这行&#xff1a; -Duser.timezoneAsia/Shanghai 添加到external.vmoptions 文件中。 重启东方通&#xff0c;时区问题解决。

VR直播:只需五步,即可实现直播“黑科技”

现如今&#xff0c;VR直播的应用范围较为广泛&#xff0c;有很多人可能在现场见过VR直播的拍摄设备&#xff0c;不仅有高性能的电脑、VR相机&#xff0c;还有专业的灯光和拍摄机器等。只需要五步&#xff0c;就可以实现安全、高效的VR全景直播。 首先是专业全景采集设备进行全景…

svg之全局组件,配合雪碧图解决vue2的svg优化问题

这里是vue2中的svg的完整解决方案的另一篇。 <template><svg :class"svgClass"><use :xlink:href"#${name}"></use></svg> </template><script>export default {name: icon,props: {name: {type: String,requi…

几种SLAM算法跑出的效果比较

以下所有的SLAM算法均使用此辆ROS小车跑。 文章目录 1.Gmapping SLAM算法构建地图2.Hector SLAM算法构建地图3.Karto SLAM算法构建地图4.Cartographer SLAM算法构建地图5.深度摄像头的建图6.rtab-map(深度双目与激光雷达构建三维建图)7.ORB-SLAM8.无奖竞猜 1.Gmapping SLAM算法…

OpenAI Sora视频生成机制:时空补丁

AI如何将静态图像转化为动态、逼真的视频&#xff1f;OpenAI 的 Sora 通过时空补丁&#xff08;spacetime patches&#xff09;的创新使用给出了答案。 独特的视频生成方法 在生成模型的世界中&#xff0c;我们看到了从 GAN 到自回归和扩散模型的许多方法&#xff0c;它们都有…

【C++初阶】值得一刷的字符串string相关oj题

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前学习C和算法 ✈️专栏&#xff1a;C航路 &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1…

【每天学习一点点 day04】工程化 npm create 脚手架 create-vue, vue-cli 执行原理① - npm cli

希望我们每个人都能找到属于自己的花期&#xff0c;不急不躁&#xff0c;静等风来。 今天打算用 Docusaurus 开始搭建自己的知识库&#xff0c;之前早已有此想法&#xff0c;遗憾的是没有坚持下来。 这次借助这个机会&#xff0c;也计划将自己【每天学习一点点】系列整理在自己…

java面试多线程篇

文章说明 在文档中对所有的面试题都进行了难易程度和出现频率的等级说明 星数越多代表权重越大&#xff0c;最多五颗星&#xff08;☆☆☆☆☆&#xff09; 最少一颗星&#xff08;☆&#xff09; 1.线程的基础知识 1.1 线程和进程的区别&#xff1f; 难易程度&#xff1a;☆☆…

代码随想录刷题笔记 DAY 29 | 非递减子序列 No.491 | 全排列 No.46 | 全排列 II No. 47

文章目录 Day 2901. 非递减子序列&#xff08;No. 491&#xff09;1.1 题目1.2 笔记1.3 代码 02. 全排列&#xff08;No. 46&#xff09;2.1 题目2.2 笔记2.3 代码 03. 全排列 II&#xff08;No. 47&#xff09;3.1 题目3.2 笔记3.3 代码 Day 29 01. 非递减子序列&#xff08;…

UEditorPlus v3.8.0 文档导入支持直接粘贴 Markdown 格式,已知问题修复

UEditor 是由百度开发的所见即所得的开源富文本编辑器&#xff0c;基于MIT开源协议&#xff0c;该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器&#xff0c;主要做了样式的定制&#xff0c;更…

大模型LLM训练显存消耗详解

参考论文&#xff1a;ZeRO: Memory Optimizations Toward Training Trillion Parameter Models 大模型的显存消耗一直都是面试常见的问题&#xff0c;这次我就彻彻底底的根据论文ZeRO中的调研和分析做一次分析 显存消耗的两个部分&#xff1a;Model States&#xff08;跟模型的…

离线数仓(三)【业务日志采集平台搭建】

前言 上一篇我们搭建完了用户行为日志数据的采集平台&#xff0c;其实也就是用两个 flume 采集数据到Kafka 中&#xff08;这种结构只有 source 和 channel 没有 sink&#xff09; 。离线数仓中的数据除了用户日志&#xff0c;还有就是业务数据了。 1、电商业务简介 1.1 电商…

Mac软件打开提示:已损坏,无法打开。您应该将它移到废纸娄 怎么解决?

新入手的苹果电脑打开软件出现&#xff1a;“已损坏&#xff0c;无法打开。您应该将它移到废纸娄” 或 “已损坏&#xff0c;打不开。推出磁盘映像”。这个怎么解决&#xff1f; 第一部分&#xff1a;&#xff08;注意&#xff1a;任何来源打开过了的&#xff0c;就直接去看下…

第三百五十三回

文章目录 1. 概念介绍2. 使用方法2.1 获取所有时区2.2 转换时区时间 3. 示例代码4. 内容总结 我们在上一章回中介绍了"分享一些好的Flutter站点"相关的内容&#xff0c;本章回中将介绍timezone包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在…

宠物赛道都卷出了哪些花样?媒介盒子分享

如今的宠物市场&#xff0c;已经从让宠物吃饱喝足的基本生理需求&#xff0c;拓展到五花八门的精神需求&#xff0c;与“马斯洛需求定理”高度一致。商家们看到宠物经济的潜力&#xff0c;不再满足于给人类造节&#xff0c;给毛孩子造节也是重中之重&#xff0c;今天媒介盒子就…