3NF 和关系和函数依赖的无损分解

3NF and lossless decomposition of relation and functional dependencies

我试图找到以下关于函数依赖关系的 3NF 无损分解:

首先,我从上面给出的函数依赖项中导出密钥开始。我认为关键如下:

{L,T}, {E,T} 和 {T,M} 因为关系中的所有属性都可以使用这些键中的任何一个获得。

现在,我熟悉的3NF的定义是:

A relation schema R is in 3NF if, whenever a function dependency X -> A holds in R, either
(a) X is a superkey of R, or
(b) A is a prime attribute of R.

如果我们将其应用于问题中给出的 FD,则以下内容成立:

鉴于此,如何获得关于函数依赖关系的 3NF 无损分解?我怀疑我假设关系在 3NF 中可能是错误的,因为存在传递依赖但不是 100% 确定。

如果有人可以就我可能出错的地方提供意见,我将不胜感激。

您的回答正确:

  1. 所有的key实际上都是LT, ET, TM,因为它们决定了所有其他的属性,没有其他的key,因为它们的子集都不满足这个属性。

  2. 依赖关系已经是关系的规范覆盖。

  3. 由于您所述的原因,该关系已经在 3NF 中。

请注意,如果您正确地遵循了第三范式的定义,则无需检查是否存在传递函数依赖。

我们还可以注意到原始关系不是 Boyce-Codd 范式,对于依赖 E → M,通过应用分析算法将其带入 BCNF 产生分解:

R1 <(E M), {E → M}>

R2 <(E L T), {L T → E, E T → L}>

有属性依赖T M → E丢失