数据依赖的公理系统

2024-01-06 13:08
文章标签 数据 系统 依赖 公理

本文主要是介绍数据依赖的公理系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据依赖的公理系统

在说公理系统前,要理解函数依赖的概念(可以看我博客里面讲范式的文章也有提到函数依赖的定义)

一 函数依赖

在这里插入图片描述
理解是,我们在R里面任意找一个r关系,对于这个关系的元组s和t,当s和t在属性(组)X上面相等,则s和t在Y属性(组)上也相等。这样被称为,X函数确定Y函数或者说Y函数依赖于X函数(X->Y).

二 逻辑蕴含

在这里插入图片描述
理解是,在R关系模式里面,U是属性集,F是函数依赖集(一些函数依赖组成),在这个关系模式里面,如果所有关系都满足 X->Y这一个函数依赖,则成为F逻辑蕴含X->Y。

例如
R<U,F>: U = {A,B,C} F={A->B,B->C}
则有,F逻辑蕴含A->B,AB->B,A->C

理由是:A->B是在F函数依赖集里面显式给出的,AB->B B属性式AB的一个子集,所以AB必然决定B, A->C则是通过函数依赖传递得到的。

Armstrong(阿姆斯特朗)公理系统

它是一套推理规则,是模式分解算法的理论基础,
以下是公理系统的重要规律和推论

规律

  1. 自反律(Reflexivity):若Y X  U,则X →Y为F所蕴含。
    //X包含Y,即Y是X的子集,所以必然有X决定Y
  2. 增广律(Augmentation):若X→Y为F所蕴含,且Z  U,则XZ→YZ为F所蕴含。
    //可以在函数依赖两边加一样的属性。
  3. 传递律(Transitivity):若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。

导出推论:

  1. 合并规则:由X→Y,X→Z,有X→YZ
  2. 伪传递规则:由X→Y,WY→Z,有XW→Z。
  3. 分解规则:由X→Y及 Z含于Y,有X→Z。

性质

有效性/确定性:函数依赖集F根据公理推出的每一条函数依赖都是正确的,而且都在F的闭包中。
完备性:函数依赖集F闭包中所有的函数依赖都可以用公理导出。

三 函数依赖的闭包

定义:若F为关系模式R(U)的函数依赖集,我们把F以及所有被F逻辑蕴涵的函数依赖的集合称为F的闭包,记为F+。

函数依赖的闭包指F所逻辑蕴含的所有成立的函数依赖,而对于平凡函数依赖(如 (A,B)—>A )都被F所逻辑蕴含,即便F是一个空集,其闭包也包含很多函数依赖
在这里插入图片描述
这样把闭包的所有成员全部罗列出来通常是没有很大意义的。

属性集的闭包

定义:设F位属性集U上的一组函数依赖,X含于U,则

称为是属性集X关于函数依赖集F的闭包
在F确定的情形下,也可以写成X+

*例如
R<U,F>: U ={A,B,C} F={A->B,B->C}
则X关于函数依赖集F的闭包是ABC({A,B,C}的简写)
因为A->A,A->B,A->C都可以直接或者间接得出

前面提及是罗列出闭包的所有成员是不实际的,有很多,而且是意义不大的一件事情。但是我们如果真的要表示一个闭包时该怎么办呢?或者说我们在要判断一个函数依赖是否成立(是否在一个函数依赖集里面)时,我们要怎么求解呢?

接下来的定理,它将函数依赖是否成立 转化为 属性集闭包的问题
在这里插入图片描述
说明:X决定Y当且仅当Y时X属性集闭包的一个子集 或者可以说, Y要在X属性集闭包里面,才可以说X确定Y.

这样我们就把本来要计算一个函数依赖闭包的问题,转化位了一个属性集闭包的问题

对于属性集闭包的求解
我们提供一套算法:
在这里插入图片描述

例题:
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述

这篇关于数据依赖的公理系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/576447

相关文章

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

Python数据分析与可视化的全面指南(从数据清洗到图表呈现)

《Python数据分析与可视化的全面指南(从数据清洗到图表呈现)》Python是数据分析与可视化领域中最受欢迎的编程语言之一,凭借其丰富的库和工具,Python能够帮助我们快速处理、分析数据并生成高质... 目录一、数据采集与初步探索二、数据清洗的七种武器1. 缺失值处理策略2. 异常值检测与修正3. 数据