我有这个关系:
(City, State, Governor, Population)
给定 FD:
City, State -> Population
State -> Governor
Governor -> State
我理解这是对 FD 的最小覆盖。
我们如何证明这是在 2NF 中?
维基百科对 2NF 的定义:
- 如果一个关系满足以下两个要求,则该关系处于第二范式: 它处于第一范式。它没有任何在功能上依赖于关系的任何候选键的任何真子集的非主属性。
因此,为此我们需要查看所有可能的 FD,方法是重新制定原始依赖项。
应用于我的示例: Candiate-Keys 是: City, State 和 City, Governor 并且在我的示例中唯一的非主要属性是Population。
所以我们需要证明FD:
(城市,州)-> 人口;(城市,州长)-> 人口
- 都包含在上面的一组函数依赖的闭包中
- 如果我们从左侧减少任何属性,则该 FD 不包含在闭包中。
我们可以使用闭包算法来确定这一点,方法是插入左侧并显示通过给定的依赖关系我们将到达人口(右侧)。(City, State) 和 (City, Governor) 的关闭分别包含人口。但它们的任何子集都不会。
这有点正确吗?