画E-R图·数据库笔记(四)

E-R图定义

实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
是描述概念模型的工具。

数据模型

数据模型是用来描述数据库数据的结构、定义在结构上的操作,以及数据间的约束的一组概念和定义。
通常由数据结构数据操作数据约束三个要素组成。

概念模型

概念模型用于信息世界的建模。

1.信息世界中的基本概念

(1)实体:客观存在并相互区别的事物。用矩形表示
(2)属性:实体所具有的某一特性。用椭圆表示
(3)码或键:唯一标识实体的属性集称为码或键。
(4):属性的取值范围。
(5)实体型:用实体名及其属性集合来抽象和刻画同类实体。
(6)实体集:同型实体的集合。
(7)联系:实体和实体之间的联系。联系也可以有属性,用菱形表示。

2.两个实体型之间的联系

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

例如:一个部门只有一个经历,一个经理只能担任一个部门的经理职务,则部门与经理是一对一的联系。

1
1
部门
任职
经理

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

一对一的联系可以看作一对多联系的一种特殊情况,n=1时的特例。
一对多的联系的例子:一个系有多个老师,一个老师只属于一个系。

n
1
教师
所在

多对多联系(m:n)

设A、B为两个实体集。若A中的多个实体可与B中的多个实体有联系,反过来,B中的多个实体也可以与A中的多个实体有联系,则称实体集A与实体集B的联系是多对多,记为m:n
例如:一个学生可以选修多门课程,一门课程由多名学生选修。选修有成绩的属性。联系也可以有自己的属性,这类属性不属于实体。

m
n
学生
选修
课程
成绩

绘制E-R图

1.局部E-R图设计

(1)确定实体集:确定在该系统中包含的所有实体集。
(2)确定实体集之间的联系集:判断所有实体集之间是否存在联系,确定实体集之间的联系及其类型(1:1、1:n、m:n)。
(3)确定实体集的属性:标定实体的属性、标识实体的候选关键字。
(4)确定联系集的属性
(5)画出局部E-R图

2.整合为整体E-R图

将多个局部E-R图合并,解决局部E-R图之间的冲突。
修改和重构,消除不必要的冗余。
修改冲突:
1)属性冲突
属性域 冲突,即属性值的类型、取值范围或取值集合不同。如年龄,可能用整数也可以用出生年月表示。
属性的 取值单位 冲突,如重量,可能用公斤、斤、克为单位。
2)结构冲突
同一事物不同结构,比如一个实体可能为另一个应用中的属性。
同一实体在不同应用中属性组成不同,包括个数、次序。
同一联系,在不同应用中不同类型。
3)命名冲突(实体名、属性名、联系名)
同名异义,不同意义的事物有相同的名称。
同义异名,同一意义的事物有不同的名称。

3.消除冗余

初步设计的E-R图可能存在冗余的数据或者冗余的联系。消除冗余和冲突就能得到整体的E-R图。

绘制E-R图题目1

设某教学管理系统,其查询模块需要提供如下功能:
Ⅰ.查询系信息,列出各系编号、系名、系办公电话;
Ⅱ.查询某系教师的信息,列出教师号、教师名、工资和聘用日期;
Ⅲ.查询某教师讲授的课程信息,列出课程号、课程名和学分;
Ⅳ.查询某门课程的教师信息,列出教师名和职称;
Ⅴ.查询某门课程的先修课程信息,列出先修课程号和先修课程名。
系统有如下业务规则:
Ⅰ.一个系可聘用多名教师,一名教师只能受聘于一个系;
Ⅱ.一名教师可讲授多门课程,一门课程可由多名教师讲授;
Ⅲ.一门课程可以有多门先修课程,也可以没有先修课程。
(1)请根据以上查询功能与业务规则,用ER图描述该系统的概念模型。
①第一步,画实体。由题目知要要查询系、教师、课程的信息,所以有三个实体为:系、教师、课程。实体用矩形,画出三个矩形实体。
②第二步,画联系。之间的联系为:系聘用教师、教师讲授课程,课程先修课程。
再画出三个联系,并把它们连线起来。
在这里插入图片描述
③添属性。各个实体的属性,系的属性有系编号、系名、系办公电话。教师的属性有:由Ⅱ所述,列出教师号、教师名、工资和聘用日期,和Ⅳ所述,还有一个职称。课程的属性由Ⅲ得:课程号、课程名和学分。属性用椭圆形。
接着直接添联系,由联系Ⅰ得一个系聘用多个教师,那么在[系]到<聘用>这条线标"1",在<聘用>到[教师]这条线标"n"。由联系Ⅱ得一个教师讲授多门课,一门课被多名教师讲授,就是多对多,即m:n,就在教师讲授课程的两条线标注m和n。由联系Ⅲ得一门课程可以有多个先修,就是1:n了。
ER1
④消冗余。可以感觉到没有需要消除的地方。上图就是画好的ER图了。

绘制E-R图题目2

已知某教务管理系统的设计人员在需求分析阶段收集到下列原始数据表格:
教师

教师号教师名职称工资上级领导教师号
9868王文华教授8000null
9983李一斌副教授60009868
9985丁一讲师40009868
0783王润泽讲师40009868
0899欧阳丹尼讲师40009868

课程

课程号课程名学分教材号教材名出版社名任课教师号
C2006计算机原理311计算机原理清华大学出版社9868
C2006计算机原理312计算机原理与应用高等教育出版社9868
C2004数据结构313数据结构清华大学出版社9868
C2010数据库原理314数据库原理清华大学出版社9868
C2010数据库原理315数据库原理与技术高等教育出版社9868
S3001音乐欣赏216音乐欣赏清华大学出版社9983

已知该业务系统存在如下规则:
I.每个教师有唯一的教师号,每个教师号对应唯一的一名教师;
II.每门课程有唯一的课程号,每个课程号对应唯一的一门课程;
III.每本教材有唯一的教材号,每个教材号对应唯一的一本教材;
IV.每个教师最多只有一个上级领导,也可以没有上级领导;
V.一门课程仅由一名教师讲授;
VI.一本教材仅用于一门课程。

画出该系统的ER图,ER图中需给出每个实体集的属性,主码属性用下划线标识。
①第一步,画出实体部分:教师、课程、教材。
②第二步,画联系,教师讲授课程,课程使用教材。由课程表看出一个老师讲授多门课,一门课有多本教材。结合规则Ⅴ、Ⅵ得老师和课程为1:n,课程和教材为1:n。
③第三步,添属性,将表格的属性都赋给实体。
ER2

④第四步,消冗余。通过表格可以知道,职称和工资挂钩,如果不能通过职称直接查到工资,说明这个ER图没写完整。一个老师有一个职称,可以有多名老师是同一个职称,因此老师和职称是1:n的关系。由于职称还有工资属性。因此将职称变为实体。
由规则Ⅳ知道一个领导带领多个教师,领导和老师之间存在一对多的关系。存在关系就都要写出来。
ER2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江慕途征

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

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

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

打赏作者

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

抵扣说明:

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

余额充值