第三范式条件

Third Normal Form Conditions

我知道关系是 3NF 它必须是 2NF 并且不应该存在传递依赖但我无法回答以下问题:

For a relationship to be 3NF :
A) All Attributes should depend on the primary key.
B) The relationship should only have one Foreign Key.
C) The relationship should only have one Primary Key.
D) The Relationship's Table should only have atomic values

D 适用于 3NF 关系,因为它是 1NF 的条件之一,要使关系成为 3NF,它必须是 2NF1NFC 过于笼统,不仅仅适用于 3NF,但我的书选择了它作为答案! B 与规范化无关,A 可能被视为 2NF 但他们没有说所有非属性所以我实际上不知道,这里的正确答案是什么?

根据 "superkey" 的定义,所有属性都依赖于一个超级键。通过将 "CK"(候选键)定义为不包含更小超键的超键,所有属性都依赖于 CK。通过将 "PK"(主键)定义为可区分的 CK,所有属性都依赖于 PK。所以A是答案。

FK(外键)与规范化无关。所以B不是答案。

根据"PK"的定义,一个relation/schema最多可以有一个,我们从CK中挑选。总能有PK,因为总有至少一个CK。您是否必须选择 PK 取决于您的教科书——PK 本身在归一化理论中没有任何作用。不幸的是 "should only have one" 不清楚,因为它可能只表示一个,也可能最多表示一个。因此,如果它与你的教科书一致,则答案为 C;否则不会。跟着你的课本走。

讨论 "atomic" 值的演示文稿需要它们出现在 "relation" 的定义或“1NF”及更高 NF 的定义中。因此,对于您的教科书,大概 D 是一个答案。 。跟着你的课本走。

(None 的选项保证 3NF。)

PS 您对 3NF 的描述不正确。只有某些传递性 FD(函数依赖性)很重要——3NF 是 when/iff2NF 并且没有非 CK 属性传递性地依赖于 CK。 (如果一个人的 "is in 1NF" 只是 "is a relation" 那么一个人可以去掉“2NF &”。)并且确保你得到 "transitive FD" 的正确定义——对于集合 X & Y,X- >Y 是可传递的 when/iff 存在集合 S,其中 X->S & S->Y & not S->X & not S=Y。从好的教科书中获得正确的定义。