最小依赖集(正则覆盖)

最小依赖集(正则覆盖)

函数依赖集F保证了数据库数据的有效性,但是检查F闭包的开销比较大,因此可以检查拥有相同闭包的函数依赖集f,f是F的最小依赖集,它们拥有相同的闭包。如果去除函数依赖中的一个属性而没有改变该函数依赖集的闭包,则称该属性是无关的

《数据库系统概念》8.4.3节无关属性的定义:函数依赖集F及F中的函数依赖α→β

  • 如果A∈α并且F逻辑蕴含(F – { α → β }) ∪ { ( α – A ) → β },则A是在α中是无关属性。
  • 如果A∈β并且函数依赖集(F – { α → β }) ∪ { α → ( β – A ) }逻辑蕴含F,则A在β中是无关属性。

正则覆盖Fc是一个依赖集,Fc有如下性质:

  • Fc中任何函数依赖都不含有无关属性。
  • Fc中函数依赖的左半部都是唯一的。即Fc中不存在两个依赖α1 → β1和α2 → β2,满足α1 = α2 。

《数据库系统导论》11.6节,当且仅当满足以下条件时,该函数依赖集为最小函数依赖集:

  1. 每个函数依赖的右边(应变量)只含有一个属性(即它是单元素集合)。
  2. 每个函数依赖的左边(自变量)是不可约的——删除自变量的任何一个属性都将改变闭包
  3. 删除任各一个函数依赖都会改变它的闭包。
Comments are closed.