第四章 数据库设计
4.1 数据库设计概述
4.2 需求分析
4.3 概念结构设计
4.4 逻辑数据库设计
4.5 物理设计阶段
第四章 数据库设计 数据库原理与应用
数据库设计
是指对于给定的软硬件环境,针对现
实问题,设计一个较优的数据模型,依据
此模型建立数据库中表的结构并以此为基
础构建数据库信息管理应用系统。是软件
开发的基础工作。
第四章 数据库设计 数据库原理与应用
4.1 数据库设计概述
数据库信息管理应用系统是在某一数据库系统的支持下,进行数据的采
集、整理、存储,并对其进行查询、修改、删除、统计等操作。
如何设计呢?数据库设计理论正是针对这一问题而提出的。
一、数据库设计主要考虑的问题
1、计算机软硬件环境
2、数据库管理系统的能力
3、用户的操作要求与信息要求
4、完整性和安全性约束
第四章 数据库设计 数据库原理与应用
二、设计前的准备工作
选定参加设计的人员
1、数据库分析设计人员 —— 核心,自始至终参加设计,其水平决定数据
库设计的质量。
2、用户 —— 举足轻重,参加需求分析和运行维护。
3、程序员和操作员 —— 负责编制程序和准备软硬件环境。
三、设计方法的选择
综合各种常用的数据库规范设计方法,可将数据库设计分为以下几个
阶段:
1、需求分析
2、概念结构设计
3、逻辑结构设计
4、物理结构设计
5、数据库实施
6、数据库运行和维护
第四章 数据库设计 数据库原理与应用
4.2 需求分析
需求分析:就是要知道用户想要做什么。
一、需求分析的任务
通过详细调查,充分了解原系统工作概况,明确用户的各种需求,然
后在此基础上确定新系统的功能。
重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、
安全性要求与完整性要求。
二、需求分析的方法
1、调查组织机构情况
2、对于每个部门,请负责人和有关专业人士介绍该部门的全部职能及完
成职能的过程。
3、在熟悉业务的基础上,协助用户明确对新系统的各种要求。
4、对前面调查结果初步分析,确定哪些功能由计算机完成。
第四章 数据库设计 数据库原理与应用
●常用的调查方法
1、跟班作业;
2、开调查会;
3、请专人介绍;
4、询问;
5、设计调查表请用户填写;
6、查阅资料。
●需求分析表示方法
结构化分析方法( SA):
自顶向下、自底向上
设计人员首先需要把任何一个系统都理解为一个大的功能模块,然后
将处理功能的具体内容按照某种原则分解为若干子功能,再将每个子功
能继续分解,直到把系统的工作过程表达清楚为止。
例图,P83— 图 4.2
第四章 数据库设计 数据库原理与应用
三、需注分析表方法
1,数据流图( DFD)
表示现行系统的信息流动和加工处理等详细情况。
2、数据字典( DD)
是各类数据描述的集合。对数据库设计来讲,是进行详细的数据收集
和数据分析所获得的主要结果。
数据字典包括:数据项、数据结构、数据流、数据存储、处理过程。
⑴数据项:不可再分的单位,表中的列
{数据项名,含义说明,别名,类型,长度,取值范围,取值含义,与其它
数据项的关系 }
⑵数据结构:表
{数据结构名,含义说明,组成 }
⑶数据流:要处理的数据(操作)
{数据流名,说明,数据流来源,数据流去向,组成 }
⑷数据存储:数据结构保存的地方
{数据存储名,说明,编号,流入的数据流,流出的数据流,组成,数据量,
存取方式 }
⑸处理过程
{处理过程名,说明,输入,输出,处理 }
第四章 数据库设计 数据库原理与应用
4.3 概念结构设计
一、概念结构设计:
将需求分析得到的用户需求抽象为信息结构即概念结构的过程。它是
整个数据库设计的关键。
二、特点
1、真实反映现实世界及事物之间联系。
2、图形表达,简单易懂;
3、定义严格,易更改;
4、易于向关系等数据模型转换。
三、实体 — 联系模型( E— R模型) —— 概念结构设计的工具
⒈实体:现实世界中客观对象或抽象概念。
矩形中写出实体名;实体型
⒉属性:实体的特征。
椭圆中写出属性名
单值属性、多值属性、导出属性、主键、属性的值域
⒊联系:各实体间的相互关系。
菱形中写出联系,并在连线之间写出;约束( 1,1,1,N,M,N)
第四章 数据库设计 数据库原理与应用
四、概念设计的方法与步骤
⒈方法:自底向上、自顶向下、混合策略需求分析自顶向下,概念结构设
计底向上。
⒉自底向上方法的步骤:
数据抽象与局部视图( E— R图)设计;
集成局部视图。
⑴数据抽象与局部 E— R图设计
根据需求分析的结果(数据流图、数据字典)对现实世界的数据进行
抽象,设计各个局部 E— R图。
第四章 数据库设计 数据库原理与应用
⑵集成局部视图
视图集成一般采用逐步积累的方式,也可一次集成。
▲集成步骤如下:
①合并分 E— R图,生成初步 E— R图;
(消除属性、命名、结构部突)
② 修改与重构,生成基本 E— R图。
(消除不必要的冗余数据和冗余联系)
▲ 集成后的概念结构要满足以下条件:
①内部必须具有一致性,即不能存在互相
矛盾的表达;
②准确反映原来的每个视图结构;
③能满足需求分析阶段所确定的所有要求。
第四章 数据库设计 数据库原理与应用
4.4 逻辑数据库设计
逻辑数据库设计的任务:是把概念结构设计阶段产生的概念模型变换为逻辑数
据库模式。即把 E— R模型转换为关系数据库模式。
逻辑数据库设计的步骤:
1、形成初始关系数据库模式;
2、关系模式规范化;
3、关系模式优化;
4、定义关系上的完整性和安全性约束;
5、子模式定义;
6、性能评价 。
第四章 数据库设计 数据库原理与应用
4.4.1关系数据库模式的设计问题
1、通过 E— R模型得到的数据库模式,可能存在很多问题,可有关系的规范
化理论不断优化关系模式;
2、关系模式的异常问题
数据冗余量大;
数据修改量大;
插入异常;
删除异常。
第四章 数据库设计 数据库原理与应用
例:关系 S( S#,SN,CLS,MON,C#,GR)
各属性分别表示学号,姓名,班级,班主任,
课程号,成绩
S# SN CLS MON C# GR
S1 丁一 机械 张力 C1 A
S1 丁一 机械 张力 C2 A
S2 王二 电子 王方 C1 B
S2 王二 电子 王方 C2 A
S2 王二 电子 王方 C3 C
S3 张三 中文 白玉 C1 B
S4 李四 电子 王方 C2 A
S4 李四 电子 王方 C3 C
第四章 数据库设计 数据库原理与应用
3、冗余和数据依赖
数据依赖是指点数据之间存在的各种联系。
上例中学号为 S2的班级重复出现,是因为 S3和 CLS之间存在依赖关系,
即每个学生只属于一个班级。这称为函数依赖,必然造成关系出出冗余
现象。
上例关系可分解为,SS( S#,SN,CLS)
SC( S#,C#,GR)
CM( CLS,MON)
第四章 数据库设计 数据库原理与应用
4.4.2 关系模式的函数依赖
1、函数依赖的定义
设 R是一个关系模式,U是 R的属性集合,X,Y是 U的子集,r是 R的一个
关系实例,t∈ R,t[X]表示元组 t 在属性集合 X上的值。
定义一:函数依赖
定义二:完全函数依赖、部分函数依赖
定义三:传递函数依赖
定义例子:
U={S#,SN,CLS,MON,C#,GR} X={S#,SN} Y={CLS}
元组 t,S1 丁一 机械 张力 C1 A
元组 s,S1 丁一 机械 张力 C2 A
则 t[X]为,S1 丁一 s[X]为,S1 丁一 显然 t[X]= s[X]
t[Y]为:机械 s[Y]为:机械 显然 t[Y]= s[Y]
即 Y函数依赖于 X
第四章 数据库设计 数据库原理与应用
4.4.3 关系的规范化
本节将以函数依赖为基础讨论关系模式的规范化形式(简称范式)
在关系数据模式设计中,为了避免由依赖引起的数据冗余和更新异常
等问题,必须进行关系模式的合理分解,即关系模式的规范化。
1、关系模式的范式
设计一个关系数据库的原则是:
① 数据冗余量小;
② 对关系进行更新等操作,不要出现异常;
③ 真实地反映现实世界的实际情况。
这就要求关系数据库中的关系满足一定的求,而把满足不同程度要求
的关系称为不同的范式。满足最低要求的关系叫第一范式,简称 1NF。
在第一范式中进一步满足一定要求的为第二范式,简称 2NF。
第四章 数据库设计 数据库原理与应用
关系的规范化:
就是一个低一级范式的关系模式通过投影运算,转化为更高级别范式
的关系模式集合。
① 第一范式( 1NF)
设 R是一个关系模式,如果 R的每一属性的值都是不可分离的原子值,
即每个属性的值域是单值域,则 R是第一范式,记作 R∈1NF 。
在任何一个关系数据库系统中,第一范式是必须达到的最低要求,不满
足该条件的关系模式称为非规范化关系。
② 第二范式
如果关系模式 R∈1NF, 且 R中每一非主属性完全依赖于 R的主键,则 R称
为第二范式,记作 R∈2NF 。
仍然存在数据冗余、更新异常等问题。原因是传递函数依赖。进一步
使用投影分解法。
③ 第三范式
如果关系模式 R∈2NF, 且它的任何一个非主属性都不传递函数依赖于
任何主属性,称 R为第三范式,记作 R∈3NF 。
第四章 数据库设计 数据库原理与应用
2、关系规范化方法与实例
规范化的基本思想:
逐步消除数据依赖中不合适的部分,使各关系模式达到一定程度的分
离,即, 一事一地, 的模式设计原则,使概念单一化,即让一个关系描
述一个概念、一个实体或者实体间的一种关系。
在实际设计关系模式时,通常分解进行到 3NF就足够了。
实例,见教材
根据关系数据库理论,优化关系数据库的设计过程,实际上就是对关系模
式进行规范化的过程,即不断通过投影分解使非规范化的关系模式达到
规范化的要求。
规范化时遵循的原则:
关系模式进行无损连接分解;
合理选择规范化程度;
正确性与可实现性原则。
第四章 数据库设计 数据库原理与应用
4.4.4E— R图向关系模式的转换
将实体、属性、实体间的联系转换成关系模式遵循以上原则:
⑴一个实体型转换为一个关系模式,实体的属性就是关系模式的属性;实
体的主键即为关系模式的主键。
⑵一个 1,1联系可以转换为一个独立的关系模式,则与该联系相连的各实
体的主键以及联系本身的属性均转换为关系的属性; 也可以与任意一端
对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模
式的主键和联系本身的属性。
例,P105—— 图 4.11
第四章 数据库设计 数据库原理与应用
⑶ 若实体间的联系是 1,N的,则可以与 N端对应的关系模式合并,并在 N
端实体型转换的关系模式中加入 1端实体型转换成的关系模式的主键和联
系的属性。若将 1,N联系转换为一个独立的关系模式,则与该联系相边
的各社体转换成的关系模式的主键以及联系本身的属性均转换为关系的
属性,而关系的主键盘为 N端实体对应的关系模式的主键。
例,P106—— 图 4.12
⑷ 若实体间的联系是 M,N的则将该联系转换为一个独立的关系模式,其
属性为两端实体的主键加上联系的属性,主键为两端实体转换成的关系
模式的主键的组合。
例,P106,107—— 图 4.13
第四章 数据库设计 数据库原理与应用
4.5物理设计阶段
物理设计:对于给定的基本数据模型选取一个最适合应用环境的物理结构
的过程。
物理结构:主要指数据库的存储记录格式,存储记录安排,存取方法。
一、物理设计的内容
1、存储记录结构设计:记录的组成、数据项的类型、长度、逻辑记录到存
储记录的映射。
2、确定数据存放位置;
3、存取方法的设计;是否用主键索引。
4、完整性和安全性考虑;
5、程序设计;
第四章 数据库设计 数据库原理与应用
二、数据库的实现
1、建立实际数据库结构;
2、装入试验数据对应用程序进行调试;
3、装入实际数据,进入试运行状态。
三、数据库的运行和维护
1、维护数据库的安全性与完整性;
2、监测并改善数据库的运行性能;
3、根据用户要求对数据库功能进行调整扩充;
4、及时发现并改正运行中的系统错误或不足。
第四章 数据库设计 数据库原理与应用
例:计算机信息工程系管理系统
一、教师管理
1、需求分析
系内有多个教研室,每个教研室有多名教师,一名教师可讲授多门课
程,一门课程也可由多名教师讲授,有些教师担任班主任;
手工管理中使用组织机构表,教师情况表,课程表,班级表,任课情
况表,班主任表等。
各表结构如下:
组织机构
名称,教师姓名,人数
教师个人情况表
教师编号,教师姓名,性别,出生年月,政治面貌,学历,职称
课程表
课程号,课程名,学期,学时
第四章 数据库设计 数据库原理与应用
班级表
班级名称,地址,人数
班主任
班主任姓名,班级名称
任课情况
教师编号,课程号,班级名称,课时
经分析
数据项有:
教研室名称,教师姓名,教研室人数,教师编号,教师姓名,性别,
出生年月,政治面貌,学历,职称,课程号,课程名,学期,学时,班
级名称,地址,班级人数,班主任姓名,课时,教研室职务,津贴,周
学时
数据结构有:组织机构,教师个人情况表,课程表,班级表,班主任,任
课情况
处理过程有:课程安排,班主任津贴发放
第四章 数据库设计 数据库原理与应用
数据字典
数据项:教师编号
含义说明:惟一能标识教师的一个代号
类型:字符型
长度,4
取值范围,00 00— 99 99
取值含义:前 2位代表系,后 2位代表系内序号
数据结构;教师个人情况表
含义说明:是教师管理中的重要数据,定义了教师的自然信息
组成:教师编号、姓名、性别、出生年月、政治面貌、学历、职称
处理过程:课程安排
说明:每学期进行教师课程安排
输入:班级,课程名称,教师,学时
输出:课程安排表
处理:根据教师、课程名称分配上课的班级及课时
第四章 数据库设计 数据库原理与应用
教师
2、概念结构设计
教师编号 姓名 性别 出生年月 政治面貌
学历 职称
第四章 数据库设计 数据库原理与应用
教研室
教师
班级
课程
班主任
包含
讲授
管理
属于
1
m
m n
1 m
1
m
p
第四章 数据库设计 数据库原理与应用
3、逻辑结构设计
教研室(教研室编号,名称,教师姓名,人数)
教 师(教师编号,教师姓名,性别,出生年月,政治面貌,学历,职称)
包 含(教研室编号,教师编号,教研室职务)
课 程(课程号,课程名,学期,课时)
班 级(班级名称,地址,人数)
班主任(教师编号,班级名称,津贴)
讲 授(教师编号,课程号,班级名称,课时)
第四章 数据库设计 数据库原理与应用