数据库系统概论——数据依赖的公理系统

数据库系统概论——数据依赖的公理系统

数据依赖

数据依赖是公理系统的模式分解算法的理论基础

函数依赖

函数依赖的一个有效而完备的公理系统称为Armstrong公理系统,实际上是一套推理规则,是模式分解算法的基础

用途

  • 从一组函数依赖求得蕴含的函数依赖

  • 求给定关系模式的码

逻辑蕴含

对于满足一组函数依赖F的关系模式R<U, F>,其任何一个关系r,若函数依赖$ X \rightarrow Y 都 成 立 ( 即 ‘ ‘ ‘ r ‘ ‘ ‘ 中 任 意 两 元 组 ‘ ‘ ‘ t , s ‘ ‘ ‘ , 若 ‘ ‘ ‘ t [ X ] = s [ X ] ‘ ‘ ‘ , 则 ‘ ‘ ‘ t [ Y ] = s [ Y ] ‘ ‘ ‘ , 则 称 F 逻 辑 蕴 含 都成立(即```r```中任意两元组```t,s```,若```t[X] = s[X]```,则```t[Y] = s[Y]```,则称F逻辑蕴含 rt,st[X]=s[X]t[Y]=s[Y]F X \rightarrow Y$

Armstrong公理系统

推理规则

设U为属性集总体,F是U的一组函数依赖,对于关系模式R<U, F>,下列推理规则成立

  • 自反律

自反律(Reflexivity)指的是若$ Y \subseteq X \subseteq U , 则 ,则 X \rightarrow Y$为F所蕴含

  • 增广率

增广律(Augmentation)指的是若$ X \rightarrow Y 为 F 所 蕴 含 且 为F所蕴含且 F Z \subseteq U , 则 ,则 XZ \rightarrow YZ$为F所蕴含

  • 传递率

传递率(Transitivity)指的是若 X → Y 和 Y → Z X \rightarrow Y 和 Y \rightarrow Z XYYZ为F所蕴含,则$ X \rightarrow Z$为F所蕴含

导出规则

  • 合并规则

若$ X \rightarrow Y, X \rightarrow Y , 则 ,则 X \rightarrow YZ$
依据增广律和传递律得到

  • 伪传递规则

若$ X \rightarrow Y, WY \rightarrow Z , 则 ,则 XW \rightarrow Z$
依据增广律和传递律得到

扫描二维码关注公众号,回复: 11652851 查看本文章
  • 分解规则

若$ X \rightarrow Y, Z \subseteq Y , 则 ,则 X \rightarrow Z$
依据分解律和传递律得到

合并规则和分解规则引理

$ X \rightarrow A_1, A_2, … A_K 的 充 要 条 件 是 的充要条件是 X \rightarrow A_i$(i = 1, 2, …, k)

有效性

有效性指的是从F出发,根据Armstrong公理系统推导出来的每一个函数依赖一定在 F + F^+ F+

完备性

完备性指的是 F + F^+ F+中的每个函数依赖必定可以由从F出发根据Armstrong公理推导出来

闭包

在关系模式R<U, F>中为F所蕴含的函数依赖的全体叫做F的闭包(closure),记为 F + F^+ F+

X关于函数依赖集的闭包

设F为属性集U上的一组函数依赖,$ X \subseteq U , , X_F^+ = {A | X \rightarrow A能由F根据Armstrong公理导出} , , X_F^+ $称为属性集X关于函数依赖集F的闭包

关于闭包的引理

设F为属性集U上的一组函数依赖,若$ X, Y \subseteq U , 则 ,则 X \rightarrow Y 能 由 F 根 据 A r m s t r o n g 公 理 导 出 的 充 分 必 要 条 件 是 能由F根据Armstrong公理导出的充分必要条件是 FArmstrong Y \subseteq X_F^+$

关于闭包的引理的用途

  • 将判定$ X \rightarrow Y 是 否 由 F 根 据 A r m s t r o n g 公 理 推 导 出 来 的 问 题 转 化 为 求 是否由F根据Armstrong公理推导出来的问题转化为求 FArmstrongX_F+$,判定Y是否为$X_F+$子集的问题

  • X F + = U X_F^+ = U XF+=U,则X是R<U, F>的候选码

求解X关于函数依赖集闭包的算法

对于R<U, F>,求属性集X($X \subseteq ) 关 于 U 上 的 函 数 依 赖 集 F 的 闭 包 )关于U上的函数依赖集F的闭包 UFX_F^+$

输入:X,F
输出: X F + X_F^+ XF+

  1. X ( 0 ) = X , i = 0 X^{(0)} = X, i = 0 X(0)=X,i=0

  2. 求得B
    B = A ∣ ( ∃ V ) ( ∃ W ) ( V → W ∈ F ⋀ V ∈ X ( i ) ⋀ A ∈ W ) B = {A | (\exist V)(\exist W)(V \rightarrow W \in F \bigwedge V \in X^{(i)} \bigwedge A \in W)} B=A(V)(W)(VWFVX(i)AW)

  3. X ( i + 1 ) = B ∪ X ( i ) X^{(i + 1)} = B \cup X^{(i)} X(i+1)=BX(i)

  4. 判断$ X^{(i + 1)} = X^{(i)}$

  5. 若相等或X^{(i)} = U,X^{(i)}即为 X F + X_F^+ XF+,算法终止

  6. 否则, i = i + 1 i = i + 1 i=i+1,返回第二步

函数依赖集

函数依赖集等价定义

G + = F + G^+ = F^+ G+=F+,就说F覆盖G,或F是G的覆盖或G是F的覆盖,或F与G等价

两个函数依赖集等价是指它们的闭包等价

最小依赖集

F为最小依赖集若满足下列条件

  • F中任一函数依赖的右部仅含有一个属性

  • F中不存在函数依赖$ X \rightarrow A , 使 得 ,使得 使F 与 与 F - KaTeX parse error: Expected '}', got 'EOF' at end of input: { X - A$}等价,即F中的函数依赖均不能由F中的其他函数依赖导出

  • F中不存在函数依赖$ X \rightarrow A , , X 有 真 子 集 有真子集 Z 使 得 使得 使F - KaTeX parse error: Expected '}', got 'EOF' at end of input: { X - A KaTeX parse error: Expected 'EOF', got '}' at position 1: }̲\cup$ {$Z \rightarrow A $}与F等价,即F中各函数依赖左部均为最小属性集(不存在冗余属性)

特别地,F的最小依赖集 F m F_m Fm不是唯一的,它与对各函数依赖及 X → A X \rightarrow A XA中各属性的处置顺序有关

最小依赖集求解算法

  1. 将F中所有函数依赖的右边( → \rightarrow 的右边)化为单一属性

  2. 将F中所有函数依赖的左边( → \rightarrow 的左边)的冗余属性去掉

  3. 将F中所有冗余函数依赖去掉

鸣谢

数据库系统概论(第5版)
数据库系统概念(原书第6版)

最后

  • 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解

猜你喜欢

转载自blog.csdn.net/qq_44486439/article/details/108014694
今日推荐