Armstrong公理系统,求属性集X关于F的闭包XF+,最小依赖集

Armstrong公理系统

设U 是R 的属性集,F 是R 上成立的只涉及U 中属性的函数依赖集,函数依赖的推理规则有以下三条:

  • 自反律:若属性集Y包含于属性集X,属性集X 包含于U,则X→Y 在R 上成立

  • 增广律:若X→Y 在R 上成立,且属性集Z 包含于属性集U,则XZ→YZ 在R上成立

  • 传递律:若X→Y 和 Y→Z在R 上成立,则X →Z 在R 上成立

推导出Armstrong公理的推论:

  • 合并规则:若X→Y,X→Z同时在R上成立,则X→YZ在R上也成立
  • 分解规则:若X→W在R上成立,且属性集Z包含于W,则X→Z在R上也成立。
  • 伪传递规则:由X→Y,WY→Z,有XW→Z。则 XW→YW

函数依赖闭包

闭包 F +

定义:在关系模式R中为F所逻辑蕴含的函数依赖的全体叫
作F的闭包(closure),记为F +。

X关于函数依赖集F的闭包XF+

定义:设F为属性集U上的一组函数依赖,X ⊆U, XF+ ={ A|X→A能 由F根据Armstrong公理导出},XF+称为属性集X关于函数依赖集F的闭
包。

关于闭包的引理

设F为属性集U上的一组函数依赖,X,Y ⊆ U,X→Y能由F根 据Armstrong公理导出的充分必要条件是Y ⊆XF+。

用途:

  1. 将判定X→Y是否能由F根据Armstrong公理导出的问题,就转化 为求出XF+ ,判定Y是否为XF+的子集的问题。
  2. 如果XF+= U,X是R 的候选码。

求法举例:

结束条件为X(i)=X(i-1)或X(i)=U


最小依赖集

Armstrong公理系统,求属性集X关于F的闭包XF+,最小依赖集_第1张图片
例题:

R,U=ABCD,
函数依赖集 F = {A→BD,AB→C,C→D}。 求:F最小函数依赖集

解法步骤:

  1. 将F中的所有函数依赖的右边化为单一属性
  2. 去掉F中的所有函数依赖左边的冗余属性
  3. 去掉F中所有冗余的函数依赖

Armstrong公理系统,求属性集X关于F的闭包XF+,最小依赖集_第2张图片
Armstrong公理系统,求属性集X关于F的闭包XF+,最小依赖集_第3张图片
(a)+含c,b为冗杂属性。
Armstrong公理系统,求属性集X关于F的闭包XF+,最小依赖集_第4张图片
去掉冗余属性及冗余函数的具体方法便是求闭包,看闭包集里面是否包含所有关系并去掉重复关系

F的最小依赖集Fm不一定是唯一的

你可能感兴趣的:(sql基础)