E-R图是什么?

举报
TiAmoZhang 发表于 2024/06/13 09:42:36 2024/06/13
【摘要】 关于概念模型的表示方法有很多,最著名的是实体-联系方法,简称E-R图(Entity-Relationship Approach)。E-R图具有以下优点: 能非常自然地描述现实世界; 图形结构简单; 设计者和用户易理解,并且可以互相交流; 它是数据库设计的中间步骤,易于向数据模型转换。

关于概念模型的表示方法有很多,最著名的是实体-联系方法,简称E-R图(Entity-Relationship Approach)。E-R图具有以下优点: 能非常自然地描述现实世界; 图形结构简单; 设计者和用户易理解,并且可以互相交流; 它是数据库设计的中间步骤,易于向数据模型转换。

 

01、E-R图


1) E-R图的图形符号


方框: 表示一个实体集。在框内写上实体集的名字。

菱形框: 表示联系。菱形框内标明联系名,与其相关的实体集之间用箭头表示,一个箭头代表为1,两个箭头代表为多(说明: 有不少书中用无向边连接,且在连线边上标明联系类型)。

←◇→表示1∶1的联系

←◇→→表示1∶n的联系

←←◇→→表示m∶n的联系

椭圆框: 表示属性。在框内写上属性的名字,并用无向边连向与其相关的实体集或联系。

在E-R图中,有时为了突出各实体集之间的联系,可以先画出实体集及其属性,然后重点画出实体之间的联系,如图1和图2所示。

■ 图1 实体之间的联系

 ■ 图2 实体之间的联系

2) 绘制E-R图的步骤


第一步: 通过对现实世界的分析、抽象以后,找出实体集及其属性。

第二步: 找出实体集之间的联系。

第三步: 找出实体集联系的属性。

第四步: 绘制E-R图。绘制E-R图时一般先绘制局部E-R图,然后绘制全局E-R图,详细步骤见数据库设计。

例如,下面以教学情况为例,进行E-R图设计。

(1) 找出相关实体集: 学生(S),教师(T),课程(C),院系(D)。

每个实体的属性分别如下。

S: 学号,学生姓名,出生日期,专业,班级。

T: 编号,教师姓名,职称,所在教研室。

C: 课程号,课程名称,学时,考核方式。

D: 院系代号,院系名称。

(2) 找出实体集之间的联系。

S与C之间有联系,且为m∶n,因为一个学生可以学习很多门课程,反过来一门课程可以被多个学生所学习。

T与C之间有联系,且为m∶n,因为一个教师可以讲授很多门课程,反过来一门课程可以被多个教师所讲授。

D与S之间有联系,且为1∶n,因为一个院系可以有很多学生,但是一个学生只属于一个院系。

D与T之间有联系,且为1∶n,因为一个院系可以有很多教师,但是一个教师只属于一个院系。

(3) 找出实体集之间联系的属性。

S与C之间联系的结果用成绩表示。

T与C之间联系以讲授哪一个班级来表示。

(4) 绘制E-R图。

当E-R图比较复杂时,为了使E-R图简洁,可以使属性不在E-R图中出现,即单独画出每一个实体及实体属性,在E-R图中仅画出实体集和它们之间的联系,在E-R图中每一个实体只允许出现一次,如图3所示。

 ■ 图3 教学情况E-R图

注意 / E-R图的设计不是唯一的,例如,在分析现实世界时,考虑问题有这样的抽象,一个院系有很多专业,一个专业有很多班级,一个班级有很多学生……,那么这个时候的E-R图和上述就有区别了(大家可以自己画出满足上述要求的E-R图)。 

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。