找到关系的所有多值依赖项

时间:2014-11-05 01:42:45

标签: dependencies functional-dependencies

有人能解释如何找到以下关系的所有多值依赖项吗?

enter image description here

enter image description here

据我所知,任何FD也都是MVD,因此根据该定义,给定的FD是MVD。但是,我迷失在如何找到所有其他MVD。

1 个答案:

答案 0 :(得分:1)

首先,删除" office"来自"员工"通过投影。这消除了" employees"。

中的部分密钥依赖性
  • 员工(姓名,项目,任务
  • emp_offices(名称,办公室)

现在"员工"在BCNF中,emp_offices至少为5NF。

接下来,"名称" - >>"任务"是一个非平凡的多值依赖," name"不是员工的超级钥匙"。删除"任务"来自"员工"通过投影。

  • 员工(名称,项目
  • emp_offices(名称,办公室)
  • emp_tasks(名称,任务

所有这三个都至少5NF。

我改变了"员工的姓名"关系,因为它不再与员工有关。

  • emp_projects(名称,项目
  • emp_offices(名称,办公室)
  • emp_tasks(名称,任务

如果您需要算法,搜索词是" 4nf算法"。你在这里看到的基本上是the 4NF algorithm的应用。