假设我有以下关系
C -> B
CB -> AC
CAE -> FB
D -> E
CA -> B
我书中给出的标准封面是C -> AB, CE -> F, D -> E
但是Canonical封面也可以是C - AB, D - EF?
我们可以为一种关系设置两种不同的规范封面吗?
答案 0 :(得分:3)
但是,Canonical封面也可以是
C - AB
,D - EF
?
否,它不能成为您的功能依赖项(FD)的规范封面。 F的规范封面是一套“最小”功能 依赖等效于F ,没有冗余依赖或依赖的冗余部分。
您建议的规范封面不等同于F
。例如,函数依赖CAE->FB
未完全涵盖在您建议的规范封面中,因此它不是规范封面。
另一方面,你的书C -> AB, CE -> F, D -> E
中给出的是一个规范的封面,并且唯一的规范封面可能适用于这组FD。
我们可以为一种关系设置两种不同的规范封面吗?
是我们可以。要找到规范封面,我们会这样做 -
由于上面的第三步,我们可以为一种关系设置不同的规范封面。我将用一个例子来解释这个。
鉴于FD为:
X→YZ
Y→XZ
Z→XY
首先确保单身RHS。所以我们有:
第二没有多余的LHS。已经满意了。
第三次删除所有冗余FD。现在我们可以删除(2),(3)和(6)作为冗余依赖项,并将最小覆盖集设置为:
<强> 1 强>
X→Y,
Y→Z,
Z→X
或者我们可以删除(1),(4)和(5)作为冗余依赖项,并将最小覆盖设置为:
<强> 2 强>
Z→Y,
Y→X,
X→Z
因此,在这种情况下,我们有两个相同关系的规范封面。
答案 1 :(得分:1)
是的,一组功能依赖(不是一种关系)可以有多个规范的封面。日期在数据库系统简介,第7版,第346页中的练习10.12的答案中给出了逐步推导。
日期不使用术语规范封面。他或多或少地使用不可减少的封面。