对于任何关系,规范封面总是唯一的吗?
Is canonical cover always unique for any relationship?
假设我有如下关系
C -> B
CB -> AC
CAE -> FB
D -> E
CA -> B
我书中给出的规范封面是C -> AB, CE -> F, D -> E
但是 Canonical 封面也可以是 C - AB, D - EF?
我们可以为一个关系设置两个不同的 canonical 封面吗?
是的,一组函数依赖(不是关系)可以有多个规范覆盖。 Date 在 数据库系统简介,第 7 版,p346f 中练习 10.12 的答案中给出了逐步推导。
Date 没有使用术语 规范封面。他或多或少地使用了不可约覆盖。
But Canonical cover can also be C - AB
, D - EF
?
否,它不能是您的函数依赖集 (FD) 集的规范覆盖。 F 的规范覆盖是泛函的“最小”集
依赖项等同于 F,没有冗余依赖项或依赖项的冗余部分。
您建议的规范封面不等同于 F
。例如,函数依赖性 CAE->FB
未完全包含在您建议的规范覆盖中,因此它不是规范覆盖。
另一方面,您的书中给出的 C -> AB, CE -> F, D -> E
是规范的封面,只有 规范的封面可能适用于这套 FD。
Can we have two different canonical cover for one relationship?
是的我们可以。要找到 规范封面 我们这样做 -
- 首先确保单例右侧(RHS)
- 第二个 删除任何无关的左侧 (LHS) 属性
- 第三个 删除任何多余的函数依赖
由于上面的第三步,我们可以对一个关系有不同的规范覆盖。我将用一个例子来解释这一点。
给定 FD 为:
X→YZ
Y→XZ
Z→XY
首先确保单例RHS。所以我们有:
- X→Y
- X→Z
- Y→X
- Y→Z
- Z→X
- Z→Y
第二 没有多余的 LHS。已经满意了
第三删除所有多余的FD。现在我们可以删除 (2)、(3) 和 (6) 作为冗余依赖项并将最小覆盖设置为:
1:
X→Y,
Y→Z,
Z→X
或者我们可以删除 (1)、(4) 和 (5) 作为冗余依赖项并将最小覆盖集设置为:
2:
Z→Y,
Y→X,
X→Z
因此,在这种情况下,我们对同一关系有两个规范覆盖。
假设我有如下关系
C -> B
CB -> AC
CAE -> FB
D -> E
CA -> B
我书中给出的规范封面是C -> AB, CE -> F, D -> E
但是 Canonical 封面也可以是 C - AB, D - EF?
我们可以为一个关系设置两个不同的 canonical 封面吗?
是的,一组函数依赖(不是关系)可以有多个规范覆盖。 Date 在 数据库系统简介,第 7 版,p346f 中练习 10.12 的答案中给出了逐步推导。
Date 没有使用术语 规范封面。他或多或少地使用了不可约覆盖。
But Canonical cover can also be
C - AB
,D - EF
?
否,它不能是您的函数依赖集 (FD) 集的规范覆盖。 F 的规范覆盖是泛函的“最小”集 依赖项等同于 F,没有冗余依赖项或依赖项的冗余部分。
您建议的规范封面不等同于 F
。例如,函数依赖性 CAE->FB
未完全包含在您建议的规范覆盖中,因此它不是规范覆盖。
另一方面,您的书中给出的 C -> AB, CE -> F, D -> E
是规范的封面,只有 规范的封面可能适用于这套 FD。
Can we have two different canonical cover for one relationship?
是的我们可以。要找到 规范封面 我们这样做 -
- 首先确保单例右侧(RHS)
- 第二个 删除任何无关的左侧 (LHS) 属性
- 第三个 删除任何多余的函数依赖
由于上面的第三步,我们可以对一个关系有不同的规范覆盖。我将用一个例子来解释这一点。
给定 FD 为:
X→YZ
Y→XZ
Z→XY
首先确保单例RHS。所以我们有:
- X→Y
- X→Z
- Y→X
- Y→Z
- Z→X
- Z→Y
第二 没有多余的 LHS。已经满意了
第三删除所有多余的FD。现在我们可以删除 (2)、(3) 和 (6) 作为冗余依赖项并将最小覆盖设置为:
1:
X→Y,
Y→Z,
Z→X
或者我们可以删除 (1)、(4) 和 (5) 作为冗余依赖项并将最小覆盖集设置为:
2:
Z→Y,
Y→X,
X→Z
因此,在这种情况下,我们对同一关系有两个规范覆盖。