数据库—属性闭包

news2025/1/13 14:05:49
  • 属性闭包
    要理解属性闭包先理解以下概念

    • U属性集合,比如一个表A有这些属性**{a,b,c,d,e}**
    • F函数依赖集
      这个就是由已知的一些函数依赖组成的集合,比如:
      F = {a->b,b->c,c->d,ab->e} //F函数依赖集
    • R(U,F)表示一个关系模式
      因为一个关系肯定有属性,然后还有主键这些,那含有主键就会有函数依赖
    • Armstrong公理
      这里不解释了,因为这就是集合的包含关系而已,一个大的集合包着小的集合,那不就说明大的决定小的了么,然后就是一系列的集合之间的关系与运算,然后就有了这个公理的出现(提出这个公理的人当真厉害,虽说晦涩难懂,但是如果学过集合的过来看也是能够看懂的)
      下面给出我们数据库老师的PPT截图在这里插入图片描述在这里插入图片描述
  • 解释属性闭包
    属性的闭包就是当一组或者一个属性,然后这属性中能够通过已知的F函数依赖集通过公理系统(这系统就是用集合是否包含关系)推理出来的属性,这些属性必然是能够通过给的一组属性然后能够知道的另一组属性,这就是推理出来的属性

大白话意思就是用给出的属性集(属性集在U 中),然后给出F函数依赖集,然后开始用已知的属性集推理出比这个属性集中属性小的属性。然后这些推理出来的小属性再加上原本给出的属性组成的就是闭包(是指原给出的属性组的闭包)

  • 推理算法
    这边给出我们数据库老师的PPT截图
    在这里插入图片描述

其实这我学习的时候认为还不是很通俗易懂,下面这张截图我就悟到了。

  • 在这张图中其实已经很明显了,就是给出了一组属性AE,然后找F集合中的决定性的主属性,也就是→左边的属性,是否和有给出的AE属性集中的其中一个,有就代表能够推出一个了,就把有的那个F中的函数依赖右边的作为我们的闭包集中的一员,比如现在A中在F集合的函数依赖的每个箭头左边有看到一个是A的就是A->B,然后就把B放进AE集合中,变成了ABE。然后后面回到算法循环第一步,这时候继续刚刚的操作,如果有的话就放进属性集中。
  • 注意事项:这里给出的属性只能是包含于函数依赖主属性而不是函数依赖主属性大于给出的属性,可以是给出的组合属性等于主属性就是不能主属性范围大于给出的属性。
    比如:我给出B,求闭包,但是下面的只有BC->E,这时候是不可以选择的,因为BC集合大于B了,说白了就是集合关系的推理,只有一个B怎么能够说明你这个B的集合能够包含E或者说退出E,显然是不可以的,不然人家也不会写BC->E,因此只有大于主属性的才能将该函数依赖的非主属性也就是右边的属性加入自己的属性集中。
    比如:给出ABC,求ABC的属性闭包,这时候就可以用BC->E了,因为你的ABC就已经包含了BC,所以这时候是可以推理出E的(其实就是可以说明ABC是包含了E的意思)
    在这里插入图片描述

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

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

相关文章

linux工程管理工具make

linux工程管理工具make 一、make 工具的功能二、makefile 文件三、makefile 的规则Makefile 介绍一、Makefile 的规则二、一个示例三、其他例子makefiletest.cprocess.cprocess.h截图 一、make 工具的功能 1、主要负责一个软件工程中多个源代码的自动编译工作 2、还能进行环境…

Spring boot装载模板代码工程实践问题之二

Spring boot装载模板代码工程实践问题解决方案 替代方案解决方案及解释 Spring boot装载模板代码工程中,后续有自定注解的要求,在本地运行无恙,打成jar启动后,自定义注解会无效。 替代方案 在测试compiler.getTask多种参数后&…

7.MMM

文章目录 MMM概念配置mysql配置文件主主复制主从服务器配置--只需要配置一个主服务器的安装mysql-MMM 测试故障测试客户端测试 MMM 概念 MMM(Master-Master replication manager for MvSQL,MySQL主主复制管理器) 是一套支持双主故障切换和双…

git merge和git rebase的区别

本文来说下git merge和git rebase的区别 文章目录 分支合并解决冲突git rebase和git merge的区别本文小结 分支合并 git merge是用来合并两个分支的。比如:将 b 分支合并到当前分支。同样git rebase b,也是把 b 分支合并到当前分支。他们的 「原理」如下…

并发-操作系统底层工作的整体认识

冯诺依曼计算机模型 五大模块:输入、输出、计算器【cpu】、存储器【内存】、控制器 现在计算机硬件结构设计 CPU:控制、运算、数据

工业机器人运动学与Matlab正逆解算法学习笔记(用心总结一文全会)(三)

文章目录 机器人逆运动学△ 代数解求 θ 4 \theta_4 θ4​、 θ 5 \theta_5 θ5​、 θ 6 \theta_6 θ6​○ 求解 θ 4 \theta_4 θ4​○ 求解 θ 5 \theta_5 θ5​○ 求解 θ 6 \theta_6 θ6​ CSDN提示我字数太多,一篇发不下,只好拆分开x2。。。 关于…

shiro-all由1.3.2 升级到1.11.0后出现重定向次数过多的问题:ERR_TOO_MANY_REDIRECTS

最近漏洞升级, shiro-all由1.3.2 升级到1.11.0后, 导致系统登录首页打不开, 一直提示重定向次数过多: ERR_TOO_MANY_REDIRECTS: 经定位: 是shiroFilter配置中: loginUrl配置问题 以一下例子具体说明参数含义: 1,假设网站的网址是http://localhost…

基于STM32F407的智慧农业系统

文章目录 一、设备平台二、功能说明三、硬件系统设计实现与图表四、软件系统设计实现与流程图五、调试过程中出现的问题及相应解决办法六、程序设计1. 开始任务函数2. LED任务函数3. KEY任务函数4. UART任务函数5. OLED任务函数6. DHT11任务函数7. BEEP任务函数8. ADC任务函数9…

写一个简单的静态html页面demo,包含幻灯片

效果图&#xff1a; 代码如下&#xff0c;图片文件可自行更换&#xff1a; <!DOCTYPE html> <html> <head><title>公司网站</title><style>/* 样式定义 */body {font-family: Arial, sans-serif;margin: 0;padding: 0;}header {backgrou…

什么是Session

1、web中什么是会话 &#xff1f; 用户开一个浏览器&#xff0c;点击多个超链接&#xff0c;访问服务器多个web资源&#xff0c;然后关闭浏览器&#xff0c;整个过程称之为一个会话。 2、什么是Session &#xff1f; Session:在计算机中&#xff0c;尤其是在网络应用中&…

Linux学习之进程概念和ps命令

进程概念和启动关闭进程 进程就是运行中的程序 在C语言中进程只能只能从main()函数开始运行。 进程终止的方式有两种&#xff1a; 正常终止&#xff1a;从main()函数返回、调用exit()等方式 异常终止&#xff1a;调用abort、接收信号等。有可能 ps ps是“process status”的缩…

华为OD机试真题 Python 实现【光伏场地建设规划】【2023Q1 100分】

一、题目描述 祖国西北部有一片大片荒地&#xff0c;其中零星的分布着一些湖泊&#xff0c;保护区&#xff0c;矿区&#xff1b;整体上常年光照良好&#xff0c;但是也有一些地区光照不太好。某电力公司希望在这里建设多个光伏电站&#xff0c;生产清洁能源。对每平方公里的土…

React入门(B站李立超老师)

视频地址&#xff1a;https://www.bilibili.com/video/BV1bS4y1b7NV/ 课程第一部分代码&#xff1a; https://pan.baidu.com/s/16hEN7j4hLDpd7NoFiS8dHw?pwd4gxv 提取码: 4gxv 课程第二部分代码&#xff1a;https://pan.baidu.com/s/1mDkvLqYVz1QGTV1foz5mQg?pwd5zir 提取码&…

NCV2903DR2G 低偏移电压比较器

NCV2903DR2G安森美深力科是一款双独立精密电压比较器&#xff0c;能够进行单电源或分电源操作。这些设备被设计为允许在单电源操作的情况下实现共模范围到地电平。低至2.0 mV的输入偏移电压规格使该设备成为消费类汽车和工业电子中许多应用的绝佳选择。 特性&#xff1a; 1.宽…

从密码学了解如何确定物联网信息安全

一.物联网安全概述 1.信息安全的主要内容 2.密码学 编码学和分析学的关系&#xff1a;相互对立、相互依存、相互促进 3.密码学历史 1.第一阶段&#xff1a;几千年前到1949年&#xff0c;此时还没有形成一门科学&#xff0c;靠密码分析者的直觉和经验来进行 代表&#xff1a;C…

DAY35——贪心part4

1. class Solution {public boolean lemonadeChange(int[] bills) {int five 0;int ten 0;for (int i 0; i < bills.length; i) {if (bills[i] 5) {five;} else if (bills[i] 10) {five--;ten;} else if (bills[i] 20) {if (ten > 0) { //贪心 优先使用面值为10的…

8.2 PowerBI系列之DAX函数专题-进阶-实现切片器筛选之间的or逻辑

需求 两个切片器之间都被选中的情况下&#xff0c;实现符合切片器条件的并集的结果呈现&#xff0c;而非交集的结果呈现&#xff0c; 实现 or #1 var occupations values(customer[occupation]) --获取到当前切片器选中的值 var bands values(product[brand]) return s…

Node环境中调用Python脚本

今天遇到一个需要在Node服务中调用Python脚本的需求&#xff0c;这里就把这个场景单独抽离出来汇总一下方法 在node中的child_process中有execSync, exec两个方法来创建一个子进程&#xff0c;然后在子进程里执行对应的python命令&#xff0c;这两个命令可以让我们执行一个脚本…

蓝桥杯专题-试题版-【完美的代价】【芯片测试】【序列求和】【杨辉三角形】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

Jmeter分布式压测配置

目录 前置条件 环境部署并使用 前置条件 电脑A&#xff0c;电脑B&#xff0c;电脑C均安装相同版本的JMeter 和JDK。其中电脑A作为控制机&#xff0c;电脑B和电脑C作为施压机 电脑A IP&#xff1a;172.16.0.114 电脑B IP&#xff1a;172.16.0.115 电脑C IP&#xff1a;172…