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 王文华 教授 8000 null
9983 李一斌 副教授 6000 9868
9985 丁一 讲师 4000 9868
0783 王润泽 讲师 4000 9868
0899 欧阳丹尼 讲师 4000 9868

课程

课程号 课程名 学分 教材号 教材名 出版社名 任课教师号
C2006 计算机原理 3 11 计算机原理 清华大学出版社 9868
C2006 计算机原理 3 12 计算机原理与应用 高等教育出版社 9868
C2004 数据结构 3 13 数据结构 清华大学出版社 9868
C2010 数据库原理 3 14 数据库原理 清华大学出版社 9868
C2010 数据库原理 3 15 数据库原理与技术 高等教育出版社 9868
S3001 音乐欣赏 2 16 音乐欣赏 清华大学出版社 9983

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

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

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐