Database normalization 为什么这个FD会产生3NF?

Database normalization 为什么这个FD会产生3NF?,database-normalization,Database Normalization,这样的问题: 考虑满足以下函数依赖关系的关系方案ABCDEF: BC-->ADEF CD-->B E-->D BC是一个密钥,被指定为主密钥。解释为什么关系为3NF 对我来说,它似乎不是一个3NF,因为E-->D是一个可传递的依赖项,但像这样问的问题是它必须是一个3NF?那我怎么解释它是3NF呢 BC是一个密钥,被指定为主密钥 这无关紧要 相关的是有三个候选键:BC、CD和CE 关系在3NF中当且仅当 关系为2NF,且 每个非素数属性都不可传递地依赖于每个候选密钥 非素数属性是不属于任何候选

这样的问题:

考虑满足以下函数依赖关系的关系方案ABCDEF:

BC-->ADEF

CD-->B

E-->D

BC是一个密钥,被指定为主密钥。解释为什么关系为3NF

对我来说,它似乎不是一个3NF,因为E-->D是一个可传递的依赖项,但像这样问的问题是它必须是一个3NF?那我怎么解释它是3NF呢

BC是一个密钥,被指定为主密钥

这无关紧要

相关的是有三个候选键:BC、CD和CE

关系在3NF中当且仅当

  • 关系为2NF,且
  • 每个非素数属性都不可传递地依赖于每个候选密钥
非素数属性是不属于任何候选密钥的属性

  • 基本属性:B、C、D、E
  • 非素数属性:A,F
E->D是一个可传递的依赖项

不,不是。E和D都是基本属性。可传递依赖项必须涉及A或F。fde->D是一个问题,但它不是3NF的问题。这是BCNF的一个问题


我会让你去弄清楚这个关系是否在2NF中。(这是在3NF中建立这种关系的另一个先决条件。)

这与MySQL或Oracle无关,因此我删除了标记。也许你应该将3NF的定义粘贴到你的问题中。