关系数据库理论之最小依赖集的求解

前言

最近学习数据库理论,刚好学到第六章的关于关系数据库极小函数依赖集的问题,此篇博客仅为记录学习,巩固知识点。在本篇中,会介绍什么是闭包,什么是极小函数依赖集以及极小函数依赖集的求法。如有问题,欢迎各位大佬指出——

闭包

在谈怎么样求最小函数依赖集之前,我们先来了解一下闭包的相关概念(主要是数据库这块涉及到的)。

在这里我们介绍两种,一种是函数依赖集 F F F的闭包,一种是属性集 X X X X ⊆ U X⊆U XU)关于 U U U上的函数依赖集F的闭包 X F + X_F{^+} XF+

函数依赖集F的闭包

在关系模式 R < U , F > R<U,F> R<UF>中为 F F F所逻辑蕴含的函数依赖的全体叫作 F F F闭包,记为 F + F{^+} F+

属性集关于函数依赖集的闭包

F F F为属性集 U U U上的一组函数依赖, X X X Y ⊆ U Y⊆U YU X F + X_F{^+} XF+ = { A ∣ X → A A|X →A AXA能由 F F F根据Armstrong公理导出}, X F + X_F{^+} XF+ 称为属性集 X X X关于函数依赖集 F F F的闭包

说白了,这个闭包就是由一个(或一些)属性直接或间接推导出的所有属性的集合。

极小函数依赖集(最小覆盖)

定义

如果函数依赖集 F F F满足下列条件,则称 F F F是一个极小函数依赖集,亦称为最小依赖集最小覆盖

  • F F F中任意函数依赖的右部仅含有一个属性。
  • F F F中不存在这样的函数依赖 X → A X →A XA,使得 F F F F F F−{ X → A X →A XA}等价。
  • F F F中不存在这样的函数依赖 X → A X →A XA X X X有真子集 Z Z Z使得 F F F−{ X → A X →A XA} ∪ ​ \cup ​ { Z → A ​ Z→A​ ZA}与 F ​ F​ F等价。
解释

根据定义,我们知道,最小依赖集必须满足下面三个条件:

  1. 被决定因素最小化: F F F的最小函数依赖的右侧只能有一个属性
  2. 决定因素最小化: F F F中不允许有这样的函数依赖:若函数依赖集中存在 A B → Y AB\rightarrow Y ABY,现对该依赖的左部进行化简,即删除 A A A,得 B → Y B\rightarrow Y BY;或删除 B B B,得 A → Y A\rightarrow Y AY。在经过化简后的函数依赖集与没有化简前的函数依赖集等价,这样的函数依赖是不允许存在 F F F中的。
  3. 函数依赖数目最小化: 现存的函数依赖集中去掉一个函数依赖 X → A X →A XA,所得到的新的函数依赖集与原来的函数依赖集是等价的,这样的函数依赖是不允许存在 F F F中的。

应当指出, F F F的最小依赖集 F m F_m Fm不一定唯一,它与对各函数依赖 F D i FD_i FDi X → A X →A XA X X X各属性的处置顺序有关。

通用算法

先插入一个推理规则:(由Armstrong公理系统的三条推理规则而得到的一个推理规则。)

分解规则: X → Y X\rightarrow Y XY以及 Z ⊆ Y Z⊆Y ZY,可以得到 X → Z X\rightarrow Z XZ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值