如何规范化复合属性?

时间:2016-12-31 17:42:09

标签: database database-normalization

我需要规范化关系,使其处于第一范式。我知道如何规范化多值属性,只是复合属性给我带来了问题。例如,其中一个复合属性是“Employee-Address”,正如预期的那样,它包含子项属性,如“House-Number”,“Street-Name”等。

我如何规范这个?这些复合属性不是多值/复杂的,即单个员工可能只有1个地址。我还相信'employee-id'属性可用于识别地址的所有子属性。是否像拆分复合属性一样简单,并将每个子属性作为自己的属性存储在关系中?这样,所有子属性都将变为简单,单值和存储值?

在有人抱怨之前;这个问题与大学作业有关,我已经浏览了整个推荐的教科书(和互联网)以获得答案,我还没有找到。当然,我想解决一下我的答案,但是如果你想给自己的例子很好的话。任何建议或指示非常感谢!

1 个答案:

答案 0 :(得分:0)

1NF的唯一要求是每个属性只包含一个“原子”值。

如果问题表明地址是复合值,并且地址的每个部分都是单独的子值,那么您应该为每个子值创建一个属性。

您可能希望将地址的每个部分都存储在自己的属性中,这样您就可以对它们编制索引并有效地运行“查找纽约市每个人”等查询。