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<U,F>中为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+。
用途:
- 将判定X→Y是否能由F根据Armstrong公理导出的问题,就转化 为求出XF+ ,判定Y是否为XF+的子集的问题。
- 如果XF+= U,X是R<U,F> 的候选码。
求法举例:
结束条件为X(i)=X(i-1)或X(i)=U
最小依赖集
例题:
R<U, F>,U=ABCD,
函数依赖集 F = {A→BD,AB→C,C→D}。 求:F最小函数依赖集
解法步骤:
- 将F中的所有函数依赖的右边化为单一属性
- 去掉F中的所有函数依赖左边的冗余属性
- 去掉F中所有冗余的函数依赖
(a)+含c,b为冗杂属性。
去掉冗余属性及冗余函数的具体方法便是求闭包,看闭包集里面是否包含所有关系并去掉重复关系
F的最小依赖集Fm不一定是唯一的