避免来自 non-trivial FD 的微不足道的 MVD?

Avoiding trivial MVDs from non-trivial FDs?

我有两个来自一个关系的函数依赖:

meetid -> pid
meetid, pid -> status

对于关系会议(meetid、pid、status)

我想使用促销 方法从中创建多值依赖项。问题是我不确定在这种情况下 meetid ->> pid 是否合法,因为 complementation 规则将使其他 MVD 非法(我认为):meetid ->> status.

另一个 FD 将创建一个我认为是微不足道的 MVD 的依赖项。

meetid,pid ->> status

在将它们提升为 MVD 时,这种关系注定是微不足道的,还是我在此过程中遗漏了什么?

两个依赖项:

meetid → pid
meetid, pid → status

不是最小的,因为它们可以简化(例如通过计算规范覆盖):

meetid → pid
meetid → status

从这里我们也知道 meetid 是关系的唯一候选键。从 FD X → Y 总是可以导出 MVD X →→ Y,因此,您同时具有 MVD 依赖项:

meetid →→ pid
meeditd →→ status

(注意第一个也可以推导出第二个)

另请注意,其中 none 是一个平凡的 MVD,因为如果 Y 是空集或 XY 是关系的所有属性。

此外,我们可以注意到模式在 4NF 中,因为它在 BCNF 中,并且非平凡 MVD 的每个左侧都是一个超键。

最后,请注意每个函数依赖都可以“提升”为多值依赖,因此我们也有meetid, pid →→ status(和这个 是微不足道的)。