【问题标题】:Second Normal Form; 2NF; why is not in 2NF第二范式; 2NF;为什么不在2NF
【发布时间】:2015-05-03 13:39:59
【问题描述】:

我有以下问题。

我需要确定第二范式中的以下assingment,我在理解第二范式是什么以及如何确定它时遇到了一些问题。

我有这个学习/练习的例子。

R = ({A, B, C, D, E, F};{AB->ACD, BC->DE})

主键是 ABF。

在解决方案中写到表不是第二范式,因为不是每个NKA(非关键属性)都依赖于KA(关键属性),并且也写了

example: AB->C

我不知道如何得到这个解决方案,或者 AB->C 与任何事情有什么关系(因为它不在 assingment 中)。

谁能给我解释一下。

谢谢!!!

【问题讨论】:

  • 您的“我有这些 FD”没有意义。 “这些都是持有的FD”?--不可能。 “这些都是持有的非平凡FD”?--不可能。 “这些是一些持有的FD”?--问题无法回答。找出什么是 cover 以及应用特定定义/规则/算法的确切条件。要确定 CK 和 NF,我们必须得到构成掩护的 FD。有时是最小/不可约覆盖。并且必须给出所有属性的集合。 See this answer.

标签: database database-normalization functional-dependencies


【解决方案1】:

首先让我们定义 2NF:

R 为具有一组函数依赖关系 F 的关系模式。令 X 为 R 的一组属性A非主要属性,不在 X 中。那么 R 是 2NF 如果只要 X->A 在 F+ 中,那么 X 不是任何键的真子集。

现在看看你的问题。这里 R 是你的关系 R(A,B,C,D,E,F) 而 F 是{AB->ACD, BC->DE}。主键是 ABF,因此 A、B、F 是主属性,C、D、E 是非主属性。

现在让我们找到 F+ (F-closure) ,即所有可从 F 派生的依赖项的集合。

我们得到 F+{AB->A, AB->C, AB->D, BC->D ,BC->E, ...}

现在我们上面的定义表明对于 F+ 中的任何X->A,X 不应该是键的真子集。

这里 F+ 中的依赖项之一是 AB->C 。这里 C 是非主属性,AB 是密钥 ABF 的真子集。因此它违反了第二范式。

【讨论】:

    【解决方案2】:

    首先让我们定义 2NF: 首先我们应该检查表格是否在 1NF 中。如果不是,则将其设置为 1NF,因为这是必要的。

    其次,令 R 为具有一组函数依赖项 F 的关系模式。令 X 为 R 的一组属性。A 是不在 X 中的非素数属性。那么当 X->A 时,R 处于 2NF 中在 F+ 中,则 X 不是任何键的真子集。

    现在让我们看看您的问题并检查解决方案。这里 R 是你的关系 R(A,B,C,D,E,F) 而 F 是 {AB->ACD, BC->DE}。主键是 ABF,因此 A、B、F 是主属性,C、D、E 是非主属性。

    现在让我们找到 F+ (F-closure) ,即所有可从 F 派生的依赖项的集合。

    我们得到 F+ 为 {AB->A, AB->C, AB->D, BC->D ,BC->E, ...}

    现在上面的语句说对于 F+ 中的任何 X->A,X 不应该是键的真子集。

    这里 F+ 中的依赖项之一是 AB->C 。这里 C 是非主属性,AB 是密钥 ABF 的真子集。因此它不是第二范式。

    【讨论】:

      猜你喜欢
      • 2016-06-10
      • 2019-08-30
      • 2016-10-31
      • 2017-01-18
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      • 1970-01-01
      相关资源
      最近更新 更多