E-R图向关系模型的转换

Posted liaoai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了E-R图向关系模型的转换相关的知识,希望对你有一定的参考价值。

文章目录

一、关系模型的基本概念

1.关系
关系是一张二维表,表示数据的逻辑结构。表中每一行代表一个记录元组),每一列代表一个属性(属性值的取值范围为)。
2.关系模型
关系模型是指以二维表结构表示的实体关系,用键表示实体间联系的数据模型。
关系模型的组成包括关系数据结构、关系操作和关系完整性约束三部分。
3.码(键)
在关系中由唯一可标识记录的属性或属性组构成。
4.超码
关系中某一属性组的值能唯一标识一个元组,可能包含一些无关紧要的属性(学号、姓名)
5.候选码
最小超码,任一真子集都不能成为超码
6.主码
在候选码中选定一个码作为记录标识,不能为空
7.外键
若在关系R中包含另一个关系S的主键对应的属性或属性组K,则称K为R的外键。
8.主属性
候选码中各属性
9.非主属性
不包含在任意一个候选码中的属性

二、由E-R图向关系模型的转换

E-R图向关系模型的转换就是将实体型、属性和实体之间的联系转换为关系模式,或者说是将E-R图中的内容如何存储到关系中

1.一个实体型转换为一个关系模式

  • 实体名称作为关系模式名称
  • 实体的属性就是关系的属性
  • 实体的主码就是关系的主码

    语义:一种实体存储在一个表中,一行代表一个实体

2.一个联系集转换为一个关系模式—通用规则

设R是联系集,R的实体集的主码属性集合为a1,a2,…am,R的描述性属性集为b1,b2,…bn

  • 关系模式的属性由参与实体集的主码和联系的属性组成,即a1,a2,…am∪b1,b2,…bn
  • 参与实体集的主码形成关系模式的超码,即a1,a2,…am (从超码中选择主码)
  • 关系模式中建立相应的外键约束,针对属性中每个实体集的主码建立一个外键约束(参照/引用关系)

(1)多对多联系(m:n)

转换为一个独立的关系模式

主码: 关系模式的主码为各实体主码的集合
例:

学生(学号,姓名,专业)
课程(课程编号,课程名称,学分)

选修(学号,课程编号,成绩)

以上“斜体加粗”为主码

(2)一对一联系(1:1)

① 转换为一个独立的关系模式

主码: 每个实体的主码均是关系的候选码,从候选码任选一个作为主码
例:

管理员(管理员号,姓名,联系方式)
仓库(仓库编号,面积)

管理(仓库编号,管理员号

以上“斜体加粗”为主码

② 与任一端的关系模式合并
  • 选择任一个实体对应的关系进行合并
  • 在该关系中加入另一个关系的主码与联系的属性
  • 主码: 保持不变
    例:

    将管理员关系加入仓库关系中如下

管理员(管理员号,姓名,联系方式)

仓库(仓库编号,面积,管理员号

以上“斜体加粗”为主码

(3)一对多联系(1:n)

① 转换为一个独立的关系模式

主码: 关系模式的主码为n端的主码
例:

专业(专业编号,专业名称,所在院系)
学生(学号,姓名)

学习(学号,专业编号)

②与n端的关系模式合并
  • 一端的主码及联系的属性并入n端的关系模式
    例:

专业(专业编号,专业名称,所在院系)

学生(学号,姓名,专业编号

(4)3个或3个以上实体间的多元联系

转换为一个关系模式

主码: 关系模式的主码为各实体码的组合
例:

供应商(供应商号,供应商名,地址,电话)
项目(项目编号,项目名称,开工日期)
零件(零件号,零件名,材料,颜色)

使用(供应商号,项目编号,零件号,用量)

(5)同一个实体内部的联系

将该实体拆分为互相联系的两个子集,按其不同的联系方式进行处理
例:

职工(职工号,姓名,年龄,专业,领导职工号

可看作一对多联系中的“与n端关系合并”,即领导关系并入职工关系,将其主码加入。

数据库——数据库设计 E-R图向关系模型的转换

 

将下列物资管理E-R图转换为关系模式:

 

技术图片

 

 

 

转换原则


⒈  一个实体型转换为一个关系模式。
关系的属性:实体型的属性
关系的码:实体型的码
 
⒉ 一个m:n联系转换为一个关系模式(初步,以后可能调整)。
关系的属性:与该联系相连的各实体的码以及联系本身的属性
关系的码:各实体型码的组合

⒊   1:n联系---与n端对应的关系模式合并
在n端关系中加入1端关系的码和联系本身的属性
 
⒋ 一个1:1联系,可以与任意一端对应的关系模式合并。

⒌ 3个或3个以上实体间的一个多元联系转换为一个关系模式。
关系的属性:与该多元联系相连的各实体的码以及联系本身的属性
关系的码:各实体码的组合 
供应(供应商号,项目号,零件号,供应量)

⒍ 同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。

⒎ 具有相同码的关系模式可合并。
目的:减少系统中的关系个数
 
 
1.一个实体型转换为一个关系模式:
供应商(供应商号,姓名,地址,电话号,账号)

 

2.一个实体型转换为一个关系模式:

项目(项目号,预算,开工日期)

 

3.一个实体型转换为一个关系模式:
零件(零件号,名称,规格,单价,描述)

 

4. 3个或3个以上实体间的一个多元联系转换为一个关系模式。
供应(供应商号,项目号,零件号,供应量)

 

5.一个实体型转换为一个关系模式:
仓库(仓库号,面积,电话号)

 

6. 一个实体型转换为一个关系模式。
   1:n联系---与n端对应的关系模式合并。(1:n工作联系)
   同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。(职工与领导职工的自联系)
职工(职工号,姓名,年龄,职称,仓库号,领导职工号)

 

7. 一个m:n联系转换为一个关系模式。
库存(仓库号,零件号,库存量)

 


以上是关于E-R图向关系模型的转换的主要内容,如果未能解决你的问题,请参考以下文章

DBMS-数据库设计与E-R模型:E-R模型约束E-R图E-R扩展特性E-R图转换为关系模式UML建模

E-R模型中实体和属性的概念?

软考-后篇

数据库设计分为六个阶段

数据库应用技术课程设计之商城管理系统

从E-R模型到关系模型