第五章 数据管理
第五章 数据管理
?一、数据管理技术的发展
?二、数据组织的层次
?三、数据库设计
?一、数据管理技术的发展
?人工管理阶段
?文件系统阶段
?数据库系统阶段
应用程序 1
应用程序 2
应用程序 n
数据组 1
数据组 2
数据组 n
人工管理阶段( 20世纪 50年代中期以前)
应用程序 1
应用程序 2
应用程序 n
数据组 1
数据组 2
数据组 n
文件系统阶段( 50后期 -60后期)
文件
管理系统
问题:
数据冗余与数据不一致
数据结构的不一致
数据与应用程序缺乏独立性
应用程序 1
应用程序 2
应用程序 n
数据库
数据库系统阶段( 70初期 -)
数据库
管理系统
数据库是以一定的组织
方式存储在一起的相关
数据的的集合
?实现数据 共 享
?减少数据的冗余度
?数据的一致性和完整性好
?数据和程序之间的独立性好
?有较高的数据安全性,实现并发控制
?提供数据排序、统计、分析等多种数据操作
数据库系统的优点
?二、数据组织的层次
?数据项
?记录
?文件(表)
?数据库
?三、数据库设计
客观事物的
关系与属性
实体
联系
属性
数据库
文件
记录
数据项
现实世界 信息世界 数据世界
简化 转换
数据库设计两阶段
?1、概念结构设计(信息模型)
?( 1)实体 -联系方法( Entity-Relationship
Approach)
?E-R方法
?E-R模型
?E_R图
?P.S.Chen于 1979年提出
E-R图的基本成分
同类实体集合
实体集与实体集的
联系
属性
学生学号
姓名 出生年月 性别
( 2) E-R图的基本成分

领导
系主任
1
1
<1,1联系 >

所属
学生
1
n
<1,n联系 >
学生
修课
课程
m
n
<m,n联系 >
( 3)联系的类型
?一对一联系( 1,1)
?如果实体型 A中的任意一个实体,至多对应实
体型 B的一个实体;反之,实体型 B中的任意
一个实体,至多对应实体型 A中的一个实体,
则称实体型 A与实体型 B有一对一的联系。
乘客
车票
1
1
P-T
病人
病床
P-B
1
1
?一对多联系( 1,n)
?如果实体型 A中至少有一个实体对应于实体型
B中的一个以上实体;反之,实体型 B中的任
意一个实体,至多对应实体型 A中的一个实体,
则称实体型 A与实体型 B有一对多的联系。
?教材 P162,P163
?多对多联系( m,n)
?如果实体型 A中至少有一个实体对应于实体型 B
的一个以上实体;反之,实体型 B中也至少有一
个实体对应实体型 A中一个以上的实体,则称实
体型 A与实体型 B有多对多的联系。
?教材 P162,P163
产品
组成
零件
存储
仓库
工艺 工序
外协 外协单位制造
部门
隶属
职工
加工设备
消耗
材料
供应
供应单位
m
n
nm
m
n
m n
m n
m
n
m
n
m
n
1
n
×× 生产管理信息系统 E-R图(概念模型设计)
?2、逻辑结构设计(数据模型)
?( 1)数据模型
?层次模型
?网状模型
?关系模型
?( 2) E-R图向关系模型的转换
?教材 P164
实体模型 关系模型的转换规则 (1)
R1
R3
R2
R1( R1#,…, R2#) Key=R1#
R2( R2#,… ) Key=R2#
1
1
实体模型 关系模型的转换规则 (2)
R1
R3
R2
R1( R1#,… ) Key=R1#
R2( R2#,…, R1#) Key=R2#
1
n
实体模型 关系模型的转换规则 (3)
R1
R3
R2
R1( R1#,… ) Key=R1#
R2( R2#,… ) Key=R2#
R3( R1#,R2#,… ) Key=( R1#,R2#)
m
n
消除 m:n的联系,只需在两表之间增加一张表,就改成了
一对多的关系。
学生 课程m:n
学生选课
1:m 1:n
学号 课程号 成绩
982001 Kc01 85
982001 Kc02 80
982002 Kc01 88

课程号 课程名 学分
Kc01 管理学 2
Kc02 财务管理 3
Kc03 管理信息系统 2
。。。
学号 姓名 专业
982001 陈军 企业管理
982002 李志东 企业管理
982003 王强 电子商务
。。。
E-R图 关系模型(逻辑模型设计)
? 零件 Part(pno零件号,零件图号,零件名称,价格,净重,…)
Key:pno
? 材料 material(材料号 mno,材料名,规格,单价)
Key:mno
? 零件材料消耗 part-material(零件号 pno,材料号 mno,定额数量)
Key:(pno,mno)
? 部门 dept(部门号 dpno,部门名,地点,电话,负责人)
Key:dpno
? 零件制造 manufacture(零件号 pno,部门号 dpno,加工数量)
Key:(pno,dpno)
实体 —— 联系法( E-R方法)
用 ER方法设计数据库的基本步骤:
? 确定实体类型
? 确定联系类型
? 画 ER图
? 确定属性
? 将 E-R图转换为某个 DBMS可接受的数据模型
?3、数据模型的优化
?关系规范化理论
?致力于解决关系模式中不合适的数据依赖问题。
? 函数依赖
? 多值依赖
?关系模式
?对关系的描述,一个关系的属性名表
?学习(学号,课程号,成绩)
?函数依赖
?设 R( U)是一个关系模式,U是 R的属性集合,X和 Y
是 U的子集。对于 R( U)上的任意一个可能的关系 r,
如果 r中不存在两个元组,它们在 X的属性上的属性值
相同,而在 Y的属性值 不相同,则称,X函数确定 Y”或
,Y函数依赖于 X”,记作 X->Y。
? 课程号 ->课程名
? 课程号 ->学分
? 课程号 ->教室号
? (学号,课程号) ->成绩
?函数依赖
?设 R是一个关系,X和 Y是 R中两个属性。若 R中 X的任
何一个值,仅有一个 Y的值与之对应,则称为 R的属性
Y函数依赖于属性 X,记为 X Y。
?完全函数依赖
?如果属性 Y函数依赖于复合属性 X,而且不与 X的任何
真子集函数依赖,则称属性 Y完全函数依赖 于复合属
性 X。
?部分函数依赖
?若 X Y,但不是完全函数依赖,
?
?码
?设 K为关系模式 R<U,F>中的属性或属性组合。若 K->U,
则 K称为 R的一个 侯选码( candidate key)。 若关系
模式 R中有多个侯选码,则选定其中的一个做为 主码
( primary key)。
?外码 (Foreign Key):是另一关系主码
?主属性,侯选码中的属性
?非主属性,不包含在任何码中的属性
?范式 ( Normal Form )
?关系规范化的程度,按属性之间的依赖情况来确定
?是符合某一级别的关系模式的集合
? 1NF?2NF ? 3NF ? BCNF ? 4NF ? 5NF
?1NF
? 如果一个关系模式 R的所有属性都是不可分的基本数据项,则
R?1NF
? SLC(学号,系别,宿舍,课程号,成绩 )
? 插入异常 学号 ->系别,学号 ->宿舍,系别 ->宿舍
? 删除异常 (学号,课号) ->成绩
? 数据冗余度大
? 修改复杂
?2NF
? 若关系模式 R ? 1NF,并且每一个非主属性都完全函数依赖于 R的码,
则 R ? 2NF。
? 把 SLC分解为两个关系模式:
SL(学号,系别,宿舍)
SC(学号,课程号,成绩)
? 关系模式 SL(学号,系别,宿舍)存在:
插入异常
删除异常
数据冗余度大
修改复杂
?3NF
? 若关系 R是 2NF,且关系 R中的非主属性是相互独
立的,即任何非主属性之间不存在函数依赖,则
称 R是第三范式 。 则 R?3NF。
? 把 SL分解为两个关系模式:
? SD(学号,系别)
? DL(系别,宿舍)
?关系数据模型优化步骤:
?确定数据依赖。
?对各关系模式之间的数据依赖进行极下化处理,消除
冗余的联系。
?按照数据依赖的理论对关系模式逐一进行分析,考查
是否存在部分函数依赖、传递函数依赖、多值依赖等,
确定个关系模式分别属于第几范式。
?按照需求分析阶段得到的各种应用对数据处理的要求,
分析对于这样的应用环境这些模式是否合适,确定是
否要对它们进行合并或分解。
?对关系模式进行必要的分解和合并。
问题
1.现有一个 1NF的关系模式:
R(零件号 pno,零件名 pname,零件价格 ppr,加工
部门 pdept,加工部门地址 paddr,材料编号 mno,加
工零件所用材料名 mname,材料规格 ms,加工零件
所用材料重量 weight)
假定:每种零件只由一个部门加工,每个部门可加工
多种零件,每种零件可用多种材料加工,且所用材料
的重量不相同,每种材料可用于加工多种零件。
? 确定 R的码
? 将 R规范成 2NF,3NF,并给出详细的规范化理由
和过程。
问题
2.某企业设计一个关于产品、零件、材料、部门、厂商、仓
库等实体的数据库。已知,该企业生产若干种产品,每种产
品由不同的零件组成,有的零件可用于不同的产品上。每种
零件可由不同的材料制成,当然,每种材料可用来制作不同
的零件,这些材料可由若干厂商供给,而每个厂商可供应若
干材料。零件分成自制零件和外购零件,每种(自制)零件
只由一个部门(车间)加工制造,一个部门可加工若干种零
件。每种(外购)零件可由不同的厂商供应,每个厂商只供
应一种零件。而且,每种零件只放在一个仓库中,而每个仓
库可放若干种零件。
? 请画出该企业数据库的 E-R图
? 将你所得的 E-R图转化成关系模型(要求给出各关系模式
的属性及码)