学好er图

一、什么是er图?


1、 实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器,独立于DBMS的ER图模型。 通常将它简称为ER图,相应地可把用ER图描绘的数据模型称为ER模型。ER图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。

通俗来讲,ER图是把现实生活中的各种关系,以图片的形式,抽象出来,形成一个思维导图,通过ER图可以了解现实中的各种关系。

2、构成E-R图的基本要素是实体、属性和联系,其表示方法为:

˙实体型:用矩形表示,矩形框内写明实体名;

˙属性:用椭圆形或圆角矩形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;

˙联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型

3、在E-R图中要明确表明1对多关系,1对1关系和多对多关系。

˙1对1关系在两个实体连线方向写1;

˙1对多关系在1的一方写1,多的一方写N;

˙多对多关系则是在两个实体连线方向各写N,M

二、通过实例来拆解ER图

在这里插入图片描述

学校里的那点事儿
1、现实生活
一个班级有N多的学生组成,每个班级有一个班级号,每一名学生有一个学号;学生可以根据自己的兴趣爱好选修课程,对于选修的课程需要考试,然后出成绩有学分;一名老师可以教授几门课程。

2、ER图
通过现实的描述分解出几个实体,分别为班级、学生、课程、教师。出现了几组关系,分别为一个班级由多名学生组成(1对多)、一名学生可以选多门课程,同时一门课程可能被多名学生选修(多对多)、一名教师可传授多门课程,同时一门课程可能被多名教师传授(多对多)。这个场景里面没有一对一的关系。

3、关系数据库
ER图画出来以后,如何映射到关系数据库中的表呢?这一步就非常简单了,分步骤进行创建:把实体映射为表、把关系映射为表。实体映射为表,比较简单,不再赘述。

关系映射为表,相对来说比较复杂,以这里的ER图为例,存在1对多和多对多两类关系。

1对多或者多对1时,在多方添加一个外键,对应到1方,如学生表里的所在班级这个外键。多对多时,需要新增一个关系表,把两个实体间的关系记录下来,比如下面的学生选课关系表、教师任课关系表。根据ER图创建表如下:

班级表(主键:班级号 )

班级号 班级名 专业 人数

C001 动漫一班 动漫设计 60

C002 动漫二班 动漫设计 80

C003 计算一班 计算机应用 70

学生表(主键:学号,外键:所在班级 )

学号 姓名 性别 年龄 所在班级

S001 小明 男 20 C001

S002 小王 女 19 C002

S003 小朱 男 21 C003

课程表(主键:课程号)

课程号 课程名 课时 学分

K001 PS 20 5

K002 玛雅 25 6

K003 数据库 30 10

教师表(主键:编号)

编号 职称 姓名 性别 年龄

T001 助教 李老师 男 30

T002 讲师 朱老师 女 33

T003 教授 王老师 男 43

学生选课关系表

编号 学号 课程号 成绩

SK001 S001 K001 80

SK002 S001 K002 76

SK003 S002 K001 89

SK004 S003 K002 90

教师任课关系表

编号 教师号 课程号 时间

TK001 T001 K001 16:00

TK002 T001 K002 14:00

TK003 T002 K001 10:00

TK004 T003 K002 15:00

三、理解1对1、1对多和多对多

要想彻底理解这三类关系,不能只读理论定义,而是从SQL查询结果出发,来从实践层面加深理解。

1对1,在任意一张表中添加外键

1对1的意思是指第一张表中的某条记录,根据主外键关联,只能查询到另一张表中的0条或者1条记录,同时表中的所有其他记录都满足这个特性,反之亦然。

1对1时,需要添加一个外键,外键添加到任何一张表中都可以。

1对多,1方属于主表,多方属于从表,在从表添加外键

1对多的意思是指第一张表中的某条记录,根据主外键关联,能查询到另一张表中的0条、1条或者N条记录,同时表中的所有其他记录都满足这个特性,反之是多对1。

1对多时,以1方为主表,多方为从表,在多方添加一个外键。

多对多,新增一张关系表

多对多的意思是指第一张表中的某条记录,根据主外键关联,能查询到另一张表中的0条、1条或者N条记录,同时表中的所有其他记录都满足这个特性,反之亦然。

多对多时,要新增一张关系表,以记录多对多的数据关系。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

终生成长者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值