FD和数据库

时间:2016-04-16 01:53:23

标签: database database-design relational-database database-schema functional-dependencies

我试图找到此表中包含的所有功能依赖项:

enter image description here

我理解的方式是:如果教师确定office_hours,那么由于Sun在教师中有4次出现,每个人必须映射到office_hours的相同值。但是因为他们为office_hours映射到3个不同的值,FD教员---> office_hours并不在此表中。正确的吗?

我得到了下表中的FD。我怎样才能检查这是否正确?

[教员] ---> {室,电话,}

{电话} ----> {教员,房间,}

{教员,室温} ---> {电话}

(教师,电话,室] ---> {当然}

2 个答案:

答案 0 :(得分:1)

将多条评论转移到答案中,并进行一些修改,补充等等。

这整个答案假设仅根据表中可见的值推断功能依赖是合法的。如果还有其他信息需要修改规则,答案可能需要改变,但问题也必须改变。

你是对的,教师不确定办公时间。同样明确的是,季度不确定办公时间; 2013年秋季有两个不同的办公时间值。 OTOH,教师+季度确定办公时间;电话+季度和房间+季度也是如此,但似乎每个参与者都认为教师+季度是相关的决定因素。

空集Φ确定节号,因为所有行的节号都相同。

三合会教员,房间,电话可以根据样本数据确定另外两列;但总的来说,假设教师是这三个属性中最重要的成员,房间和电话是由教师决定的,这是正常的。 (请注意,我指的是仅仅通过这三个属性对样本数据进行投影。)

你没有说明决定课程的内容(如果有的话) - 你还没有提到它。

  

唉唉!!是的,我看到季度和办公时间的问题 - 谢谢。但至于课程,我看不出是什么决定了课程,除非它的章节编号?我正在考虑季度课程,但2013年秋季有4门不同的课程。

如果有的话,课程根据数据确定教师,因此它确定任何和所有教师,电话,房间三人组。考虑到课程CS520,你知道教师是C Sun,E& T A317和手机x6697,不是吗?这不是唯一可以提供的课程,但是每门课程都会为教师,电话,房间提供相同的价值。

  是的,你是对的。我对它的工作原理感到非常困惑,但它变得更加清晰。谢谢您的帮助。现在我要弄清楚如何从这些FD中获取密钥。我还用我改变它的内容更新了我的答案。另外,我在想:教师,房间,电话也不会给办公时间吗?

否(教职员工,房间,电话不控制办公时间.C Sun在不同的季度有不同的办公时间。

  

啊!现在我很困惑。所以,为了确保,这(教师,电话,房间)⟶{课程}是正确的吗?我认为(教师,电话,房间)⟶{officehours}并没有多大区别;相同的办公时间与同一个教职员工,电话和房间相匹配。另外,为什么宿舍会发挥作用?如果我们只是比较(教师,电话,房间)⟶{course}。

没有。每个教师都教授两门课程,因此仅靠教师不会确定课程。 事实上,我认为没有什么能决定当然。

根据给定的数据,在我看来FD是:

  • 教师⟶电话,房间
  • 房间⟶教师,电话
  • 电话⟶教师,房间

  • 当然⟶师,房,电话

  • 教师,季度⟶office_hours

  • Φ⟶section

(其中Φ是空集)。

答案 1 :(得分:0)

如果您只被告知示例数据是某个表的可能值,那么您只知道某些 的情况> FD。也就是说某些列的子元素值与另一列的多个值一起出现。当给定的可能行列式仅出现一个值时,您无法推断出存在FD。

您可能被告知要提出您认为持有的合理商业规则。除了以上那些之外,这将导致某些FD持有或不持有。

或者您可能被告知已选择数据,以便显示所有非FD案例。然后你就知道了一些FD,并且可以使用FD推导规则来推导其他FD。

或者您可能被告知,只要某些列的子组值只显示另一列的一个值,则表示FD。你再次知道一些FD,并且可以使用FD推导规则推导出其他FD。

因此,您需要找出已设置的示例表以进行通信。