我是SQL新手。我正在学习PostgreSQL。 这是我的作业。只需将ER图转换为RM图。 例如 a picture 所以我的Relational映射应该是带有name_title的成员,name_Family名称和name_Lastname,或者我需要创建一个新的“名称”? 我谷歌,我认为它应该只有一个成员。 如果这是真的,当我创建表时,我应该创建表名作为表成员的外键,或者我不需要那样做。 第二个问题是我不知道如何处理多值属性。电话”。
答案 0 :(得分:1)
从ER模型转换为关系模型期间: 这很重要:
如何处理多值属性
**1. How to handle Composite Attributes**
如果是复合属性,请在表中使用原子/简单属性
示例:在您的图表中,“名称”& “许可证”是复合属性,它们的简单/原子属性是(title,familyName,givenName)& (nr,到期)分别。所以在表中使用原子/简单属性。
注意* 不要在关系/表中直接使用复合属性。使用它们的简单属性。
**2. How to handle Multi valued attributes**
如果是多值属性,请为其创建一个单独的表,其中初始表的主键用作外键。
例如:就像您的情况一样,“phone”是一个多值属性,因此为它创建一个单独的表,名称为“Phone”,其中PK为“Member”表(PK:“email” “)作为”电话“表中的外键使用。
最后,你有两张如下表:
Table 1 (Member)
属性:
1.email(作为主键)
2.nickname
3.since
4.birthdate
5.address
6.password
7.title
8.familyName
9.givenName
10.br
11.expires
此表的主键为:(电子邮件)
Table 2 (Phone)
属性:
1.email(作为外键)
2.phone
此表的主键是:(电子邮件,电话)
注意*实际上这整个转换支持1st Normal形式的数据库。 有关详细信息,请参阅database in detail