sql:将ER图转换为关系映射(多值属性?复合属性?)

时间:2016-04-23 04:16:56

标签: postgresql

我是SQL新手。我正在学习PostgreSQL。 这是我的作业。只需将ER图转换为RM图。 例如 a picture 所以我的Relational映射应该是带有name_title的成员,name_Family名称和name_Lastname,或者我需要创建一个新的“名称”? 我谷歌,我认为它应该只有一个成员。 如果这是真的,当我创建表时,我应该创建表名作为表成员的外键,或者我不需要那样做。 第二个问题是我不知道如何处理多值属性。电话”。

1 个答案:

答案 0 :(得分:1)

从ER模型转换为关系模型期间: 这很重要:

  1. 如何处理复合属性
  2. 如何处理多值属性

             **1. How to handle Composite Attributes**
    
  3. 如果是复合属性,请在表中使用原子/简单属性

    示例:在您的图表中,“名称”& “许可证”是复合属性,它们的简单/原子属性是(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