逻辑蕴含、函数依赖集的闭包、Armstrong公理、属性集闭包

一、引言

Armstrong公理-从给定的函数依赖集得到关系模式的完整依赖集

二、逻辑蕴含

1、定义

设F是关系模式R上的函数依赖集,X、Y是R的属性子集,对于R的每个满足F的关系实例r,若函数

依赖X\rightarrow Y都成立,则称F逻辑蕴含X\rightarrow Y

记为:F\vdash X\rightarrow Y

F逻辑蕴含的所有函数依赖的集合,称为函数依赖集F的闭包,并记为F^{+}

记为:F^{+}={X\rightarrow Y\mid F\vdash X\rightarrow Y}

三、Armstrong公理

1、定义

1974年Armstrong提出一套推理规则,被称为Armstrong公理

2、作用

利用推理规则从给定的函数依赖推导出其蕴含的函数依赖

3、内容

包含三条基本规则和三条扩充规则

4、实例

关系模式R(U,F):

(1)U为R的属性集

(2)F是U上的函数依赖集

(3)X、Y、Z、W是U的子集

(4)子集X、Y的并集记为XY

四、Armstrong公理的内容

1、三条基本推理规则

(1)自反律

Y\subseteq X,则X\rightarrow Y

(2)增广律

X\rightarrow Y为F所蕴含,则XZ\rightarrow YZ

(3)传递律

X\rightarrow YY\rightarrow Z为F所蕴含,则X\rightarrow Z

2、三条扩充推理规则

(1)合并规则

X\rightarrow YX\rightarrow Z,则X\rightarrow YZ(增广律,传递律)

(2)伪传递规则

X\rightarrow YWY\rightarrow Z,则XW\rightarrow Z(增广律、传递律)

(3)分解规则

X\rightarrow YZ\subseteq Y,则X\rightarrow Z(自反律、传递律)

3、合并规则和分解规则可得一个重要的事实

引理1:

X\rightarrow A_{1}A_{2}...A_{k}成立的充分必要条件X\rightarrow A_{i}成立(i=1,2,...,k)

五、属性集闭包

1、引言

对于一个函数依赖集,其闭包中所包含的函数依赖有很多,从函数依赖集F求其闭包是很困难的,

对于任意的函数依赖,通过判断是否在闭包中来判断该函数依赖是否为函数依赖集F所逻辑蕴含是

很困难的,于是引入了属性集闭包的概念

2、属性集闭包的定义

在R(U,F)中,F是属性集U上的一组函数依赖,X\subseteq U,则属性集X关于函数依赖集F的闭包X{_{F}}^{+}

定义为:

X{_{F}}^{+}F^{+}中所有函数依赖于属性集X的所有属性的集合

3、引理2:

由引理2,就可以将X\rightarrow Y是否属于F的闭包的问题转化为判断Y是否为X关于F的闭包的子集的问题,而X关于F的闭包可由算法帮助实现

六、使用算法求解属性集闭包

1、明确概念

(1)函数依赖集F的闭包是F所蕴含的函数依赖的集合

(2)属性集X关于函数依赖集F的闭包是F的闭包中的函数依赖的决定因素是属性集X的属性的集合,以下简称为属性集闭包

2、求X{_{F}}^{+}(X的属性集闭包)的一个算法

输入:属性集X和和函数依赖集F

输出:属性集X关于函数依赖集F的闭包X{_{F}}^{+}

算法实现流程:

(1)开始

(2)给X{_{F}}^{+}赋初值X

(3)判断X{_{F}}^{+}的值与上一次相比是否改变,如果改变,执行(4),没改变,执行(5)

(4)对F中的每一个函数依赖Y\rightarrow Z,如果Y\subseteq X_{F}^{+},则将Z并入到X{_{F}}^{+}中,执行(3)

(5)输出X{_{F}}^{+},结束

3、举例:使用算法计算属性集X的闭包X{_{F}}^{+}

七、举例:通过属性集闭包来判断函数依赖是否在函数依赖集F的闭包中

八、小结

1、Armstrong公理的有效性

F中已有的函数依赖利用Armstrong公理导出每一个函数依赖Y\rightarrow Z\in F^{+}

2、Armstrong公理的完备性

函数依赖集F所蕴含的函数依赖,即F^{+}中的每一个函数依赖都可以利用Armstrong公理推导出来

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

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

相关文章

2021 hnust 湖科大 C语言课程设计报告+代码+流程图源文件+指导书

2021 hnust 湖科大 C语言课程设计报告代码流程图源文件指导书 目录 报告 下载链接 https://pan.baidu.com/s/14NFsDbT3iS-a-_7l0N5Ulg?pwd1111

LUA移植到STM32F4,移植REPL,通过RTT Viewer交互

概述 站内移植LUA多数是使用C函数调用LUA,并没有移植REPL交互端口 本文将REPL也移植进去,做了简单的适配 LUA源码使用标准C库函数,如fgets,fwrite等,在嵌入式环境中要使用fgets,fwrite等C库函数&#xff…

用c语言实现通讯录

目录 静态简易通讯录 代码: 功能模块展示: 设计思路: 动态简易通讯录(本质顺序表) 代码: 扩容模块展示: 设计思路: 文件版本通讯录 代码: 文件模块展示&#x…

JAVA开发 PDF文件生成表格,表格根据内容自动调整高度

1、展示效果 2、相关功能实现 JAVA开发 使用Apache PDFBox库生成PDF文件,绘制表格 3、实现代码 import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.ap…

傲星一个在线工具箱源码附搭建教程

傲星工具箱源码是一款功能强大的在线工具箱程序,您可以通过安装扩展来增强其功能。同时,该程序还提供了插件模板的功能,让您可以将其作为网页导航使用。 1.PHP版本需不低于7.2.5。 2.Mysql版本需不低于5.7。 3.需要安装fileinfo扩展。 4.…

Python | 使用Matplotlib生成子图的示例

数据可视化在分析和解释数据的过程中起着举足轻重的作用。Python中的Matplotlib库提供了一个强大的工具包,用于制作各种图表和图表。一个突出的功能是它能够在单个图中生成子图,为以组织良好和结构化的方式呈现数据提供了有价值的工具。使用子图可以同时…

北京崇文门中医医院贾英才:中医传承的践行者

贾英才,一位在北京崇文门中医医院出诊的杰出中医执业医师,在中医领域深耕近三十载,以其精湛的医术和独特的诊疗验方体系,赢得了广大患者的信赖与认可。 贾英才自幼便深受家学熏陶,中医的种子早早在他心中扎根。成长于中…

2024 年 Python 基于 Kimi 智能助手 Moonshot Ai 模型搭建微信机器人(更新中)

注册 Kimi 开放平台 Kimi:https://www.moonshot.cn/ Kimi智能助手是北京月之暗面科技有限公司(Moonshot AI)于2023年10月9日推出的一款人工智能助手,主要为用户提供高效、便捷的信息服务。它具备多项强大功能,包括多…

深入理解计算机系统 CSAPP 家庭作业6.35

第一步先求(S,E,B,m) 题目说共C128个字节,块大小B为16个字节,那就是分为八组:0,1,2,3,4,5,6,7.然后每组存4个int 每个4字节 CB*E*S .B16 ,直接映射的E就是1,所以S8 (S,E,B,m)(8,1,16,7) C128M128s3b4t0 sizeof(int)0100地址(二进制)COCIsrc[0][0]00000000000000组0src[0][1…

上市公司-社会责任报告、ESG报告文本(2006-2023年)

上市公司社会责任报告是企业对外公布的一份关于其社会责任实践和成果的详细文件,涵盖环境保护、社会贡献和公司治理等方面的表现。通常包含公司在减少环境影响、提升社会福祉、维护员工权益、促进社区发展以及确保透明和道德的管理实践等方面的信息和数据。有助于了…

linux 线程

文章目录 1.线程概念线程优点线程缺点 2.Linux线程和进程3. Linux线程控制线程创建---pthread_create线程等待---pthread_join线程退出线程分离---pthread_detach 1.线程概念 进程内核数据结构 进程代码和数据 我们的代码在进程中,全部都是串行调用的 进程创建&am…

入侵检测系统(IDS)

入侵检测 入侵检测(Intrusion Detection)是指发现或确定入侵行为存在或出现的动作,也就是发现、跟踪并记录计算机系统或计算机网络中的非授权行为,或发现并调查系统中可能为视图入侵或病毒感染所带来的异常活动。 入侵检测系统 …

upload-labs第十三关教程

upload-labs第十三关教程 第十三关一、源代码分析代码审计 二、绕过分析1)0x00绕过a.上传eval.pngb.使用burpsuite进行拦截修改之前:修改之后:进入hex模块: c.放包上传成功: d.使用中国蚁剑进行连接 2)%00绕…

20240619在飞凌OK3588-C的LINUX系统启动的时候拉高3个GPIO口141-111-120【方法一】

20240619在飞凌OK3588-C的LINUX系统启动的时候拉高3个GPIO口141-111-120【方法一】 2024/6/19 16:12 缘起:在凌OK3588-C的LINUX R4系统启动的时候,需要拉高GPIO4_B5、GPIO3_B7和GPIO3_D0。 修改rcS,在系统启动的时候,即可拉高。 通…

极具吸引力的小程序 UI 风格

极具吸引力的小程序 UI 风格

002.Linux CentOS7 安装

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

湖北文理学院2024年成人高等继续教育招生简章

湖北文理学院,作为一所历史悠久、底蕴深厚的学府,始终致力于为社会各界培养具备高素质、专业技能和创新精神的优秀人才。在成人高等继续教育领域,湖北文理学院更是凭借其卓越的教学质量和丰富的教育资源,吸引了众多有志于提升自身…

ThinkPHP5大学生社会实践管理系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP5大学生社会实践管理系统 一 介绍 大学生社会实践管理系统基于ThinkPHP5框架开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈:ThinkPHP5mysqlbootstrapphpstudyvscode 二 功…

Gobject tutorial 七

The GObject base class GObject是一个fundamental classed instantiatable type,它的功能如下: 内存管理构建/销毁实例set/get属性方法信号 /*** GObjectClass:* g_type_class: the parent class* constructor: the constructor function is called by g_object…

基于单片机的智能窗户控制系统的设计

摘 要: 根据单片机技术和现代传感器技术 , 本文主要针对基于单片机的智能窗户控制系统的设计进行探讨 , 仅供参考 。 关键词: 单片机 ; 智能窗户 ; 控制系统 ; 设计 在现代科学技术持续发展的带…