一文打通ER图(手把手教你画)

简介: 一文打通ER图(手把手教你画)

期末了,E-R图也是大学课程设计中经常用到的,也是期末考的重点,毕竟大学生也没什么好考的,最近也有不少同学问,不少单子也扯到E-R图,但是我看了看网上的玩意好像没到手把手的地步,那么我就写一个手把手的画E-R图的博客吧。

什么是er图?

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型属性联系的方法,用来描述现实世界概念模型

这是来自百度百科的介绍,从上面我们可以看到3个最重要的词,实体类型属性,联系,那这三个是什么意思呢?

什么是实体类型?

具有相同属性的实体必然具有共同的特征和性质。用实体名及描述它的各属性名,可以刻画出全部同质实体的共同特征和性质,称为实体类型。例如,学生(学号,姓名,性别,出生年月,所在院系,入学时间)就是一个实体型。说白了,最粗糙的理解无非就是物品的玩意,客观存在并可以相互区别的事物,一个学生是,一个班级是,一个学校是。在E-R图中用矩形表示,矩形框内写明实体名

什么是属性?

实体所具有的某一特性,一个实体可由若干个属性来刻画。属性不能脱离实体,属性是相对实体而言的。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。

什么是联系 ?

联系也称关系,信息世界中反映实体内部或实体之间的关联。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。在E-R图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1 : 1,1 : n或m : n)。比如老师给学生授课存在授课关系,学生选课存在选课关系。

一对一

一对一关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。

比如一个人,只有一个身份证号,一个身份证号也对应一个人。

8d6d437c1ac64f4a8a33e5ade49c5568.png

对多

一对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。

比如一个班级里有多个学生

71c17bbe56c542429bf130fce9da7cd7.png

这里注意可能不清晰这个1和n怎么标?把1和n的位置标不对。呃我就是那个人,后面我是这样子记得:俩个实体是吧,先假想是其中的的一个实体,把描述的关系放联系名对面的边,我是一个班级,那么我有n个学生,所以n放对边,我是一个学生是吧,我只有一个班级,所以1放我对边。然后就完成了。


再看一个例子:一个教师可讲授多门课,一门课只有一个教师讲授


43b2b6ebf1274ad481ed3758e027b96f.png

我是一个教师,那么我有n个课要教,n放对边。


3b1727c6a8d942e3b7b36393a3e2bc05.png

我是一个课程,我只有一个教师来教,1放对边。

a6c50a0898e64209b298d1eba9a5c815.png

多对多

多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。

比如一个学生可以选多个课程,一个课程也可以有多个学生。

7bafda6f17eb4926bc81904f16e4fb81.png

注意点

有时候我们可以发现在菱形框内连着椭圆形属性可能你会觉得奇怪?不是说属性和实体相连吗?这其实是一个很正常的一种画法,由于视图间产生的联系,产生的新属性那就应该画在


联系名上,比如学生跟课程实体产生了联系以后就会出现一个成绩的属性。


下面通过俩个例题来打通这个玩意去应付期末的玩意


例题解答

一个学生可选修多门课,一门有若干学生选修;一个教师可讲授多门课,一门课只有一个教师讲授;一个学生选修一门课,仅有一个成绩。学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。

bf14f7f021d34b2cb6361b75e96d1900.png

设某商业集团有多个商店。在其信息系统中,对“商店”记录有商店编号、商 店名、地址等信息;对销售的 “商品”记录有商品号、商品名、规格、单价等信息;对其 “职工”记录其职工编号、姓名、性别和业绩等级(优秀、良好、较差)等。每个商店可销 售多种商品,每种商品也可放在多个商店销售,每个商店销售每一种商品,需要记录每月的 销售量;每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工按照聘期规定 月薪发放工资,每个聘期长度为 1 年。


(1)试画出 ER 图,并在图上注明属性、联系的类型。

(2)转换成关系模式集,要求满足 3NF,并指出每个关系模式的主键和外键。


商店:


f249ff30bd994dc29991c754477f998c.png

 职工:

6716e32d6f634cd081f1296d22ea1930.png


商品:

9c903901fd26479f9eb043118c02dfb2.png

商店和商品的关系:

09526e66d1d347299172fa1858cef80b.png


看这里,由于商店跟商品进行联系以后就会产生了一个新的的属性那就是月销售量

最后再结合商店跟职工的关系:


0c5746075ff94ddba0e8f970b52bb7ec.pngcb9a52b7503c4726a5b3d72289015bcb.png


目录
打赏
0
0
0
0
65
分享
相关文章
通过E-R理解 主键和外键的关系
实例 现有课程和教师两个实体,课程实体的属性有课程名称、课程编号、课程属性、考试类型;教师实体的属性包括姓名、工号、职称;一门课程可以有多个教师,且每一位教师可以教授多门课程。教师每教授一门课有课序号。
6237 1
通过E-R理解 主键和外键的关系
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
基于Java swing和mysql实现酒店管理系统(源码+数据库+运行指导视频+系统用户使用手册+系统PPT+数据库设计说明书+系统概要说明书+需求说明书+详细说明书)
476 0
IDEA这个功能真强大!一键把整个项目代码绘制成UML类图...
IDEA这个功能真强大!一键把整个项目代码绘制成UML类图...
5009 0
IDEA这个功能真强大!一键把整个项目代码绘制成UML类图...
数据库设计规范
基于阿里数据库设计规范扩展而来
48263 4
了解三层架构:表示层、业务逻辑层、数据访问层
了解三层架构:表示层、业务逻辑层、数据访问层
5992 0
『软件工程10』结构化系统分析:数据流图和字典案例分析
该文章通过具体案例分析了在软件工程中如何运用数据流图和数据字典来进行结构化系统分析,帮助明确系统的信息流程和数据定义。
『软件工程10』结构化系统分析:数据流图和字典案例分析
2024年睿抗机器人开发者大赛(RAICOM)CAIP-编程技能赛-本科组国赛
该文章是关于2024年睿抗机器人开发者大赛(RAICOM)CAIP-编程技能赛的介绍。
黑盒测试、白盒测试、灰盒测试的区别和各自的目的
黑盒测试、白盒测试和灰盒测试是软件测试中常用的测试方法。它们的区别和各自的目的如下: 1. 黑盒测试(Black Box Testing): - 黑盒测试是一种功能性测试方法,使用者只关注输入和输出,不考虑内部结构和实现细节。 - 黑盒测试的目的是验证软件功能是否按照需求规格说明书的要求来执行。 - 测试人员不需要了解软件的内部逻辑和代码,只需关注输入和输出的正确性。 - 黑盒测试可通过设计测试用例,模拟用户使用软件的场景,以验证系统的正确性。 2. 白盒测试(White Box Testing): - 白盒测试是一种结构性测试方法,测试人员了解软件的内部结构
2264 0
足球青训俱乐部|基于Springboot的足球青训俱乐部管理系统设计与实现(源码+数据库+文档)
足球青训俱乐部|基于Springboot的足球青训俱乐部管理系统设计与实现(源码+数据库+文档)
218 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问