数据库系统工程师-02实体-联系模型
数据库系统1-2:实体-联系(E-R)模型

实体-联系模型(简称E-R模型)是由P.P.Chen于1976年⾸先提出的。
它提供不受任何DBMS约束的⾯向⽤户的表达⽅法,在数据库设计中被⼴泛⽤作数据建模的⼯具。
E-R数据模型问世后,经历了许多修改和扩充,这⼉仅介绍基本的E-R数据模型。
1.2.2.1 E-R模型的结构 E-R模型的构成成分是实体集、属性和联系集,其表⽰⽅法如下: (1)实体集⽤矩形框表⽰,矩形框内写上实体名。
(2)实体的属性⽤椭圆框表⽰,框内写上属性名,并⽤⽆向边与其实体集相连。
(3)实体间的联系⽤菱形框表⽰,联系以适当的含义命名,名字写在菱形框中,⽤⽆向连线将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即1—1、1—M或M—M。
因此,E-R模型也称为E-R图。
例如系、学⽣和课程的联系的E-R模型系、学⽣和课程作为实体集;⼀个系有多个学⽣,⽽⼀个学⽣仅属于⼀个系,所以系和课程之间是⼀对多的联系;⼀个学⽣可以选修多门课程,⽽⼀门课程有多个学⽣选修,所以学⽣和课程之间是多对多的联系。
1.2.2.2 E-R模型对⼏种特殊的实体联系的表⽰ E-R模型在表⽰复杂实体和实体之间的复杂联系⽅⾯有较强的能⼒。
除了可以明确表⽰⼆个实体集之间1—1、1—M或M —M的联系。
还可以: (1)表⽰三个以上的实体集之间的联系。
例如,⼀个售货员(Salesperson)可以将多种商品(Goods)售给⼀个顾客(Customer),⽽⼀个售货员也可以将⼀种商品售给多个顾客;⼀个顾客的⼀种商品可以由多个售货员经售。
售货员、商品和顾客三个实体集之间的联系是多对多的三元联系,其E-R模型表(2)表⽰⼀个实体集内部的联系 例如,雇员(EMP)这个实体集中,总经理下设多个部门经理,⽽部门经理下⾯有多个雇员。
因此,雇员这个实体集中实体之间存在⼀对多的联系,其E-R模型如图1.12所⽰。
(3)表⽰⼆个实体集之间的多种联系 例如,雇员(EMP)和设备(EQUIP)之间可以有多种联系,⼀种联系是⼀个设备可以由多个雇员操作(operation),另⼀种联系是⼀个雇员可以维修(maintain)多个设备,其E-R模型 1.2.2.3 作E-R图的步骤 (1)确定实体和实体的属性 (2)确定实体之间的联系及联系的类型 (3)给实体和联系加上属性 如何划分实体及其属性有两个原 则可作参考:⼀是作为实体属性的事物本⾝没有再需要刻画的特征⽽且和其它实体没有联系。
数据库系统工程师-02实体-联系模型

2. 1数据库设计过程数据库运行与维护阶段2. 2基本概念2. 2. 1 1976年,P.P.S.Chen 提出 E-R 模型(Entity-Relationship Model),用E-R 图来描述概念模型。
观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的。
2. 2. 2基本概念(1) 实体(En tity):客观存在并可相互区分的事物叫实体。
如学生张三、 工人李四、计算机系、数据库概论。
(2) 属性(Attribute):实体所具有的某一特性。
一个实体可以由若干个属 性来刻画。
例如,学生可由学号、姓名、年龄、系、年级等组成。
(4) 域(Domain):属性的取值范围。
例如,性别的域为(男、女),月份的需求分析ER 莫型ODL/确定存储哪些数据,、 建立哪些应用,常用 的操作及对象有哪些 等。
概念数据库设计逻辑数据库设计'对需求分析所得到、 数据的更高层的抽 象描述。
'■将概念模型所描述的数、据映射为某个特定的 DBM 模式数据。
将E-R 模 型转换为关系模型。
物理设计阶段确定物理结构,选定 DBMS 。
数据库实施阶段建立实际数据库结 〈"构。
调试及运行。
/域为1到12的整数。
(5)实体型(Entity Type):实体名与其属性名集合共同构成实体型。
例,学生(学号、姓名、年龄、性别、系、年级)。
注意实体型与实体(值)之间的区别,后者是前者的一个特例。
如学生(9808100,王平,21,男,计算机系,2)是一个实体。
(6)实体集(Entity Set):同型实体的集合称为实体集。
如全体学生。
联系(Relatio nship):实体之间的相互关联。
如学生与老师间的授课关系,学生与学生间有班长关系。
联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性。
同类联系的集合称为联系集。
(7)元或度(Degree):参与联系的实体集的个数称为联系的元。
实体联系模型

实体联系模型实体-联系模型基本概念实体:实体是有别于其他对象的⼀个事物,⽐如⼈,教师,学⽣,课程,专业。
实体集:⼀系列实体组成的集合,在数据库中对应的就是⼀个表。
属性:⼀组属性构成⼀个实体,⽐如学⽣可能具有学号,姓名,年龄等属性。
每个实体中的属性都有⼀个值。
所以⼀个数据库中包含若⼲个实体集,每个实体集中有若⼲个实体,每个实体中有⼀些属性。
联系:多个实体之间相互关联,⽐如教师Katz 和学⽣Shankar 可能存在⼀个联系advisor ,表⽰Katz 是Shankar 的⽼师联系集:相同类型联系的集合。
如果E 1,E 2,E 3,...,E n 是实体集,联系集R 是如下集合的⼀个⼦集,n >=2,(e 1,e 2,...,e n )是其中的⼀个联系。
(e 1,e 2,...,e n )|e 1∈E 1,e 2∈E 2,...,e n ∈E n 说⽩了,联系集就是咱们⽤数据库时建的那些⽤来联系两个表的表,⽐如选课表⽤来联系学⽣和课程之间的⼀个关系。
⽽这个联系⽤数学表⽰就是(student _id ,course _id ),所有这些元组就组成了联系集{(student _id ,course _id )|student _id ∈student ,course _id ∈course },也就是选课表。
参与:实体集之间的关联称为参与,⽐如⼀个学⽣Shankar 和⼀门课程Comp. Sci.共同参与到选课这个联系中。
联系实例:两个实体集中的实体参与到⼀个联系中时,就构成了⼀个联系实例,⽐如学⽣Shankar 选了Comp. Sci.课程,那么它们就构成了选课联系中的⼀个联系实例。
⾓⾊:实体在联系中充当的功能。
描述性属性:联系中可以具有⼀些描述性属性,⽐如通过⼀个date 来记录学⽣在何时选了⼀门课。
联系集的度:参与联系集的实体集个数,⼀般情况下联系集的度为2,称为⼆元联系集。
属性简单属性和复合属性之前的属性都是简单属性,就是只有⼀个值的属性,复合属性可以继续划分称更⼩的属性。
第2章 实体联系数据模型

参与:实体型之间的关联称为参与。 角色:实体在联系中的作用。
NanHua University School of Computer Science & Technology 22
2
第2章 实体联系数据模型
2.数据模型含有哪些内容?
数据的静态结构。 数据的动态操作(增删改查询)。 数据的完整性约束。 综合说来,应描述数据、数据之间联系、 数据语义及完整性限制。
NanHua University School of Computer Science & Technology
3
NanHua University School of Computer Science & Technology
21
第2章 实体联系数据模型
联系型( 联系型(Relationship Set) )
同类型的联系的集合。 规范的说,联系型是n(n≥2)个实体型上 的数学关系。如果E1,E2,……,En为n 个实体型,那么联系型R是
提示:用这种方式(约束)来说明现实系统 中的某种规定
NanHua University School of Computer Science & Technology 25
第2章 实体联系数据模型
a1 a2 a3 a4
b1 b2 b3 b4
NanHua University School of Computer Science & Technology
26
第2章 实体联系数据模型
数据库系统概论——实体-联系模型、ER图

画E-R图
例2.学生信息管理系统
❖ 1.找出当前问题/应用涉及到的所有实体型 ❖ 2.分析实体型的属性
▪ 学生: 学号、姓名、性别、系别、出生日期、入学日 期、奖学金
▪ 课程 :课程号、课程名、教师、学分、类别
❖ 3.找出实体型之间的联系 ❖ 4.确定联系的映射基数以及是否具有属性
联系中的一个重要概念——映射基数
❖ 映射基数 ❖ 指明通过一个联系集能同时与另一实体相联系的
实体数目
二、两个实体型之间的联系
用图形来表示两个实体型之间的这三类联系
实体型A
实体型A
实体型A
1
1
m
联系名
联系名
联系名
1 实体型B 1:1联系
n 实体型B 1:n联系
n 实体型B m:n联系
二、两个实体型之间的联系(续)
画E-R图
借书日期
更新日期
图书名称 图书分类号
作者
图书
n
1
借阅
编号 读者
状态 姓名 工作单位
出版社
图书编号
图书价格
还书日期
办证日期 罚金
身份证号
随堂练习
❖ 医院病房计算机管理系统 ❖ 其中,一个科室有多个病房、多个医生,一个病
房只能属于一个科室,一个医生只属于一个科室, 但可负责多个病人的诊治,一个病人的主管医生 只有一个。
❖ 一对一联系
职工
1
n
领导
单个实体型内部 1:n联系
单个实体型内的联系
❖ 多对多联系
实体型1
m
n
联系名
单个实体型内的 m:n联系
数据库设计中的实体和关系模型

数据库设计中的实体和关系模型一、引言数据库设计是构建和管理数据的有效工具的过程。
在设计数据库之前,我们需要考虑数据的组织和结构。
实体和关系模型是数据库设计的核心概念,对于合理组织数据起着重要的作用。
二、实体模型1. 定义和概念实体模型是数据库设计中对现实世界中对象的抽象。
实体是一个具体存在、具有独立存在能力并能被区分出的事物。
在数据库设计中,实体常常用表来表示,表的每一行表示一个实体。
2. 实体属性每个实体都有一组属性来描述它的特点和状态。
属性通常包括实体的名称、类型、大小、取值范围等。
属性一般对应表中的列。
3. 实体间的关系实体间的关系是描述实体之间的联系以及相互依赖的方式。
常见的关系有一对一关系、一对多关系和多对多关系。
- 一对一关系:一个实体实例只能与另一个实体实例相对应。
- 一对多关系:一个实体实例可以与多个实体实例相对应。
- 多对多关系:多个实体实例可以与多个实体实例相对应。
4. 示例比如我们设计一个图书管理系统的数据库,其中包含实体图书、作者和出版社,它们之间的关系可以表示为:- 一本书只能有一个作者,一个作者可以写多本书,这是一个一对多关系。
- 一本书只能属于一个出版社,一个出版社可以出版多本书,也是一个一对多关系。
- 多本书可以由多个作者共同完成,这是一个多对多关系。
三、关系模型1. 定义和概念关系模型是基于关系代数的数学模型,用来描述实体、关系和约束之间的关系。
关系模型以表的形式表示数据,并通过表间的关系来描述数据的逻辑结构。
在关系模型中,我们常用主键和外键来表示表间的关联,主键是唯一标识一条记录的字段,外键是关联到其他表的字段。
2. 关系操作关系模型通过一些操作来查询和操作数据,并保证数据的完整性和一致性。
- 选择操作:根据条件选择满足要求的记录。
- 投影操作:提取表中某些列的数据。
- 连接操作:基于两个或多个表之间的关联,获得满足条件的组合数据。
- 更新操作:修改表中的数据。
第2章 实体-联系数据模型

(3)实体型(Entity Type) • 是对现实世界中各种事物的抽象。 • 通常用实体名和属性名来抽象和刻画同 类实体。 • 例如:学生(学号,姓名,性别,年龄) • 一般来说,每个实体型相当于数据库中 的一张数据表结构。
(4)实体集(Entity Set) • 若干同型实体的集合。或者说,凡是有 共性的实体组成的一个集合。 (5)关键字或码(Key) • 能唯一标识实体集中每个实体的属性集 合。
【例2-2】书16页
联系的属性位置约束
• 对于1:1和1:n的联系,数据库设计者可以根 据具体的应用将联系的属性移动到某个实体 集中作为属性。具体做法如下:
如果实体集A和B之间的联系为1:1,则联系的属性 既可以移动到实体集A中,也可以移动到实体集B 中。 如果实体集A和B之间的联系为1:n,则联系的属性 可以移动到与n对应的实体集B中。
如果实体集a中的一个实体可以同实体集b中n个实体n0相联系而实体集b中的一个实体也可以同实体集a中m个实体m0相联系则称a与b具有多对多联系记为m
第2章 实体-联系数据模型
2.1 E-R模型概述 ★ ★ ★ 2.2 基于E-R模型的概念数据库设计★
2.1 E-R模型概述
2.1.1 E-R模型的基本概念 2.1.2 完整性约束 2.1.3 E-R图
本章作业
上机安排
上机地点: 自动化院机房115房间
(6)域(Domain) • 属性的取值范围。 • 例如,性别的域为集合{男,女}。 (7)联系(Relationship) • 现实世界中事物之间或事物内部之间的 关联。
【例2-1】书15页 (1)根据说明,可以定义如下3个实体型: • 系(系号,系名,系主任) • 学生(学号,姓名,性别,出生日期,所在 系,班级) • 课程(课程号,课程名,所在系,学分) (2)存在的联系: • 实体集与实体集之间的联系: • 实体之间的联系:
第2章实体-联系数据模型分析解析

DBMS的转换 机器世界
机 器 世 界: 某DBMS支持的数据模型
现实世界 事物及其联系 图 人脑的抽象 信息世界 概念模型 数据模型的两个级别
实施模型
数据库模型通常包含概念模型和实施模型,反映了信息的两重抽象 4
14
二元E/R联系的多样性(2)
一对一联系:如果对于实体集E中的每一个实体,实 体集F中至多有一个实体与之联系,反之亦然,则称 实体集E与实体集F具有一对一联系。
实体集F 实体集E
15
二元E/R联系的多样性(3)
多对多联系:如果对于实体集E中的每一个实体,实 体集F中有n个实体( n≥0 )与之联系,反之,对于实 体集F中的每一个实体,实体集E中也有m个实体 ( m≥0 )与之联系,则称实体集E与实体集F具有多 实体集F 实体集E 对多联系。
数据库实例也包含联系的具体选择。联系n个实体 集E1,E2,…,En的联系R有一个实例,由列表(e1,e2,…,en) 的有限集构成,其中ei是从实体集Ei的当前实例中选 出的。这个列表集叫做R当前实例的联系集。
11
实体-联系模型的基本概念(续)
基本概念
(1)数据库实例:E/R图描述的数据库包含特定的数据称
数据库是某个企业、组织或部门所涉及的数据 的综合,它不仅要反映数据本身的内容,而且 要反映数据之间的联系。
现实世界中的数据要进入到数据库中,需要经 过人们的认识、理解、整理、规范和加工。可 以把这一过程划分成三个主要阶段:
现实世界阶段 信息世界阶段
机器世界阶段
3
三个阶段间的相互关系
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章实体-联系模型(概念数据库设计)
2.1 数据库设计过程
2.2 基本概念
2.2.1 1976年,P.P.S.Chen提出E-R模型(Entity-Relationship Model),用E-R图来描述概念模型。
观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的。
2.2.2 基本概念
(1)实体(Entity):客观存在并可相互区分的事物叫实体。
如学生X三、工人李四、计算机系、数据库概论。
(2)属性(Attribute):实体所具有的某一特性。
一个实体可以由若干个属性来刻画。
例如,学生可由学号、XX、年龄、系、年级等组成。
(4)域(Domain):属性的取值X围。
例如,性别的域为(男、女),月份的
域为1到12的整数。
(5)实体型(Entity Type):实体名与其属性名集合共同构成实体型。
例,学生(学号、XX、年龄、性别、系、年级)。
注意实体型与实体(值)之间的区别,后者是前者的一个特例。
如学生(9808100,王平,21,男,计算机系,2)是一个实体。
(6)实体集(Entity Set):同型实体的集合称为实体集。
如全体学生。
联系(Relationship):实体之间的相互关联。
如学生与老师间的授课关系,学生与学生间有班长关系。
联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性。
同类联系的集合称为联系集。
(7)元或度(Degree):参与联系的实体集的个数称为联系的元。
如学生选修课程是二元联系,供应商向工程供应零件则是三元联系。
(8)码(Key):
A、候选码:关系中的某一属性或属性组的值能唯一地标识一个元组,称该属性或属性组为候选码。
B、主码:一个关系有多个候选码,从中选定一个用来区别同一实体集中的不同实体,称作主码。
一个实体集中任意两个实体在主码上的取值不能相同。
如学号是学生实体的码。
通讯录(XX,邮编,地址,,Email,BP)
C、外码:
D、全码:关系模型中所有属性组是这个关系模式的候选码,称为全码。
(9)参与(Participation):实体集之间的关联称为参与,即实体参与联系。
如王军选修“数据库基础”,表示实体“王军”与“数据库基础”参与了联系“选修”。
如果实体集E中的每个实体都参与到联系集R中的至少一个联系,则称E全部参与R。
如果实体集E中只有部分实体参与到联系集R的联系中,则称E部分参与R。
如“职工”与“部门”之间的“管理”联系,“职工”实体集部分参与,而“部门”实体集完全参与。
(10)角色(Role):实体在联系中的作用称为实体的角色。
当同一个实体集不止一次参与一个联系集时,为区别各实体的参与联系的方式,需要显式指明其角色。
如学生与班长关系,职工与职工之间的经理关系,课程之间的先修关系。
2.2.3 属性类型
(1)简单属性:不可再分的属性。
如学号、年龄、性别。
(2)复合(posite)属性:可以划分为更小的属性。
可以把相关属性聚集起来,使模型更清晰。
如=区号+本地
(3)单值属性:每一个特定的实体在该属性上的取值唯一。
如学生的学号,年龄、性别、系别等。
(4)多值属性:某个特定的实体在该属性上的有多于一个的取值。
如学生(学号,所选课程,联系),的“所选课程”,“联系”。
(5)NULL属性:Null表示“无意义”,当实体在某个属性上没有值时设为Null。
如通讯录(XX,email,,BP),若某人没有email地址,则在email属性上取值为null。
null表示“值未知”,即值存在,但目前没有获得该信息。
如职工(XX,部门,工种,XX),如果目前不知道职工XX,则设XX值为null。
实体完整性:作为主码的属性上取值不能为null。
(6)派生(Derived)属性与基属性:可以从其他相关的属性或实体派生出来的属性值。
如学生(学号,XX,平均成绩),选课(学号,课程号,成绩),则平均成绩可由学生所选课程的总成绩除以课程总数来得到。
称平均成绩为派生属性,而成绩为基属性,或存储属性。
数据库中,一般只存基属性值,而派生属性只存其定义或依赖关系,用到时再从基属性中计算出来。
基本表 VS 视图
多值属性用双椭圆表示,或用双线与实体相连。
派生属性用虚椭圆表示,或用虚线与实体相连
2.3 映射约束
2.3.1 映射的基数(Mapping Cardinalities ):
实体之间的联系的数量,即一个实体通过一个联系集能与另一实体集相关联的实体的数目。
可以有一对一的(1:1),一对多的(1:m ),多对多的(m:n )几种情况。
在E-R 图中,用箭头或线段来表示联系的映射基数。
(1)二元联系集的映射基数:一对一、一对多、多对多
(2)一个实体集内的二元联系:一对一、一对多、多对多
(3
)多个实体集间联系的情况
2.3.2存在依赖(Existence Dependency )
如果实体x 的存在依赖于实体y 的存在,则称x 存在依赖于y 。
y 称作支配实体,x 称作从属实体。
如果y 被删除,则x 也要被删除。
考虑员工亲属的例子
2.3.3 弱实体集(Weak Entity Set )
如果一个实体集的所有属性都不足以形成主码,则称这样的实体集为弱实体集。
弱实体集与其拥有者之间的联系称作标识性联系(identifying relationship)。
弱实体集与强实体集之间是一对多的联系。
弱实体集必然存在依赖于强实体集(Strong Entity Set)。
存在依赖并不总会导致一个弱实体集,从属实体集可以有自己的主码。
如实体集信用卡(信用卡号,客户XX ,金额),它存在依赖于客户XX 实体集,但信用卡有自己的主码信用卡号。
2.3.4为什么使用弱实体集
通过为弱实体集加上合适的属性,可转变为强实体集,为什么还要使用弱实体集?
(1)避免数据冗余(强实体集码重复),以及因此带来的数据的不一致性。
(2)弱实体集反映了一个实体对其它实体依赖的逻辑结构。
(3)弱实体集可以随它们的强实体集的删除而自动删除。
(4)弱实体集可以物理地随它们的强实体集存储。
2.3.5 复合实体
复合实体的主码一般由两个(或两个以上)联系
2.3.
6 实体的超类与子类
举例:飞行员工与普通员工。
2.4 数据抽象与E-R 模型设计步骤
(1)数据抽象
(2)设计局部E-R 模型
(3)设计全局E-R 模型
A 、合并局部E-R 图,生成初步E-R 图:可能发生的问题,属性冲突,名称冲突,结构冲突。
B 、消除冗余生成E-R 图
2.5 将E-R 模型转换成数据库一般规则
(1)将每一个实体转换成一个关系。
(2)所有主码必须定义非空。
(3)对于二元联系,按照规则定义外码。
A、一对多:将“一”表中的主码作为外码放在“多”表中,外码总是在“多”的一方。
B、弱实体:将父表的主码作为外码放在弱实体中。
弱实体的主码由父表的主码与弱实体本身的候选码组成。
也可以为弱实体建立新的独立的标识符ID。
C、一对一:将一个表的主码作为外码放在另一个表中,外码通常是放在操作比较频繁的表中。
也可以将两个实体合并成一个实体。
D、多对多:建立复合实体,复合实体的主码由两个父实体的主码复合组成。
复合实体的主码也是外码。