我真的在努力思考将EER图转换为关系的概念。我知道简单的属性必须直接映射到关系上。我的问题出现在处理复合属性和多值属性时。你会为他们中的任何一个建立新的关系吗?例如,客户实体可能具有名称、地址和邮政编码。address属性包含街道、城市、州和地址#。这是否意味着应该创建一个新的关系,或者应该在客户关系中列出所有组件属性?最后,如何正确映射多值属性,用一个简单易懂的例子?
谢谢你的帮助。
几乎可以肯定,多值属性最好被移除到一个单独的关系中。这被称为第一范式,你必须非常努力地找到一个违反1NF的例子。
没有理由为复合属性创建新的关系。您可以将属性拆分为一个新的关系,因为它们的基数以及对主键和候选键的依赖性。
复合属性实际上并没有出现在自然界中,它们是概念建模想象力的虚构。好吧,这个说法有点滑稽。关键是,当你从概念模型进入物理模型时,你就要对你的实际业务需求做出决定。复合属性在物理上持久化的粒度级别取决于您计划如何使用数据。如果您正在跟踪地址以打印信封或运输标签,您很可能会决定将地址元素折叠为两列。另一方面,您可能会决定您的业务需求需要地址元素分析,因此将地址的每一部分保留在自己的列中更有意义。