数 据 库 设 计
? 需求分析
? 概念模式设计
? 逻辑结构设计
? 数据库物理设计
? 数据库开发
需求分析 - 数据流图
? 描述信息在系统中流动和处理的情况。
? 用四种基本符号表示:
(1) 数据源或数据终点 (外部项 )
(2) 数据存储 (DB)
名称
编号
名称
需求分析 - 数据流图
? 数据处理
? 数据流
编号
处理名
数据流名
数 据 流 图 例
仓库订货管理
零件入库和出库信息通过仓库终端报告给订货系统。
当某种零件的库存数量少于库存量临界值时,就要提
出订货。
工厂采购部每天出一张零件订货报表,其中包括零件
编号、零件名称、订货数量、价格、供应者等。报表按零
件编号排序。
数 据 流 图 例
从问题描述中提取数据流图的四种成分:
( 1)源点,仓库保管员
终点, 采购员
( 2)处理,库存管理
报表生成
( 3) 数据流,进、出货信息, 仓库管理员 - 库存管理
订货报表, 报表生成 - 采购员
( 4) 存储,库存清单(存货量,临界值)
订货信息
数 据 流 图 例
仓库
管理员
0
订货系统 采购员进出货信息 订货报表
数 据 流 图 例
D1
库存清单
仓库
管理员 采购员
1
库存管理
2
产生报表
D2
订货信息
0
订货系统
数 据 流 图 例
D1
库存清单 采购员
1.3
订货
处理
2
产生报表
D2
订货信息
仓库
管理员
1.1
前处理
1.2
库存信息
维护
概念结构设计 - ER图
逻辑结构设计 - 关系模式
物理结构设计 - 存储安排
数据库设计理论
构造一个好的数据库逻辑结构
STUDENT ( SNO,SNAME,AGE,SEX,CLASS,DEPTNO,
DEPTNAME,CNO,CNAME,GRADE,CREDIT)
?数据冗余 (学生选几门课 )
?修改烦琐,不一致 (改年龄 )
?插入异常 (学生未选课,sno,cno 是码,
cno 不能空 )
?删除异常 (学生不选课,整个记录删除 ).
数据库设计理论
? 数据库逻辑设计
– 函数依赖理论
– 规范化理论
函数依赖
? 在现实世界中除了实体集之间存在对应
关系(即联系)外,在属性之间(即数
据项之间)也存在着一定的依赖关系。
函数依赖定义
设 R(A1,A2,…,An)为一关系模式,
X,Y为属性全集 U= {A1,A2,…,An}的子集。
如果 对于该关系模式的任何一个可能的关
系,不存在两个元组,在 X上的属性值相等,而在
Y上的属性值不等,则称 X函数决定 Y,或者称 Y
函数依赖于 X。
用符号 X ? Y表示,其中 X称为决定因素。
Sno ? age age ? sno
属性 X 与 Y N:1关系
完全与部分函数依赖
? 在关系模式 R(U)中, 如果 X ?Y成立, 并
且对 X的任何真子集 X?,X?不能函数决定 Y
( X? ?Y), 则称 Y对 X是完全函数依赖,
用符号 x?y表示 。
? 若 X?Y,但 Y不完全函数依赖于 X,则称 Y
对 X是部分函数依赖, 用符号 ?表示 。p
f
传递函数依赖
? 若 X ?Y,Y?X Y?Z 则 X?Z
码
? 在关系模式 R(U)中,K为 R的属性或属
性组。若 K ? A1 … An,则 K为 R
的候选码 。
f
函数依赖的推理规则
? 自反律
Y ∈ X ∈ U 则 X ? Y
? 增广律
X ? Y,Z ∈ U 则 ( X,Z) ? (Y,Z)
? 传递律
X ? Y, Y ? Z 则 X ? Z
? 合并规则
X ? Y, X ? Z 则 X ? YZ
? 分解规则
X ? Y,Z ∈ Y 则 X ? Z
Armstrong 公理
推理
? 如果 A1 … An 是关系模式 R的属性集,那
么 X ? A1 … An 成立的充分且必要条件
是 X ? Ai (i=1,2,…,n) 成立。
? 如果 X ? Z 成立,则 XY ? Z 也 成立。
确定关系的码
? 已知关系 R(U,F)
? U= (A,B,C,D,E)
? F=( AB?C B?D C?E EC?B AC?B )
AB ABCD
ABCDE
最小集
问题源于与码有关的函数依赖
? 非主属性对码的函数依赖
– 非主属性对码的完全函数依赖 √
– 非主属性对码的部分函数依赖
– 非主属性对码的传递函数依赖
? 主属性对码的函数依赖
– 主属性对码的完全函数依赖 ?
– 主属性对码的部分函数依赖
– 主属性对码的传递函数依赖
sno
cno
grade
class
dep
cname
规范化设计方法- 1NF
? 如果一关系模式, 它的每一个分量是不可分的数
据项, 即其域为简单域, 则此关系模式为第一范
式 。
例如:
STUDENT ( SNO,SNAME,AGE,SEX,CLASS,
DEPTNO,DEPTNAME,CNO,CNAME,SCORE,
CREDIT)
规范化设计方法- 2NF
? 若关系模式 R?1NF,且每个非主属性完全
函数依赖于码, 则称 R为第二范式 。
? STUDENT( SNO,SNAME,AGE,SEX,
CLASS,DEPTNO,DEPTNAME)
? COURSE( CNO,CNAME,CREDIT)
? SC( SNO,CNO,GRADE)
规范化设计方法- 3NF
? 若关系模式 R?1NF,且不存在非主属性对码的
传递依赖,则称 R为第三范式 。
? STUDENT( SNO,SNAME,AGE,SEX,CLASS)
? CLS(CLASS,DEPTNO)
? DEP(DEPTNO,DEPTNAME)
? COURSE( CNO,CNAME,CREDIT)
? SC( SNO,CNO,GRADE)
如果 R是 3NF的关系模式,则 R也是 2NF关系模式
(部分函数依赖蕴涵着传递函数依赖)
设 K是 R的一个候选码,A是 R的一个非主属性,且
K ? A是一个部分函数依赖。那么,R中必然存在某
个 Kz ? K,有 Kz ? A。
由于 Kz ? K,所以 K ? Kz, 但 Kz ? K,且 Kz ?
A,所以 K ? A也是一个传递依赖。
关系模式设计
面向主题的关系设计
顾客(顾客编号,顾客名,单位,邮编)? NF
数据库应用开发
建立数据库对象
装入数据
程序编码
调试
数据库试运行
数据库小结
? 计算机信息处理系统发展阶段
? 计算机数据管理技术的演变
? 数据库系统结构 —三级模式
? 数据库系统组成
? 数据模型的概念
? E-R模型
? 关系模型
? E-R模型转换为关系模式
数据库小结
? SQL语言基础
? 视图、索引
? PL/SQL ( 光标)
? 触发器,存储过程
? 事务与并发控制
? 分布式数据库
? 完整性约束
? 数据库理论(关系、函数依赖、规范化)
? 需求分析
? 概念模式设计
? 逻辑结构设计
? 数据库物理设计
? 数据库开发
需求分析 - 数据流图
? 描述信息在系统中流动和处理的情况。
? 用四种基本符号表示:
(1) 数据源或数据终点 (外部项 )
(2) 数据存储 (DB)
名称
编号
名称
需求分析 - 数据流图
? 数据处理
? 数据流
编号
处理名
数据流名
数 据 流 图 例
仓库订货管理
零件入库和出库信息通过仓库终端报告给订货系统。
当某种零件的库存数量少于库存量临界值时,就要提
出订货。
工厂采购部每天出一张零件订货报表,其中包括零件
编号、零件名称、订货数量、价格、供应者等。报表按零
件编号排序。
数 据 流 图 例
从问题描述中提取数据流图的四种成分:
( 1)源点,仓库保管员
终点, 采购员
( 2)处理,库存管理
报表生成
( 3) 数据流,进、出货信息, 仓库管理员 - 库存管理
订货报表, 报表生成 - 采购员
( 4) 存储,库存清单(存货量,临界值)
订货信息
数 据 流 图 例
仓库
管理员
0
订货系统 采购员进出货信息 订货报表
数 据 流 图 例
D1
库存清单
仓库
管理员 采购员
1
库存管理
2
产生报表
D2
订货信息
0
订货系统
数 据 流 图 例
D1
库存清单 采购员
1.3
订货
处理
2
产生报表
D2
订货信息
仓库
管理员
1.1
前处理
1.2
库存信息
维护
概念结构设计 - ER图
逻辑结构设计 - 关系模式
物理结构设计 - 存储安排
数据库设计理论
构造一个好的数据库逻辑结构
STUDENT ( SNO,SNAME,AGE,SEX,CLASS,DEPTNO,
DEPTNAME,CNO,CNAME,GRADE,CREDIT)
?数据冗余 (学生选几门课 )
?修改烦琐,不一致 (改年龄 )
?插入异常 (学生未选课,sno,cno 是码,
cno 不能空 )
?删除异常 (学生不选课,整个记录删除 ).
数据库设计理论
? 数据库逻辑设计
– 函数依赖理论
– 规范化理论
函数依赖
? 在现实世界中除了实体集之间存在对应
关系(即联系)外,在属性之间(即数
据项之间)也存在着一定的依赖关系。
函数依赖定义
设 R(A1,A2,…,An)为一关系模式,
X,Y为属性全集 U= {A1,A2,…,An}的子集。
如果 对于该关系模式的任何一个可能的关
系,不存在两个元组,在 X上的属性值相等,而在
Y上的属性值不等,则称 X函数决定 Y,或者称 Y
函数依赖于 X。
用符号 X ? Y表示,其中 X称为决定因素。
Sno ? age age ? sno
属性 X 与 Y N:1关系
完全与部分函数依赖
? 在关系模式 R(U)中, 如果 X ?Y成立, 并
且对 X的任何真子集 X?,X?不能函数决定 Y
( X? ?Y), 则称 Y对 X是完全函数依赖,
用符号 x?y表示 。
? 若 X?Y,但 Y不完全函数依赖于 X,则称 Y
对 X是部分函数依赖, 用符号 ?表示 。p
f
传递函数依赖
? 若 X ?Y,Y?X Y?Z 则 X?Z
码
? 在关系模式 R(U)中,K为 R的属性或属
性组。若 K ? A1 … An,则 K为 R
的候选码 。
f
函数依赖的推理规则
? 自反律
Y ∈ X ∈ U 则 X ? Y
? 增广律
X ? Y,Z ∈ U 则 ( X,Z) ? (Y,Z)
? 传递律
X ? Y, Y ? Z 则 X ? Z
? 合并规则
X ? Y, X ? Z 则 X ? YZ
? 分解规则
X ? Y,Z ∈ Y 则 X ? Z
Armstrong 公理
推理
? 如果 A1 … An 是关系模式 R的属性集,那
么 X ? A1 … An 成立的充分且必要条件
是 X ? Ai (i=1,2,…,n) 成立。
? 如果 X ? Z 成立,则 XY ? Z 也 成立。
确定关系的码
? 已知关系 R(U,F)
? U= (A,B,C,D,E)
? F=( AB?C B?D C?E EC?B AC?B )
AB ABCD
ABCDE
最小集
问题源于与码有关的函数依赖
? 非主属性对码的函数依赖
– 非主属性对码的完全函数依赖 √
– 非主属性对码的部分函数依赖
– 非主属性对码的传递函数依赖
? 主属性对码的函数依赖
– 主属性对码的完全函数依赖 ?
– 主属性对码的部分函数依赖
– 主属性对码的传递函数依赖
sno
cno
grade
class
dep
cname
规范化设计方法- 1NF
? 如果一关系模式, 它的每一个分量是不可分的数
据项, 即其域为简单域, 则此关系模式为第一范
式 。
例如:
STUDENT ( SNO,SNAME,AGE,SEX,CLASS,
DEPTNO,DEPTNAME,CNO,CNAME,SCORE,
CREDIT)
规范化设计方法- 2NF
? 若关系模式 R?1NF,且每个非主属性完全
函数依赖于码, 则称 R为第二范式 。
? STUDENT( SNO,SNAME,AGE,SEX,
CLASS,DEPTNO,DEPTNAME)
? COURSE( CNO,CNAME,CREDIT)
? SC( SNO,CNO,GRADE)
规范化设计方法- 3NF
? 若关系模式 R?1NF,且不存在非主属性对码的
传递依赖,则称 R为第三范式 。
? STUDENT( SNO,SNAME,AGE,SEX,CLASS)
? CLS(CLASS,DEPTNO)
? DEP(DEPTNO,DEPTNAME)
? COURSE( CNO,CNAME,CREDIT)
? SC( SNO,CNO,GRADE)
如果 R是 3NF的关系模式,则 R也是 2NF关系模式
(部分函数依赖蕴涵着传递函数依赖)
设 K是 R的一个候选码,A是 R的一个非主属性,且
K ? A是一个部分函数依赖。那么,R中必然存在某
个 Kz ? K,有 Kz ? A。
由于 Kz ? K,所以 K ? Kz, 但 Kz ? K,且 Kz ?
A,所以 K ? A也是一个传递依赖。
关系模式设计
面向主题的关系设计
顾客(顾客编号,顾客名,单位,邮编)? NF
数据库应用开发
建立数据库对象
装入数据
程序编码
调试
数据库试运行
数据库小结
? 计算机信息处理系统发展阶段
? 计算机数据管理技术的演变
? 数据库系统结构 —三级模式
? 数据库系统组成
? 数据模型的概念
? E-R模型
? 关系模型
? E-R模型转换为关系模式
数据库小结
? SQL语言基础
? 视图、索引
? PL/SQL ( 光标)
? 触发器,存储过程
? 事务与并发控制
? 分布式数据库
? 完整性约束
? 数据库理论(关系、函数依赖、规范化)