八个步骤
Mapping Regular Entity Types
Mapping Weak Entity Types
Mapping 1:1 Relationships
Mapping 1:N Relationships
Mapping M:N Relationships
Mapping Multivalued Attributes
Mapping N-ary Relationships
Mapping supertypes/subtypes
1.先写强实体类型
2.弱实体类型
3.实体间 1 : 1 关系
有三种方法(适用于实体间1:1关系):
1.外键的方法:选择其中一种实体类型,并将另一种实体的主键包含为外键
2.合并关系:如果两个实体类型在关系中都有强制参与,则可以将它们合并为一个关系,创建关系模式E,包含了这两者的全部属性和联系的属性
3.添加关联关系:创建一个单独的表来表示关系。这在1:1的关系中很少见
1)可以单独对应一个关系模式:由联系属性,参与联系的各实体集的主码构成的关系模式,其主码可选参与联系的实体集的任一主码
2)也可以由联系属性及一方的主码加入到另一方实体集对应的关系模式(加入一方即可)
4.实体间 1 : N 关系
1)可以单独对应一个关系模式:由联系属性,参与联系的各实体集的主码构成的关系模式,n端的主码为该关系模式的主码
2)也可以由联系属性及一方的主码加入到n端实体集对应的关系模式,主码仍为n端的主码
5.实体间 M : N 关系
对于(m:n) 的=联系=,单独对应一个关系模式,该关系模式包括联系的属性,参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同构成
例题:
总结:
1.对于1:n的关系最好不要单独拆分一个关系模式出来,而是将1的那方的主码放进n的属性中(不是充当n’那边主码)
2.m:n的一定要转换成一个单独的关系模式
3.连接在m:n关系上的属性,如图中供应关系的供应量,应该要放入新建的关于m:n的关系模式里,如供应1(供应商号,项目号,供应量)
4.三个或三个以上实体间的一个多元联系可以转换成多个关系模式。如例题中的供应关系分成了三个关系模式。
5.上述例题中有个问题:职工与领导问题没有体现
可以写employee(Eid,Ename,Eage,Ejob_name,super_Eid)其中Eid是主键职工号的意思,super_Eid表示他前领导的职工号
6.多值属性
- 对于多值属性,创建一个新的关系模式给它
- 对于每个多值属性,创建一个新的关系来表示它。
如果多值属性是复合属性,我们只包括它的简单组件,不包括复合属性本身 - 这个新关系包含:一个属性来存储多值属性本身(如果是复合属性,则包含几个属性)和 属性所属实体类型的主键
如例子中:Dept_locations(Dnumber,Dlocation)这两个都是主键
7.多个实体间关系
如果您的模型包含与超过2个实体类型的任何关系,则必须将这些关系映射到一个新关系
这个新关系包括:
包括任何ATT。 这种关系的主键通常是外键的组合
- Include foreign keys to refer to all the participating
entity types - Include any attributes that the relationship has
- The primary key of this relation is usually the
combination of the foreign keys
8.超类,子类
为超类创建关系。 对于每个子类型,创建一个关系,并包含一个引用超类主键的外键。 这个外键属性变成 子类型的主键