使用复合键进行数据库规范化?

时间:2012-04-15 14:35:08

标签: database normalization

您好我几个小时都在考虑我想要解决的数据库规范化问题。在我的问题中,我有一个复合主键,键的一列中的数据有多个值。主键的一列中的多个值是主要问题。我想知道在第一范式中是否只删除除主键之外的重复组,或者还将删除具有多个值的主键列。仍然可能是让人们了解它的模糊不清。所以我发布了表格的截图:

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

(请打开上面的图片查看表格)

这里我想问的问题是,在第一范式中,只删除第4,5,6,7号列,还是删除第2列(因为它还包含多个值)?

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

谢谢。

1 个答案:

答案 0 :(得分: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并不罕见。