?信息结构与 E-R方法
?概念数据模型
?传统的三大数据模型
?数据独立性与三层结构
?数据库管理系统的结构
2-1 信息结构与 E-R方法
数据的三种范畴
客观存在并可以相互区分
的客观事物或抽象事件称为实
体。
客观存在的抽象事件订货、演
出、足球赛 …… 等也是实体
可以触及的客观对象仓库、
器件、职工 …… 等是实体
身高
年龄
性别
体重
……
比赛时间、地点、
参赛队 ……
具有相同特征的一类实体的
集合称之为实体集。
用于区分实体的实体特征称为
标识特征。
现实世界范畴 信息世界范畴 机器世界范畴
所有客观对象 条理化的信息 数据库
实体集 实体记录集 文 件
实 体 实体记录 记 录
特 征 属 性 字段或数据项
标识特征 标识属性 关键字
2-1 信息结构与 E-R方法
实体联系方法
实体的表示方式
?在 E-R图中用矩形框表
示实体, 把实体名写
在框内, 比如 仓库 实
体可以表示为:
仓库
联系的表示方式
实体之间的
联系用菱形框表
示,框内写上联
系名,并用连线
与有关的实体相
连。
联系名
实体 1
实体 2
联系的类型
一对一联系 (1:1)
一对多联系 (1:n)
多对多联系 (m:n)
一对一的联系
如果实体集 A与实体集 B之间存在联系,
并且对于实体集 A中的任意一个实体, 实体
集 B中至多只有一个实体与之对应;而对实
体集 B中的任意一个实体, 在实体集 A中也至
多只有一个实体与之对应, 则称实体集 A到
实体集 B的联系是一对一的, 记为 1, 1 。
有车间和车间主任两个
实体,并且有语义:一个车间
只能有一名车间主任,一个职
工也只能在一个车间当主任。
那么车间和车间主任之间的联
系是一对一的,我们把这种联
系命名为任职。
一对一联系的例子
任职
车间
车间主任
1
1
一对多的联系
如果实体集 A与实体集 B之间存在联系,
并且对于实体集 A中的一个实体, 实体集 B中
可以有多个实体与之对应;而对实体集 B中
的任意一个实体, 在实体集 A中至多只有一
个实体与之对应, 则称实体集 A到实体集 B的
联系是一对多的, 记为 1, n 。
有仓库和职工两个实体,
并且有语义:一个仓库可以有
多名职工,但是一个职工只能
在一个仓库工作。那么仓库和
职工之间的联系是一对多的,
我们把这种联系命名为工作。
一对多联系的例子
工作
仓库
职工
1
n
多对多的联系
如果实体集 A与实体集 B之间存在联系,
并且对于实体集 A中的一个实体, 实体集 B中
可以有多个实体与之对应;而对实体集 B中
的一个实体, 在实体集 A中也可以有多个实
体与之对应, 则称实体集 A到实体集 B的联系
是多对多的, 记为 m, n 。
多对多联系的例子
有仓库和器件两个实
体,并且有语义:一个仓
库可以存放多种器件,一
种器件可以存放在多个仓
库。那么仓库和器件之间
的联系就是多对多的,我
们把这种联系命名为库存。
仓库
器件
库存
m
n
多个实体之间的联系
有仓库、器件、供应商三个实体,
并且有语义:每个仓库可以向多个供
应商发出订购,可购买多种器件;每
个供应商可向多个仓库供货,可供应
多种器件;每种器件可由多个供应商
供应,可由多个仓库购买。
仓库
器件 供应商
订购
m
np
多个实体之间的另外一种联系
仓库
器件 供应商
库存 业务
供应









仓库
器件 供应商
库存 业务
供应
仓库
器件 供应商
订购
属性的表示方式
实体的属性用椭圆
框表示,框内写上属性
名,并用连线连到相应
实体。也可以直接将属
性名写在实体旁边。
仓库
仓库号 城市 面积
仓库
仓库号
城 市
面 积
联系本身
也有属性,联
系是通过相关
联的实体的有
关属性体现出
来的。
联系的属性
仓库
职工
工作
仓库号
城 市
面 积
职工号
工 资
仓库号
职工号
1
n
?概念数据模型中的基本联系
?理解和转换多对多联系
?连接陷阱
?概念数据模型 —— 实例研究
?扩展 Bachman图
实体之间的联系类型并不取决
于实体本身,而是取决于现实世界
的管理方法,或者说取决于语义,
即同样两个实体,如果有不同的语
义则可以得到不同的联系类型。
以仓库和器件两个实体之间的关联为例:
?如果规定一个仓库只能存放一种器件,并且一种器件
只能存放在一个仓库,这时仓库和器件之间的联系是
一对一的;
?如果规定一个仓库可以存放多种器件,但是一种器件
只能存放在一个仓库,这时仓库和器件之间的联系是
一对多的;
?如果规定一个仓库可以存放多种器件,同时一种器件
可以存放在多个仓库,这时仓库和器件之间的联系是
多对多的。
为什么要讨论实体之间的联系?
仓库号 城 市 面 积
W H 1 北京 500
W H 2 上海 450
W H 3 广州 200
W H 4 重庆 300
器件号 器件名称
P1 显示卡
P2 声卡
P3 解压卡
P4 散热风扇
如果仓库和器件之间的联系是一对一的:
如果仓库和器件之间的联系是一对多的:
如果仓库和器件之间的联系是多对多的:
同样两个实体,如果赋予不同的语义则
有不同的设计结果。也就是说我们在概念模
型中讨论实体之间的联系类型直接影响着目
标数据库的设计结果和设计质量。
返回
多对多联系是一类比较复杂的联
系,一般数据库管理系统并不直接支
持这类联系,或者由于技术上的原因
我们也不直接使用这类联系,我们总
是把多对多联系转换为一对多联系。
面积
500
450
200
300
城市
北京
上海
广州
重庆
仓库号
WH1
WH2
WH3
WH4
120
200180 100 140
150
180 200
100

— —
——





















P4P3P2P1
多对多联系
一个多对多的联系实际蕴涵
了两个一对多的联系,仓库和器
件之间的联系是多对多的,但是
它们和“联系”库存之间的联系
都是一对多的。
多对多联系蕴涵一对多联系
仓库号
城 市
面 积
仓 库 器 件
库 存
W-
I
P-I
器件号
器件名称
仓库号
器件号
数 量
11
m n
仓库号
城 市
面 积
仓库号
器件号
数 量
器 件
仓 库
库 存
m
n
器件号
器件名称
返回
所谓连接陷阱就是误认为不存在联
系的两个实体间存在联系,从而通过这
种“联系”获取错误的信息。
器件号 订单号 数量供应商号
器件号 器件名称 供应商号 地点供应商名
供应商器件
订货
1,n 1,m
查询 P4器件都是有哪些供应商供应的。
器件号 器件名称
仓库号 器件号 数 量 器件号 数量订单号供应商号
订货
器件
库存
1:m 1:n
查询 WH1仓库 P4器件的订货数量是多少?
返回
与库存业务有关的实体
库存业务?
库存业务的管理模式语义:
?在一个仓库可以存放多种器件,一种器
件也可以存放在多个仓库中;
?一个仓库有多个职工,而一个职工只能
在一个仓库工作;
?一个职工可以保管一个仓库中的多种器
件,由于一种器件可以存放在多个仓库
中,当然可以由多名职工保管。
以上语义说明了:
?在仓库和器件之间存在一个多对多的联
系 ——库存;
?在仓库和职工之间存在一个一对多的联
系 ——工作;
?在职工和器件之间存在一个多对多的联
系 ——保管。
为此有库存业务的局部 E-R图
与订购业务有关的实体
订购业务?
订购业务管理模式语义:
?一名职工可以经手多张订购单,但一张
订购单只能由一名职工经手;
?一个供应商可以接受多张订购单,但一
张订购单只能发给一个供应商;
?一个供应商可以供应多种器件,每种器
件也可以由多个供应商供应;
?一张订购单可以订购多种器件,对每种
器件的订购也可以出现在多张订购单上。
以上语义说明了:
?在职工和订购单之间存在一个一对多的
联系 ——发出订购单;
?在供应商和订购单之间存在一个一对多
的联系 ——接收订购单;
?在供应商和器件之间存在一个多对多的
联系 ——供应;
?在订购单和器件之间存在一个多对多的
联系 ——订购。
为此有订购业务的局部 E-R图
库存 — 订购业务整体 E-R图
其中有 5个实体和 7个联系,如下表:
实体或联系 特征 (属性)
仓 库 仓库号、城市、面积
职 工 职工号、工资
工 作 仓库号、职工号
库 存 仓库号、器件号、数量
器 件 器件号、器件名称
保 管 职工号、器件号
供 应 供应商号、器件号
供 应 商 供应商号、供应商名、地点
订 购 订购单号、行号、器件号、数量
订 购 单 订购单号、订购日期
接受订单 供应商号、订购单号
发出订单 职工号、订购单号
完成, WH1仓库 P1器件的订货数量是
多少, 的查询步骤:
?确定在 WH1仓库工作的职工的职工号 ( 职工文件 ),
设为 Eno;
?根据 Eno查询该职工所经手的订购单号 ( 订购单文件 ),
设为 Ono;
?根据 Ono查询所订购的器件号及数量 ( 订购项目文
件 ) ;
?查询完一张订购单后再接着查询同一职工经手的另一
张订购单;
?一名职工经手的订购单查询完后, 再查询同一仓库另
一职工所经手的订购单 。
完成相应查询的语句
SELECT SUM(数量 ) FROM 订购
WHERE 器件号 =”P1” AND 订购单号 IN
(SELECT 订购单号 FROM 订购单
WHERE 职工号 IN
(SELECT 职工号 FROM 职工
WHERE 仓库号 =”WH1”))
扩展 Bachman图是与 E-R图类似的信息结构和
概念模型描述工具,它的要点是:
? 用矩形框表示实体或文件, 实体名写在矩形框
的右下方;
? 字段名写在矩形框内, 关键字标以下划线, 辅
助关键字标以虚下划线;
? 用箭头线表示联系并连接相关实体, 箭头线始
于父文件的连接字段 ( 关键字 ), 终于子文件的
连接字段 ( 外部关键字 ), 联系类型标在箭头线
旁 。
库存和订货业务的完整扩展 Bachman图
姓名
职称
姓名
职称
姓名
职称
姓名
职称
姓名
职称
姓名
职称
姓名
职称
姓名
职称
123 456 789 a bc de f
323 sd sd 23 35
232 22 222 222 222
333 333 3 s dd as
333 333 333 333 333
666 555 444 444 333
123 456 789 a bc de f
323 sd sd 23 35
232 22 222 222 222
333 333 3 s dd as
333 333 333 333 333
666 555 444 444 333
层次数据模型
用树形结构来表示实体之间联系的模
型称为层次模型。
层次模型的典型代表是 IMS—— Information
Management System
层次模型有以下两点限制,
?有且仅有一个结点无父结点,这个结点即为树的根;
?其他结点有且仅有一个父结点。
层次结构实例
层次模型中用的术语
层次型
片段 ( Segment) 字段
层次值实例
片段值 字段值
层次型不能表示多对多的联系
把有
两个父结
点的非层
次结构转
换成两个
层次型
网络数据模型
用网络结构来表示实体之间联系的数据模
型称为网络数据模型。
网络模型的典型代表是 CODASYL ——
Conference On DAta SYstem Language
CODASYL用 系 描述联系
?系:命名了的联系。
?SET:相互关联的数据
的集合。
?系由一个父记录型和
一个或多个子记录型
构成。
?系是一个二级树。
网络结构
理解系的概念
关系数据模型
用关系(表格数据)表示实体和实体之
间联系的模型称为关系数据模型。
关系实例
关系数据库管理系统
?Sybase
?Oracle
?DB2
?MS SQL Server
?FoxPro
?Access
?…
数据独立性是指应用程序与
存储数据相互独立的特性。
具体说,就是当修改数据的组
织方法和存储结构时,应用程序不
用修改的特性。
存储数据独立性
修改存储文件的组织方法和结构时应
用程序不用修改的特性。
实现存储数据独立性
概念数据独立性
修改概念文件的结构时应用程序不用
修改的特性。
实现概念数据独立性
数据库的三层模式结构
存储、概念和外部模式
?定义存储模型的模式叫做存储模式;
?定义概念模型的模式叫概念模式,或简
称模式;
?定义外部模型的模式叫外部模式,又称
做子模式。
各级模式之间的关系
存储数据库示例
ST O R A G E S C H E M A FO R S T O R A G E-A C C O U N TI N G D A T A B A S E.
ST O R A G E FI L E S EC T IO N,
ST O R A G E FI L E A C C -R E C EIV A B L E,H A SH FI L E
U SI N G H A SH I N G R O U TI N E H A SH X
D A T A FIE L D S.
A C C - N U M B PIC X (4),PR IM A R Y K E Y FIE L D
C R E D - LIM PIC 5(9)
BAL A N C E PI C 5( 9)v9 9
POI N T ER FI EL D S,
N R -PO I N T E R PI C X (4),F O R SI N G L E LI N K E D LIS T
U SI N G N EX T A C C - N U M B
V A LUE I N A S C ENDI N G O R D E R
ST O R A G E FI L E O R D E R,I N D EXE D -S EQ U EN T I A L FI LE
D A T A FIE L D S.
A C C - N U M B PIC X (4),S E C O N D A R Y K E Y,
POI N T ER T O P A R E N T
A C C - R E C EIV A BL E R EC O R D,
O R D E R - N U M B PI C X (3),PR I M A R Y K E Y FI E L D,
P A R T- T Y P E- N U MB PIC (2),
Q U A N TI TY PI C 3( 9)
POI N T ER FI EL D S,
N C -PO I N T E R PI C X (3),POI N T E R T O N EX T C H IL D,
FOR SE C O N D A R Y K E Y A C C -N U M B U SI N G
O R D E R - N U M B V A L U E A N D M U L TIP L E
LIN K E D LIST I N D EX C H IL D -I N D EX.
IN D EX SE C TIO N,
IN D EX C H IL D -I N D EX,M U L TIP L E LI N K E D LI ST IND EX FOR
SE C O N D A R Y K EY A C C -N U MB I N O R D ER FI LE,
FIE L D S.
A C C - N U M B FR O M O R D E R FI L E,P R I MA R Y K E Y,
O R D E R - N U M B F R O M O R D ER FI LE,POI N TE R T O FIR ST CH I L D,
概念数据库
CO NC E PT U AL S CH E M A FO R CO NC E PT U A L- A CC O UN TI NG D A T A BA S S E.
CO NC E PT U AL FI LE S E C TI O N.
CO NC E PT U AL FI LE AC C- R E C EI V A B LE,
A CC- N UM B,A LP H A N UM ER I C 4,P RI M A R Y K E Y,
C RE D- LI M,N UM E RI C 5,
BA L A N CE,N UM E RI C 7,
CO NC E PT U AL FI LE O RD ER,
A CC- N UM,A L PH A N UM E R I C 4,S E CO N DA R Y K E Y,
O R DE R- N UM B,AL PH AN U M E RI C 3,P RI M A R Y K E Y,
P A R T- T YP E- NU M B,A L PH A N UM E RI C 2,
Q U AN TI TY,NU M E RI C 3,
RE L A TI O NS H I P S EC TI O N.
A CC- R E CE I V A BL E I S P A R E NT O F O RD E R,
A CC- N UM B I N O RD ER DE T E RM I NE S
A CC- R E CE I V A BL E P AR E N T RE CO R D.
外部数据库
是概念数据库的部分提取
EX T E RN A L S CH EM A FO R EX T 1- A C CO UN TIN G D A T A BA SE.
EX T E RN A L FI L E S EC TIO N.
EX T E RN A L FI L E EX T1- R E C EIV AB L E AB ST R A CT E D F RO M
A C C-R E CE I V A BL E.
A CC - N UM B PIC X ( 4),P RIM A R Y K E Y,
BA L A N CE PI C 5( 9) V 99.
EX T E RN A L FI L E EX T 1- O RD E R AB ST R A C TE D FR O M O RD E R.
A CC - N UM B PIC X ( 4),S EC O N D A R Y K E Y,
O R DE R- N UM B PI C X ( 3),PR I M AR Y K E Y,
P A R T- T YP E- NU M B PIC X ( 2),
RE L A TIO NSH I P S EC TIO N.
EX T1- R EC EIV A BL E I S P A R EN T O F EX T1- O R D E R,
A CC - N UM B I N EX T1- O R DE R D ET E RMI N ES
A CC - R E CE I V A BL E P AR E N T RE CO R D.
记住:
?只有存储数据库是物理上真正存在的;
?概念数据库是存储数据库的抽象;
?外部数据库是概念数据库的部分抽取。
记住:
?概念模式带来了存储数据独立性;
?外部模式带来了概念数据独立性。
数据库管理系统的总体结构
DBMS读取一条记录时发生的事件,
?用户程序 A向 DBMS发出读一条记录的指令,这时用户
程序要给出外部文件名和记录的关键字值;
?DBCS分析所接到的指令,访问对应的外部模式;
?DBCS完成外部模式到概念模式的转换,决定访问哪个
(些)概念文件;
?接着由 DBSS完成概念模式到存储模式的转换,并决定
访问哪个(些)存储文件;
?DBSS调用存取方法,通过操作系统将读取的记录送到
系统缓冲区;
?用户程序从系统缓冲区得到所需记录和 DBMS返回的状
态信息;
?用户程序在工作区中使用所得到的记录。
?信息结构和概念数据模型
?三大数据模型
?数据库的三层结构和数据独立性
?数据库管理系统的结构