《数据库系统概念》第八章:关系数据库设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/monochrome00/article/details/84313191

函数依赖理论


Armstrong定理(Armstrong's axiom)

  • 自反律(reflexivity rule):\alpha为一属性集且\beta \subseteq \alpha,则\alpha \rightarrow \beta成立
  • 增补律(augmentation rule):\alpha \rightarrow \beta成立且\gamma为一属性集,则\gamma \alpha \rightarrow \gamma \beta成立。
  • 传递律(transitivity rule):\alpha \rightarrow \beta\beta \rightarrow \gamma成立,则\alpha \rightarrow \gamma成立。

另外的一些规则:

  • 合并律(union rule):\alpha \rightarrow \beta\alpha \rightarrow \gamma成立,则\alpha \rightarrow \beta\gamma成立。
  • 分解律(decomposition):\alpha \rightarrow \beta\gamma成立,则\alpha \rightarrow \beta\alpha \rightarrow \gamma成立。
  • 伪传递律(pseudotransitivity rule):\alpha \rightarrow \beta\gamma \beta \rightarrow \delta成立,则\alpha \gamma \rightarrow \delta成立。

逻辑蕴含(logically imply):如果函数依赖集F能推出函数依赖f,则称fF逻辑蕴含。

函数依赖集的闭包(closure):F为一个函数依赖集,F的闭包是被F逻辑蕴含的所有函数依赖的集合,记作F^{+}

函数确定(functionally determine):如果\alpha \rightarrow B,我们称属性B\alpha函数确定。

属性集的闭包:\alpha为一个属性集,我们将函数依赖集F下被\alpha函数是确定的所有属性的集合成为F\alpha的闭包,记为\alpha^{+}


部分函数依赖(partial functional dependency):如果X\rightarrow Y,存在X^{'}X的一个子集使,得X^{'}\rightarrow Y,则称Y部分依赖于X

完全函数依赖(Full functional dependency):如果X\rightarrow Y存在X^{'}X的一个子集,使得X^{'}\rightarrow Y,则称Y完全依赖于X

传递函数依赖(transitive functional dependency):如果X\rightarrow YY\rightarrow Z,则称Z传递依赖于X

平凡的(trivial)函数依赖:如果Y\subseteq X,则称X\rightarrow Y这个函数依赖是平凡的。


无关属性(extraneous attribute):如果去除函数依赖中的一个属性不改变该函数依赖集的闭包,则称该属性是无关的。

正则覆盖(canonical cover)F的正则覆盖F_{c}是一个依赖集,使得F逻辑蕴含F_{c}中的所有依赖,并且F_{c}逻辑蕴含F中的所有依赖。此外F_{c}必须既有如下性质:

  • F_{c}中任何函数都不含无关属性。
  • F_{c}中函数依赖的左半部都是唯一的。


无损分解/无损连接分解(lossless decomposition):

  • R_{1}R_{2}R的无损分解,当且仅当\prod R_{1}(R)\Join \prod R_{2}(R)=R
  • R_{1}R_{2}R的无损分解,当且仅当R_{1}\cap R_{2}R_{1}R_{2}的超码。

有所分解/有损连接分解(lossy decomposition):不是无损分解的分解成为有损分解。


限定(restriction):F为模式R上的一个函数依赖集,R_{1}R_{2}……R_{n}R的一个分解。FR_{i}上的限定是F^{+}中所有只包含R_{i}中属性的函数依赖的集合F_{i}

保持依赖的分解(dependency-preserving decomposition):F^{'}=F_{1}\cup F_{2}\cup...\cup F_{n}如果F^{'^{*}}=F^{*},则该分解保持依赖。

保持依赖的算法可以直接按照定义算,也可以按下图所示:​​​

保持依赖性的验证


范式

原子域:一个域是原子的(atomic)当且仅当该域的元素是不可分的单元。

第一范式(First Normal Form,1NF):如果关系模式R的所有属性的域都是原子的,那么R属于第一范式。

第二范式(Second Normal Form,2NF):如果关系模式R属于第一范式,且所有非主属性都完全依赖于候选码,那么R属于第二范式。

第三范式(Second Normal Form,2NF):如果关系模式R属于第二范式,且所有非主属性都不传递依赖于候选码,那么R属于第三范式。

Boyce-Codd范式(Boyce-Codd Normal Form,BCNF):如果关系模式R属于第三范式,且主属性不依赖于主属性,那么R属于第三范式。

 

猜你喜欢

转载自blog.csdn.net/monochrome00/article/details/84313191