数据依赖的公理系统

数据依赖的公理系统

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

一 函数依赖

在这里插入图片描述
理解是,我们在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.

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

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

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


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

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值