0

我的问题是:


1)如果我有关系R(A,B,C),作为AB主键,并且F = {},我可以假设C取决于AB?我会说不,但我只是想确定一下。


2) 我想当然地认为AB -> CDE这与说AB -> C,和说AB -> D,是一样的。我对吗?AB -> EAB -> CEAB -> D


3) 取R(A,B,C,D),作为AB的主键F = {AB->C}。这是在2NF吗?我会说不,因为D不依赖于任何其他属性,更不用说主键了!


4)我试图了解是否与

R(K, L, M, N, O,P) 

作为KL主键

F = { KL->MN, KL->OP, M->N, O->P }

R2NF或中3NF。两者P和都N依赖于(虽然是间接的)整个主键。在里面就够了2NF吗?如果是,我会说不R在,3NF因为关系上的非主要属性之间不应该存在依赖3NF关系,对吧?

谢谢

4

1 回答 1

1

我假设这是家庭作业,所以我给出方向,不一定是答案。

1)如果我有关系R(A,B,C),AB是主键,F = {},我可以假设C依赖于AB吗?我会说不,但我只是想确定一下。

当你没有得到任何功能依赖时,你知道如何识别功能依赖吗?在这种情况下,您问自己这个问题:“给定 {A,B} 的值,这些值是否标识了一个且只有一个 {C} 的值?” 如果答案是“是”,则说明您存在功能依赖;如果答案是“不”,那么你不会。

2) 我理所当然地认为 AB -> CDE 与 AB -> C, AB -> D, AB -> E 和 AB -> CE, AB -> D 相同。我说得对吗?

我不会说它“和说一样”。我想说的是,从功能依赖 AB->CDE 中,您可以派生所有其他功能依赖。

3) 取 R(A,B,C,D),AB 是主键,F = {AB->C}。这是2NF吗?我会说不,因为 D 不依赖于任何其他属性,更不用说主键了!

见 1 号。


在下面的评论中扩展问题。. .

如果您说 {A,B} -> {每隔一列},那么为什么不是所有 1NF 关系都在 2NF 中?

因为不是每个 1NF 表都有一个多列主键,也不是每个具有多列主键的 1NF 表具有仅由该键的一部分确定的其他列。

想象一个 PK 是一个人的 ID。现在想象这种关系中唯一的其他属性是 97 年在亚利桑那州飞行的鸭子的数量。现实世界中 A 和 B 之间没有任何关系,但根据您的说法,人们会假设 A -> B。

哦,但是这两列之间有关系的。它们之间存在关系,因为将它们放在同一张表中。在该表中,如果您知道 A 的值,那么您只知道 B 的一个值。(如果 A 确定 B 的多个值,则 A 不可能是主键。)

于 2011-07-18T02:02:47.793 回答