函数依赖:
属性集 α 决定属性集 β ,则称有函数依赖
逻辑蕴含:
F能推出 原不直观存在于 函数依赖集F 中的函数依赖 α β,则成α β被函数依赖集F逻辑蕴含
函数依赖的闭包 :
由关系模式R直观得到的函数依赖F所推出的所有隐含的或未隐含的(直观的)函数依赖的集合
举例:
F中有α–>β,β–>ω
则函数闭包 中存在α–>ω
Armstrong公理(以下的αβ形式表示α和β的并集):
1. 自反律(叫大推小更确切):
集合A能推出其集合子集b
2. 增补律(加了也不影响)
若α-->β,则αω-->βω
3. 传递律(一传十十传百)
α-->β,β-->ω,则α-->ω
Armstrong公理推论(以下的αβ形式表示α和β的并集):
1. 合并律(合并右边)
α-->β,α-->ω,则α-->βω
2. 分解律(分解右边)
α-->βω,则α-->ω,α-->β
3. 伪传递律(左边加一点)
α-->β,βπ-->ω则απ-->ω
属性的闭包
在关系模式R所对应的F^+^中,有 ,则所有β组成的集合 叫做α的属性闭包
属性闭包算法:
result=A //此处A是一个属性集,result就是要计算的属性闭包
for each α-->β in F:
if α in result: //α已经在属性闭包里了,即A-->α是成立的
result=result+β //增加属性闭包
正则覆盖
将原函数依赖集F中的函数依赖α–>β中的部分(α或β属性中)冗余属性删除。 和 F 的函数依赖的闭包是相同的
属性是否冗余判断条件,对于α–>β函数依赖(哪边冗余F在哪边)
α属性集中有属性A是冗余的, 成立:
F 逻辑蕴含
β属性集中有属性b是冗余的, 成立
逻辑蕴含 F
无损分解
将关系模式R分解成 关系模式 ,则:
;即 的super key