ER-关系映射方法

来源:互联网 发布:外国女人中国男人知乎 编辑:程序博客网 时间:2024/05/02 00:56

步骤1:常规实体类型的映射。实体E转换成关系R,R中包含有中所有的简单属性。对于复合属性,将其复合转换成简单属性。例如E图中的姓名为(FName,Minit,LName)复合属性,则在R中转换为R( ....FName,Minit,LName.....)
步骤2:弱实体类型的映射。W为弱实体,W的属主实体类型为E。把W转换成关系R时,W的所有属性转换为R的属性,同时使用E的主键作为R的外键,和W的主键一起作为关系R的主键。
步骤3: 二元关系1:1的映射。实体A和B为1:1,两个实体分别对应的关系为R和S,在关系R中使用S的主键为外键,在S中使用R的主键为外键。
步骤4:二元关系1:N的映射。实体A和B为1:n,两个实体分别对应的关系为R和S,标示S为n的一端,在S中使用R为外键,主键为S的主键。
步骤5:二元关系M:N的映射。实体A和B为m:n,两个实体分别对应的关系为R和S,则为M:N创建一个新的关系T,在T中使用R和S的主键的组合为T的主键
步骤6:多值属性A的映射。为每个多值属性创建一个新的关系R。R中包含A相对应的一个属性,另外还包括该A所在实体的主键K。R的主键由A,K的组合
步骤7:映射N元关系类型。为N元关系创建一个新的关系S,S中包含所涉及实体的所有的主键,S的主键为所涉及实体的所有的主键的组合。
步骤8:对于超类和子类的转换方法。有四种方法:
       方法1:为超类和每个子类分别创建关系,子类继承超类的主键,子类的主键为超类的主键。
       方法2:为每个子类创建关系,子类的关系继承超类的所有属性,主键为超类的主键。
       方法3:把每个子类的属性上传到超类中,为超类创建一个关系,主键为超类的主键,增加一列,指出每个元组所属的子类。适用与子类不相交的情况,可能产生大量的空值。
       方法4:把每个子类的属性上传到超类中,并且为每个子类加一个布尔型的属性,判断是否属于某个子类。使用与子类相交的情况。
步骤9:共享子类的映射。适用步骤8中的任何一种方法,并且结合步骤8转换成的关系来进行。
步骤10:对于Union类型的映射。Union有两种情况:(类别是两个或者多个超类并集的一个子类)
       1、每个超类代表不同的实体,则为每个超类创建一个关系,子类创建一个关系。为每个超类设置一个代理主键,并且适用子类的主键为外键。
       2、每个超类代表相同的实体,即拥有相同的主键,则为子类和每个超类的分别创建一个关系,且都适用相同的主键。 

原创粉丝点击