0

嗨,我一直在思考我要解决的数据库规范化问题几个小时。在我的问题中,我有一个复合主键,并且该键的一列中的数据具有多个值。主键的一列中的多个值是主要问题。我想知道在第一范式中是否只删除除主键以外的重复组,或者也将删除具有多个值的主键列。对于你们人们来说,理解起来可能还是很模糊。所以我发布了表格的截图:

http://tinypic.com/view.php?pic=ev47jr&s=5

(请打开上图查看表格)

在这里我想问的问题是,在第一种范式中,是否仅删除第 4、5、6、7 列或第 2 列也将被删除(因为它还包含多个值)?

如果我不删除第二列,那么它不会进入 1NF,但如果我也删除它,那么它将直接进入 3NF。帮助?

谢谢你。

4

1 回答 1

1

这里我想问的问题是,在第一个范式中,是否只删除第 4、5、6、7 列,或者第 2 列也将被删除

所有包含多个值的列都将被更改。这包括第 2 列。

如果我不删除第二列,那么它不会进入 1NF,但如果我也删除它,那么它将直接进入 3NF。

规范化不是这样工作的:

  • 确定在 1NF 中但尚未在 2NF 中的结构。
  • 确定在 2NF 中但尚未在 3NF 中的结构。
  • 确定在 3NF 中但尚未在 BCNF 中的结构。
  • 确定在 BCNF 中但尚未在 4NF 中的结构。
  • 确定在 4NF 中但尚未在 5NF 中的结构。
  • 确定在 5NF 中但尚未6NF 中的结构。

关系模型并没有说对于每个在 1NF 中的关系 R,都存在一个2NF 中但还没有在 3NF 中的分解。它只是没有这么说,但这是一个常见的误解。

在实践中,移除部分密钥依赖以达到 2NF 并发现结果在 5NF 中并不罕见。

于 2012-04-21T11:12:48.143 回答