数据库学习笔记_6_relation model_translation of relation model from E_R model

关于ER模型到relation模型里面的转换

    先有两个基础,多值属性的变换和复合属性的变换

      复合属性,和之前提到过的一样,是一个属性由多个属性组成,对于这样的属性的处理方法就是将其拆开以后放入其原来的entity里面,比如说(address(city,street,house),name,dept_name)->(city,street,house,name,dept_name)。

      而多值属性则要建立一个关系实例(就是一张表)在这个表里面,然后将多值属性存在的表的主键放在前面,多值属性里面的各个值放在后面以形成一张新表。

  1.任何一个strong entity set(SES)转化时只需注意复合属性和多值属性的变换,以及其是否有一个WES。

  2.对于WES来说,其要加上depending entity set的primary key,成为一个独立的relation schema.

  3.对于relation set,使用一个包含其所有元素的属性(包括描述元素)的关系实例来表示它,在er模型中,我们使用相连双方的主键并集来表示relation set的主键,但是在关系数据库中,我们需要优化这一点:

    121的关系中,任何一个相连ES的主键都可以作为其生成实例的主键

    many 2 many的关系中,双方es的主键并集成为主键

    many2 one 的关系中,many一方的es主键成为主键

    对于非2元关系,若其中有一个是one,则除了one以外参与的es的主键并集成为其主键,不然则所有参与的es的主键并集成为其主键。

    如果其链接的是一个WES,那么其关系模型需要新增其WES的DES的主键。

    然后,每一个生成关系实例的主键都将被认为是原所属es的主键的外部键。

posted @ 2017-04-24 16:45  duskcloudxu  阅读(555)  评论(0编辑  收藏  举报