You are on page 1of 58

第3章 实体联系数据模型

刘红岩
清华大学 管理科学与工程系
liuhy@sem.tsinghua.edu.cn
review

 基本概念
 数据、数据库、数据库管理系统、数据库系统
 发展历史
 60s、70s、80s、90s、21c.
 数据模型
 概念模型、逻辑模型、物理模型
 数据库应用系统开发方法
 系统开发生命周期法
 快速应用开发方法

Hongyan Liu @ Tsinghua University 2


系统开发生命周期法

项目规划

需求分析

概念设计

逻辑设计

物理设计

实现

维护

Hongyan Liu @ Tsinghua University 3


主要内容

 基本ER数据模型
 实体
 联系
 属性
 结构约束
 增强ER数据模型
 特殊化/概括
 聚集

Hongyan Liu @ Tsinghua University 4


实体联系模型
 ER模型:Entity Relationship Model
 P. P. Chen (Peter Pin-Shan Chen, 陈品山)
http://www.csc.lsu.edu/~chen/chen.html
 The entity-relationship model:toward a unified
view of data,
 VLDB, 1975
 ACM Transactions on Database Systems
(TODS) Volume 1 , Issue 1 (March 1976)

 International Conference on Conceptual Modeling (ER)


 Formerly: International Conference on the Entity Relationship
Approach

Hongyan Liu @ Tsinghua University 5


实体联系模型
 传统表示方法

cNo
1..* 1..1
sNo Student has Class cName

0..1
year
sName
sex birthdate
belong to

0..1

Department

dNo dName secretary

Hongyan Liu @ Tsinghua University 6


实体联系模型

 UML--统一建模语言
(Unified Modeling Language)
1..* ◄ Has 1..1 Class
 1994年开始Rational 公司的 Student
sNo {PK} cNo
3位面向对象方法学的创始人 sName cName
Rumbaugh、Booch和 sex Year
Jacobson先后开始合作 birthdate 0..1

 于1997年提交给对象管理组 属于

(Object Management
0..1
Group),被采纳为面向对象 Department
建模方法的标准 dNo {PK}
dName
secretary

Hongyan Liu @ Tsinghua University 7


实体联系模型

 ER 图:
 软件
 CA: AllFusion ERwin data modeler
student
sno class
sname cno
sex cname
birthday year
cno (FK) dno (FK)

department
dno
dname
secretary

Hongyan Liu @ Tsinghua University 8


基本ER数据模型

 实体(entity)
 凡是可以互相区别而可以被人们识别的事、物、
概念等统统抽象为实体
 如:产品、销售、促销策略
 具 有 共 性 的 一 类 实 体 组 成 一 个 实 体 集 ( entity
set)。
 一般以大写字母表示实体集,小写字母表示实体。
 以学生为例,设以ES表示学生实体集,e表示学生实体,
则ES={e|e是学生}

Hongyan Liu @ Tsinghua University 9


基本ER数据模型

 弱实体(Weak Entity),或从属实体:
以另外一些实体的存在为前提如:
 订单和订单细节
 强实体和弱实体之间的这种依赖关系
称为存在依赖

Hongyan Liu @ Tsinghua University 10


基本ER数据模型

 实体的图形表示
 矩形框表示:单线矩形框和双线矩形框
 框内是实体的名字
 名字若用英文单词表示,每个英文单词的首字
母都应大写,

Order OrderDetail SalesPerson

订单 订单细节 销售员

Hongyan Liu @ Tsinghua University 11


基本ER数据模型

 联系(relationship)
 工人(Worker)与产品(Product)存在一
种联系
 工人王静负责产品羽毛球球拍的生产,张军负
责足球的生产等。
 两个不同实体集之间的联系,又称为二元
联系(binary relationship)
Worker Product

Hongyan Liu @ Tsinghua University 12


基本ER数据模型

 n个不同实体集之间的n元联系:一个n
元元组的集合:
{(e1, e2, …en) | e1E1,…, eiEi, …,enEn }
 n称为该联系的度(degree)。
 n=1时的联系称为一元(unary)联系,
 n=2时称为二元联系(binary relationship)
 n=3时称为三元(ternary)联系,
 n大于2的联系又成为复杂联系(complex
relationship)

Hongyan Liu @ Tsinghua University 13


基本ER数据模型

 联系的图形表示
 二元联系
Produces
Worker Product

 用实线将参与联系的两个实体集连接起来
 实线的上面是联系的名称和一个箭头
 联系的名称一般用动词或动词短语表示
 箭头用于表明参与实体与联系名称之间的
关系

Hongyan Liu @ Tsinghua University 14


基本ER数据模型
 语义网络(semantic net):
 用符号代表实体,
 代表联系,
 连线将联系的参与实体连接起来
Worker Product
(workerName) Produces (pCode)

王静  202
张军  101
李海  201
赵玲 

Hongyan Liu @ Tsinghua University 15


基本ER数据模型

 一元联系,又称递归联系(recursive
relationship):只有一个实体集参与但
参与多次的联系
 扮演两个不同的角色(role)
工人 工人
(姓名) (姓名)
◄带 带

师父
王静  王静
张军  张军
李海 李海
工人 
赵玲 赵玲
徒弟 

Hongyan Liu @ Tsinghua University 16


基本ER数据模型

 三元联系
 用菱形框表示联系
Supplier Supply Part

Factory

Hongyan Liu @ Tsinghua University 17


基本ER数据模型

 属性(attribute): 用于描述实体或
联系的每一个特性
 描述销售员(SalesPerson)的属性:
工作证号(spID)、姓名(spName)、性别(spSex)、
出生日期(spBirthdate)、电话(spTelNo)
 描述学生和课程之间的选课联系的属
性:分数(score)

Hongyan Liu @ Tsinghua University 18


基本ER数据模型
 属性的分类
 简单属性(simple attribute)
 又称原子属性(atomic attribute)
 复合属性(composite attribute)
 如:销售员的地址:省、市、街道
 单值属性(single-valued attribute)
 多值属性(multi-valued attribute)
 如:销售员的电话
 派生属性(derived attribute)
Hongyan Liu @ Tsinghua University 19
基本ER数据模型
 候选键(candidate key):属性组的每一个
取值可以唯一地决定实体集中的一个实体,而
属性组的任一个真子集没有这个特性
 Salesperson, student, course
 如果候选键是包含两个以上属性的属性组,该
候选键称为复合键(composite key)
 主键(primary key):从若干个候选键中选
出的一个用于识别实体集中每一个实体的候选

 其他的候选键称为替补键(alternative key)

Hongyan Liu @ Tsinghua University 20


基本ER数据模型

 属性的图形表示 SalesPerson
spID {PK}
 属性的名称若用英文单词 spName
表示 spSex
 单词的首字母小写,若包 spBirthdate
含多个单词或单词缩写, spTelNo[1..3]
每个后续的单词或单词缩 spSalary
写的首字母大写 spBonus
/totalSalary
 实体的矩形框分成上下两 spAddress
部分 province
city
 上部是实体的名字, street
 下部是各个属性的名字, zipCode

Hongyan Liu @ Tsinghua University 21


基本ER数据模型
SalesPerson
 实体的属性 spID {PK}
spName
 若有主键,主键应列为 spSex
spBirthdate
第一个属性,且属性名 spTelNo[1..3]
后面加上主键的标记{PK} spSalary
spBonus
 复合键:每个属性后 /totalSalary
{PPK} spAddress
province
 实体的简化图形表示 city
street
SalesPerson zipCode

spID

Hongyan Liu @ Tsinghua University 22


基本ER数据模型
SalesPerson
 实体的属性 spID {PK}
spName
 派生属性:在其属性名前 spSex
spBirthdate
加上一个斜线/; spTelNo[1..3]
 对于多值属性,用方括号 spSalary
spBonus
指明取值个数的上下限, /totalSalary
例如,[1..3] ,[1..*] spAddress
province
 对于复合属性,将其各个 city
子成分缩进显示在复合属 street
zipCode
性名的下面。

Hongyan Liu @ Tsinghua University 23


基本ER数据模型
Order
 实体的属性 orderNo{PK}
custerNo
 弱实体的属性中不存 orderDate
在主键,其主键需要 delivDate

其依赖的实体的主键 OrderDetail
和其本身的某些属性 itemNo

共同组成 qty
discount

Hongyan Liu @ Tsinghua University 24


基本ER数据模型

 联系的属性:
 显示于矩形框的下部,用虚线将矩形框与联系
相连

SalesPerson Has Branch


spID brachID

beginDate

Hongyan Liu @ Tsinghua University 25


联系的约束
 结构约束:描述参与联系的实体之间如何关联
 在图形中通过参与度(min..max)来表示,对
于E1与E2之间联系:
E1 R E2
pk1 min1..max1 min2..max2 pk2

 min2:实体集E1中实体的最小参与次数,即E1的一
个实体最少与E2中min2个实体有联系
 max2:实体集E1中实体的最大参与次数,即E1的一
个实体最多与E2中max2个实体有联系
Hongyan Liu @ Tsinghua University 26
基本ER数据模型
 参与度的确定和图形表示
SalesPerson Branch
(spID) Manages (BranchNo)

sp1  b1
sp2 
sp3  b2
sp4 

SalesPerson Manages Branch


spID 1..1 0..1 brachID

Hongyan Liu @ Tsinghua University 27


基本ER数据模型
 参与度→ 参与约束、基数约束
 参与约束(participation constraint)
 全参与(total participation)
 部分参与(partial participation)
 Min值反映参与约束
 Min1=0: E2是部分参与; Min2=0: E1是部分参与
 Min1>0: E2是完全参与; Min2>0: E1是完全参与

SalesPerson Manages Branch


spID 1..1 0..1 brachID

min1..max1 min2..max2
Hongyan Liu @ Tsinghua University 28
基本ER数据模型

 基数约束(cardinality constraint):约
束通过一个联系同另一个实体集中相联系的
实体数目。用于二元联系时非常有用,也可
以用于复杂联系。
 Max值反映基数约束,对于二元联系:
 1 对 1: one to one
 1 对多: one to many
 多对多: many to many

Hongyan Liu @ Tsinghua University 29


1对1联系
 max1=1, max2=1: E1中的每个实体可以和E2中
的0个或1个实体有联系,E2中的每个实体也
可以和E1中的0个或1个实体有联系。
SalesPerson Manages Branch
spID 1..1 0..1 brachID

SalesPerson Branch
(spID) Manages (BranchNo)

sp1  b1
sp2 
sp3  b2
sp4 
1对多联系
 max1=1, max2=*或>1 E1中的每个实体可以和E2
中的任意多个实体有联系,E2中的每个实体
可以和E1中的0个或1个实体有联系。
Branch SalesPerson
(BranchNo) Has (spID)

 sp1
b1  sp2
b2  sp3
 sp4

Branch Has SalesPerson


branchID 1..1 1..* spID

Hongyan Liu @ Tsinghua University 31


基本ER数据模型

 弱实体的特点:
 强实体与弱实体之间是1对多联系
 弱实体的存在以强实体的存在为前提,即存在依赖
 弱实体本身的属性不足以构成其主键

Order Contains OrderDetail


orderNo 1..1 1..* itemNo

Hongyan Liu @ Tsinghua University 32


基本ER数据模型
 多对1联系
OrderDetail ReferTo Product
(orderNo, itemNo) (pCode)

(21,1)  101
(21,2)  102
(21,3)  202
(24,4)  301
(23,1)  302

OrderDetail ReferTo Product


itemNo 0..* 1..1 pCode

Hongyan Liu @ Tsinghua University 33


多对多联系
max1>1或=*, max2= *或>1 : E1中的每个实体可以和
E2中的任意多个实体有联系,E2中的每个实
体可以和E1中的任意多个实体有联系
Product ConsistsOf Part
pCode partNo
0..* 1..*
Part ConsistsOf Product
(partNo) (pCode)

p1  101
p2  102
p3  201
p4 

Hongyan Liu @ Tsinghua University 34


基本ER数据模型 Supervises
0..1
 一元联系:参与度写在角色附近 supervisor

0..* Worker
supervisee

Worker Worker
(WorkerName) (WorkerName)
supervises

王静  王静
张军  张军
李海 李海

赵玲 赵玲

Hongyan Liu @ Tsinghua University 35


基本ER数据模型
 复杂联系:对于n元联系,先固定其中的n-1个实体
集的取值,然后分析另一个实体集中的几个实体与
其有关联
 例如:三元联系supply
Supplier/Part Supply Factory
(sID, pID) (since) (fID)

(s1, p1) (2000-1-1)


 f1

(2000-5-1) f2
(s1, p2) 
(2000-2-1) f3
(2000-5-1)
(s2, p2) 
(2001-1-1)
(s3, p1) 

Hongyan Liu @ Tsinghua University 36


基本ER数据模型

 三元联系的图形表示

1..* 1..*
Supplier supply Part

1..*
Factory

Hongyan Liu @ Tsinghua University 37


总结
A R B
min1..max1 min2..max2

B (0..1) (1..1) (0..*) (1..*)


基数约束
A 参与

min1..max1 一对一 一对一 一对多 一对多


(0..1) 双方都部分参与 B部分参与 双方都部分参与 B部分参与
(1..1) 一对一 一对一 一对多 一对多
A部分参与 双方都是全参与 A部分参与 双方都是全参与
(0..*) 多对一 多对一 多对多 多对多
双方都部分参与 B部分参与 双方都部分参与 B部分参与
(1..*) 多对一 多对一 多对多 多对多
A部分参与 双方都是全参与 A部分参与 双方都是全参与

Hongyan Liu @ Tsinghua University 38


基本ER数据模型

• 某体育用品公司销售许多产品(product),
在全国不同地方设立多个销售点(branch),
每个销售点有多名销售人员(salesperson)
。每个客户(customer) 购买该公司的产品时
,负责该客户的销售员要提交订单(order),
以列出客户此次购买行为的相关信息,如客
户编号、购买日期以及购买的商品的细节信
息(orderdetail),如产品编号、数量、折扣等
。每个订单最多有一个销售人员负责。

Hongyan Liu @ Tsinghua University 39


ER模型
Customer
custNo{PK}
custName
Branch
custTelNo
branchID{PK}
custFaxNo
branchName
1..1 branchTelNo
orderDate
submit▼ branchAddress
1..*
Order 1..1
Has
orderNo{PK}
delivDate Responsible 1..1
SalesPerson 1..*
0..* 0..1 empID{PK}
1..1 spTelNo
Contains spFaxNo
1..*
OrderDetail
itemNo
qty
discount
0..* 简化表示:
ReferTo
1..1
Product
1..1: 1
pCode{PK}
pType
0..*: *
pName
price
主要内容

 基本ER数据模型
 实体
 联系
 属性
 结构约束
 增强(扩充)ER数据模型
 特殊化/概括
 聚集

Hongyan Liu @ Tsinghua University 41


EER模型
 扩充ER数据模型
(extended entity relationship data model)
增强ER数据模型
(enhanced entity relationship data model)
简称为EER数据模型
 特殊化(specialization)
 概括(generalization,普遍化)
 聚集(aggregation)

Hongyan Liu @ Tsinghua University 42


增强ER模型
 特殊化
 特殊化是一个对实体集细化、逐步求精的过程
 实体集中的部分实体具有一些区别于其他实体的
特性,特性的取值可以将原来的实体集分解成或
从中抽出几个实体子集
 原来的实体集称为超类(或父类),而其每个子
集称为子类。
 例如:体育用品公司的所有职员Employee具有
如下的共同特性:empID, empName, sex, age,
empAddress。但工作性质不同,特殊化为工人
(Worker)和销售员(SalesPerson)

Hongyan Liu @ Tsinghua University 43


特殊化

 特殊化的原因
 子类具有超类不具有的属性。例如,工人可以具有技术级
别(skill)属性,而销售员则具有联系电话(spTelNo)、传
真(spFaxNo)等属性,这些属性是由其工作性质所决定
的,在子类间不共享。
 各子类参与不同于超类参与的联系。例如,工人与车间和
产品之间存在联系,而销售员与销售分支机构等实体参与
联系。
 特殊化的重要特性是属性继承
 一个超类实体的所有子类实体继承该超类的所有属性和联

 子类还可以继续特殊化成更低一层次的子类,低层次的子
类继承其所有直接或间接超类的属性和联系。

Hongyan Liu @ Tsinghua University 44


特殊化
Employee
 图形表示 empID {PK}
 “Is a” empName
sex
birthday
empAddress

{Optional, Or}

Worker SalesPerson
skill spTelNo
spFaxNo

Hongyan Liu @ Tsinghua University 45


特殊化

 约束:参与约束(participation constraint)
和不相交约束(disjoint constraint)
 参与约束:描述超实体和子实体的关系
 一 种 是 强 制 ( mandatory) 类 型 : 又 称 为 全 特 殊 化
(total specialization),是指超类的每个实体都存在
于某个或某些子类中
子类的并集等价于超类
 一 种 是 任 选 ( optional) 类 型 : 又 称 为 部 分 特 殊 化
(partial specialization),指的是超类中的某些实体
不存在于任何一个子类中。

Hongyan Liu @ Tsinghua University 46


特殊化

 不相交约束:描述子类之间的关系的:
 重叠特殊化(And):超类中的实体可以同时属于
多个同层次子类。
 不相交特殊化(Or):超类中的每个实体最多只能
属于一个子类,即子类之间不相交

 图形中约束的表示方法:
{参与约束,不相交约束}

Hongyan Liu @ Tsinghua University 47


特殊化

 例:在大学中学习和工作的人有学生和教职
员工。学生分研究生和本科生,按性别分男
生和女生。教职员工分教工和职工两类,教
工主要从事教学工作,而职工主要从事行政
工作,有些人可能既担负教学工作,也担负
一定的行政工作。请用特殊化的方法描述大
学中的人员

Hongyan Liu @ Tsinghua University 48


特殊化
Person

 大学中人的特殊化
{Optional, And}

Employee Student

{Mandatory, And} {Optional, Or} {Mandatory, Or}

Staff faculty Graduate Undergraduate Female Male

{Optional} {Optional}

FacStaff

Hongyan Liu @ Tsinghua University 49


概括

 概括(普遍化)
 概括是特殊化的逆过程,是根据若干个已有实体的
共同特征,将它们合并抽象为一个超类实体的过程,
因而是一个自底向上的设计过程
 如:工人生产产品,销售员销售产品,工人、销售
员同为公司的工作人员,有统一的编号,都有姓名、
年龄、性别、住址等属性,因此可以进行概括,概
括为公司员工。

Hongyan Liu @ Tsinghua University 50


概括
 概括的目的
 避免子类所共有的属性在多个子类中重复出现
 避免定义多个语义相同的联系
 如:公司为每个员工,包括工人和销售员,购买不
同额度的保险 Worker 1..1 Has 1..1 Policy1
pID{PK}
empID
period
name amount
skills …
policyDate
1..1
SalesPerson
1..1
Has
empID 1..1
name
spTelNo
spFaxNo
policyDate

Hongyan Liu @ Tsinghua University 51


概括
 若进行概括
两个联系的语义是相同的,联系的属性也是相同的。
经概括之后,则只需将超类,即公司员工,与保险单
发生联系即可,使得模型更为简洁,更易理解。

Worker 1..1
skills {optional, Or}
Employee 1..1 Has 1..1 Policy1
empID pID{PK}
name period
SalesPerson amount
spTelNo …
policyDate
spFaxNo

Hongyan Liu @ Tsinghua University 52


特殊化和概括

 特点
 特殊化用于强调一个抽象级别较高的实体集(即超
类)的子实体集(即子类)具有特殊的特性,并且
参与不同的联系。
 概括则是强调低层实体集之间所具有的共性,即具
有相同的属性和参与相同的联系。两种方法都是对
数据进行更精确描述的方法。
概括的图形表示与特殊化相同

Hongyan Liu @ Tsinghua University 53


聚集
 在基本ER模型中,联系的参与者只能是实体,联
系本身是不可以再参与其他的联系
 例如:每位教师每学期可以讲授多门课程,每门
课可以由多名教师单独讲授。每名学生可以选修
多门不同的课程,每门课程可由多名学生选修。
C1 数据库原理 32学时 2学分 春季
C2 信息系统 32学时 2学分 春季
T1 张老师 教授 男 50
T2 刘老师 副教授 女 30
S1 张三 男 管理科学与工程
S2 李四 男 经济
S3 王一 女 会计

Hongyan Liu @ Tsinghua University 54


聚集
1..* teach 0..* T1, C1, 2003, 三教3200
Teacher Course
T2, C1, 2003, 六教6A302

1..6 T1, C2, 2003, 四教4102

study S1, C1, 80

若要统计每个教授每

20..100 S1, C2, 85

个学期所教的每个课堂 Student S2, C1, 90


的学生人数? S3, C1, 70

1 0..*
Teacher TCS Course

S1, T1, C1, 2003, 三教3200, 80


20..*
S1, T1, C2, 2003, 四教4102, 85
Student
S2, T2, C1, 2003,六教6A302, 90

S3, T2, C1, 2003,六教6A302, 70

……
Hongyan Liu @ Tsinghua University 55
聚集的方法解决该问题
CL1, T1, C1, 2003, 三教3200
CL2, T2, C1, 2003, 艺术212

CL3, T1, C2, 2003, 四教4102

S1, CL1, 80

S1, CL2, 85

S2, CL2, 90
Teacher S3, CL3, 70

custNo
联系

Teach take Student


year sID
classRoom
Course
courseNo
score

Hongyan Liu @ Tsinghua University 56


个人作业

 3.5 (1)、(3)、(4)(第3周上课时交)

Branch SalesPerson
branchID 1..1 Has 1..* spID

Manages
0..1 1..1

Hongyan Liu @ Tsinghua University 57


大作业
 每个小组选择一个案例,自行选定某一
应用背景,描述其基本信息需求,为其
设计ER数据模型
 (实体集个数+多对多联系的个数)≥5

 提交截至日期:下次课(每组交1份)

Hongyan Liu @ Tsinghua University 58

You might also like