Professional Documents
Culture Documents
刘红岩
清华大学 管理科学与工程系
liuhy@sem.tsinghua.edu.cn
review
基本概念
数据、数据库、数据库管理系统、数据库系统
发展历史
60s、70s、80s、90s、21c.
数据模型
概念模型、逻辑模型、物理模型
数据库应用系统开发方法
系统开发生命周期法
快速应用开发方法
项目规划
需求分析
概念设计
逻辑设计
物理设计
实现
维护
基本ER数据模型
实体
联系
属性
结构约束
增强ER数据模型
特殊化/概括
聚集
cNo
1..* 1..1
sNo Student has Class cName
0..1
year
sName
sex birthdate
belong to
0..1
Department
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
ER 图:
软件
CA: AllFusion ERwin data modeler
student
sno class
sname cno
sex cname
birthday year
cno (FK) dno (FK)
department
dno
dname
secretary
实体(entity)
凡是可以互相区别而可以被人们识别的事、物、
概念等统统抽象为实体
如:产品、销售、促销策略
具 有 共 性 的 一 类 实 体 组 成 一 个 实 体 集 ( entity
set)。
一般以大写字母表示实体集,小写字母表示实体。
以学生为例,设以ES表示学生实体集,e表示学生实体,
则ES={e|e是学生}
弱实体(Weak Entity),或从属实体:
以另外一些实体的存在为前提如:
订单和订单细节
强实体和弱实体之间的这种依赖关系
称为存在依赖
实体的图形表示
矩形框表示:单线矩形框和双线矩形框
框内是实体的名字
名字若用英文单词表示,每个英文单词的首字
母都应大写,
订单 订单细节 销售员
联系(relationship)
工人(Worker)与产品(Product)存在一
种联系
工人王静负责产品羽毛球球拍的生产,张军负
责足球的生产等。
两个不同实体集之间的联系,又称为二元
联系(binary relationship)
Worker Product
n个不同实体集之间的n元联系:一个n
元元组的集合:
{(e1, e2, …en) | e1E1,…, eiEi, …,enEn }
n称为该联系的度(degree)。
n=1时的联系称为一元(unary)联系,
n=2时称为二元联系(binary relationship)
n=3时称为三元(ternary)联系,
n大于2的联系又成为复杂联系(complex
relationship)
联系的图形表示
二元联系
Produces
Worker Product
用实线将参与联系的两个实体集连接起来
实线的上面是联系的名称和一个箭头
联系的名称一般用动词或动词短语表示
箭头用于表明参与实体与联系名称之间的
关系
王静 202
张军 101
李海 201
赵玲
一元联系,又称递归联系(recursive
relationship):只有一个实体集参与但
参与多次的联系
扮演两个不同的角色(role)
工人 工人
(姓名) (姓名)
◄带 带
师父
王静 王静
张军 张军
李海 李海
工人
赵玲 赵玲
徒弟
三元联系
用菱形框表示联系
Supplier Supply Part
Factory
属性(attribute): 用于描述实体或
联系的每一个特性
描述销售员(SalesPerson)的属性:
工作证号(spID)、姓名(spName)、性别(spSex)、
出生日期(spBirthdate)、电话(spTelNo)
描述学生和课程之间的选课联系的属
性:分数(score)
属性的图形表示 SalesPerson
spID {PK}
属性的名称若用英文单词 spName
表示 spSex
单词的首字母小写,若包 spBirthdate
含多个单词或单词缩写, spTelNo[1..3]
每个后续的单词或单词缩 spSalary
写的首字母大写 spBonus
/totalSalary
实体的矩形框分成上下两 spAddress
部分 province
city
上部是实体的名字, street
下部是各个属性的名字, zipCode
spID
其依赖的实体的主键 OrderDetail
和其本身的某些属性 itemNo
共同组成 qty
discount
联系的属性:
显示于矩形框的下部,用虚线将矩形框与联系
相连
beginDate
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
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
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
弱实体的特点:
强实体与弱实体之间是1对多联系
弱实体的存在以强实体的存在为前提,即存在依赖
弱实体本身的属性不足以构成其主键
(21,1) 101
(21,2) 102
(21,3) 202
(24,4) 301
(23,1) 302
p1 101
p2 102
p3 201
p4
0..* Worker
supervisee
Worker Worker
(WorkerName) (WorkerName)
supervises
王静 王静
张军 张军
李海 李海
赵玲 赵玲
三元联系的图形表示
1..* 1..*
Supplier supply Part
1..*
Factory
• 某体育用品公司销售许多产品(product),
在全国不同地方设立多个销售点(branch),
每个销售点有多名销售人员(salesperson)
。每个客户(customer) 购买该公司的产品时
,负责该客户的销售员要提交订单(order),
以列出客户此次购买行为的相关信息,如客
户编号、购买日期以及购买的商品的细节信
息(orderdetail),如产品编号、数量、折扣等
。每个订单最多有一个销售人员负责。
基本ER数据模型
实体
联系
属性
结构约束
增强(扩充)ER数据模型
特殊化/概括
聚集
特殊化的原因
子类具有超类不具有的属性。例如,工人可以具有技术级
别(skill)属性,而销售员则具有联系电话(spTelNo)、传
真(spFaxNo)等属性,这些属性是由其工作性质所决定
的,在子类间不共享。
各子类参与不同于超类参与的联系。例如,工人与车间和
产品之间存在联系,而销售员与销售分支机构等实体参与
联系。
特殊化的重要特性是属性继承
一个超类实体的所有子类实体继承该超类的所有属性和联
系
子类还可以继续特殊化成更低一层次的子类,低层次的子
类继承其所有直接或间接超类的属性和联系。
{Optional, Or}
Worker SalesPerson
skill spTelNo
spFaxNo
约束:参与约束(participation constraint)
和不相交约束(disjoint constraint)
参与约束:描述超实体和子实体的关系
一 种 是 强 制 ( mandatory) 类 型 : 又 称 为 全 特 殊 化
(total specialization),是指超类的每个实体都存在
于某个或某些子类中
子类的并集等价于超类
一 种 是 任 选 ( optional) 类 型 : 又 称 为 部 分 特 殊 化
(partial specialization),指的是超类中的某些实体
不存在于任何一个子类中。
不相交约束:描述子类之间的关系的:
重叠特殊化(And):超类中的实体可以同时属于
多个同层次子类。
不相交特殊化(Or):超类中的每个实体最多只能
属于一个子类,即子类之间不相交
图形中约束的表示方法:
{参与约束,不相交约束}
例:在大学中学习和工作的人有学生和教职
员工。学生分研究生和本科生,按性别分男
生和女生。教职员工分教工和职工两类,教
工主要从事教学工作,而职工主要从事行政
工作,有些人可能既担负教学工作,也担负
一定的行政工作。请用特殊化的方法描述大
学中的人员
大学中人的特殊化
{Optional, And}
Employee Student
{Optional} {Optional}
FacStaff
概括(普遍化)
概括是特殊化的逆过程,是根据若干个已有实体的
共同特征,将它们合并抽象为一个超类实体的过程,
因而是一个自底向上的设计过程
如:工人生产产品,销售员销售产品,工人、销售
员同为公司的工作人员,有统一的编号,都有姓名、
年龄、性别、住址等属性,因此可以进行概括,概
括为公司员工。
Worker 1..1
skills {optional, Or}
Employee 1..1 Has 1..1 Policy1
empID pID{PK}
name period
SalesPerson amount
spTelNo …
policyDate
spFaxNo
特点
特殊化用于强调一个抽象级别较高的实体集(即超
类)的子实体集(即子类)具有特殊的特性,并且
参与不同的联系。
概括则是强调低层实体集之间所具有的共性,即具
有相同的属性和参与相同的联系。两种方法都是对
数据进行更精确描述的方法。
概括的图形表示与特殊化相同
若要统计每个教授每
20..100 S1, C2, 85
1 0..*
Teacher TCS Course
……
Hongyan Liu @ Tsinghua University 55
聚集的方法解决该问题
CL1, T1, C1, 2003, 三教3200
CL2, T2, C1, 2003, 艺术212
S1, CL1, 80
S1, CL2, 85
S2, CL2, 90
Teacher S3, CL3, 70
custNo
联系
3.5 (1)、(3)、(4)(第3周上课时交)
Branch SalesPerson
branchID 1..1 Has 1..* spID
Manages
0..1 1..1
提交截至日期:下次课(每组交1份)