【发布时间】:2017-05-15 14:21:05
【问题描述】:
我需要对关系进行规范化,使其处于第一范式。我知道如何规范化多值属性,只是复合属性给我带来了问题。例如,复合属性之一是“Employee-Address”,正如预期的那样,它包含“House-Number”、“Street-Name”等子属性。
我该如何标准化?这些复合属性不是多值/复杂的,即单个员工可能只有一个地址。我也相信“employee-id”属性可以用来识别地址的所有子属性。是否像分解复合属性并将每个子属性作为其自己的属性存储在关系中一样简单?这样所有的子属性都会变成简单的、单一的和存储的值?
在任何人抱怨之前;这个问题与大学作业有关,我已经浏览了整个推荐的教科书(和互联网)来寻找答案,但我没有找到。当然,我想要一个解决方案来回答我的问题,但是如果您想举出自己的例子,那就太好了;非常感谢任何建议或指示!
【问题讨论】:
-
在现实世界中,地址在表格中存储为单行,街道地址存储在字符串中,然后在其他字段中存储其他位置(例如邮政编码)。有时,特征会被提取到其他列(公寓编号)中,但地址行本身并没有填充额外的 id,也许更高级别的地理除外。
-
@Gordon 我同意。我对地址是复合方式的唯一猜测是出于作业评分的目的!我个人不明白删除复合“括号”并将每个“括号”存储在单独的字段中会有什么不同。
标签: database database-normalization