基于函数依赖的关键字定义
在关系模式R(U,F)中,如有K∈U且满足
则称K为关系R的关键字。
例:寻找下述关系模式的关键字
由 A→C 及增广规则 R2 可得:AD→CD ……(1)
由 D→B 及增广规则 R2 可得:AD→AB ……(2)
由 (1), (2) 及合并规则 R5 可得:AD→ABCD
引入属性集闭包前先介绍一下逻辑蕴含:
FD(函数依赖)的逻辑蕴涵概念
设 F 是关系模式 R(U) 的一个函数依赖集,X, Y 是关系模式 R 的属性子集,如果从 F 中的已有函数依赖关系利用 Armstrong 公理系统能够推出 X→Y,则称 F 逻辑蕴涵 X→Y,并记为:
函数依赖集 F 的闭包 F+
由被 F 逻辑蕴涵的所有函数依赖关系构成的集合被称为函数依赖集 F 的闭包,并记为 F+
例: F = { A→B, B→C },F的闭包计算结果如下:
F+={
A→A, A→B, A→C, A→AB, A→BC, A→AC, A→ABC, B→B, B→C, B→BC, C→C, AB→A, AB→B, AB→C, AB→AB, AB→BC, AB→AC, AB→ABC AC→A, AC→B, AC→C, AC→AB, AC→BC, AC→AC, AC→ABC BC→B, BC→C, BC→BC ABC→A, ABC→B, ABC→C ABC→AB, ABC→BC, ABC→AC, ABC→ABC }
属性集闭包: XF+(可以简写为X+)
设 F 是关系模式 R(U) 上的函数依赖集,X 是关系模式 R(U) 的属性子集,由所有函数依赖于 X 的属性所构成的集合被称为属性集 X 在函数依赖集 F 上的闭包。
计算属性集X在函数依赖集F上的闭包XF+(简写为X+)
X+:=X;
repeat
oldX+ := X+;
for each functional dependencyY→Zin F do
ifY∈X+thenX+:=X+Z;
until ( oldX+ = X+ )