北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5,数据库设计
? 计算机信息系统以数据库为核心,在数据库管理
系统( DBMS)的支持下,进行信息的收集、整理、
存储、检索、更新、加工、统计和传播等操作。
? DBMS提供的功能可以细化为,
– 数据存储、检索、更新
– 用户可访问的目录
– 事务支持
– 并发控制服务
– 恢复服务
– 授权服务
– 对数据通信的支持
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5,数据库设计
– 完整性服务
– 数据独立性服务(视图、表空间)
– 实用工具服务
? 数据库设计是指对于一个给定的应用环境,提供
一个确定最优模型与处理模式的逻辑设计,以及
一个确定数据库存储结构与存取方法的物理设计,
建立起既能反映现实世界信息和信息联系,满足
用户数据要求和加工要求,又能被某个数据库管
理系统所接受,同时能实现系统目标,并有效存
取数据的数据库。
5.1 数据库设计过程
5.2 实体联系模型
5.3 关系规范化
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
? 数据库系统设计是在现成的 DBMS上建立数据库
应用系统的过程。其特点是:数据量大、保存时
间长,数据关联复杂,用户要求多样化。
? 从系统开发角度来看,数据库系统具有结构特性
和行为特性两个方面。
– 结构特性设计 (数据库设计)
1)是与数据模型所反映的实体及实体之间的联系的静
态模型的设计。
2)设计各级数据库模式,决定数据库系统的信息内容。
– 行为特性设计 (数据库应用软件的开发)
1)与数据库状态转换有关,是改变实体特性的操作。
2)决定数据库系统的功能,是事务处理等应用程序的
设计。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
? 现代数据库设计方法强调数据库的结构
设计和行为设计相结合 。
? 数据库应用系统设计中的主要困难和问题
– 懂计算机, 数据库原理和熟悉 DBMS,同时又
具备企业业务知识和实际经验的人很少 。
– 企业或组织的数据库应用系统的目标和需求
缺少明确的规定 。
– 缺乏完善的设计工具, 方法和理论 。
– 随应用范围的扩大和深入, 用户不断要求修
改和增加新的功能 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
? 对数据库设计人员的要求
– 计算机科学基础知识和程序设计技术
– 数据库基本知识和设计技术以及某一种
DBMS
– 软件工程的原理和方法
– 应用领域的知识
? 开发方法(多种多样)
– 快速原型法
– 直接设计法
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
? 开发方法
– 软件工程分步设计法 (生命周期法 )
软件:程序及其开发、使用和维护所需的
所有文档的总和 。
软件工程:是为了组织大型软件生产,克
服手工作坊方式软件生产的缺点,而提出的
一种科学的软件设计方法。是指导计算机软
件开发和维护的工程学科。
对于大规模、十分复杂、要求较高的数据
库应用系统,应当采用软件工程的方法。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
? 数据库应用系统的开发是一项系统工程,
系统工程是为了合理进行开发、设计和运
用系统而采用的思想、步骤、组织和方法
的总称。按照系统工程的观点,数据库系
统的设计与开发有如下指导方针。
– 1)系统的目的性,系统开发的成功与否取决
于是否符合用户的需要,满足用户的要求是
设计与开发工作的出发点和归宿。
– 2)系统的整体性,对各个环节的信息进行综
合和抽象,得出现实世界业务环节的整体逻
辑模型和整体物理模型。而不是各个环节信
息的简单组合和拼凑。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
? 数据库系统的设计与开发指导方针
– 3)系统的相关性,组成系统的各个子系统
(模块 )各有其独立功能,同时又相互依赖,
相互作用,通过信息流把它们的功能联系起
来。
– 4)系统的扩展性和易维护性,要适应外界环
境的变化,对数据库的设计要充分考虑留有
余地,可扩充。系统要能跟外界进行信息交
换,有行业规范或国家标准的尽量采用,对
没有标准的可以考虑建立标准;系统要有前
瞻性,对可能提出的信息需求和功能需求,
系统应留有接口;对可能发生的误操作或故
意破坏,尽可能把损失降低到最小程度。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
? 数据库系统的设计与开发指导方针
– 5)工作成果文档化,图表规范化,软件是
程序和文档资料的集合,文档资料是系统
的组成部分。因为系统的扩充、修改、交
流是建立在文档资料基础之上,而不应该
是拿程序进行交流。在文档资料的标准规
范化方面可以参照软件工程规范。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
? 数据库设计准则
– 数据库必须正确反映现实世界, 能为某个
DBMS所接受 。
– 应用系统有良好的性能, 有利于实施和维护 。
– 数据库能满足当前和今后相当长时期内的数
据需求, 使数据库有较长的使用寿命 。
– 当软件和硬件环境发生变化时容易修改和移
植 。
– 能满足安全性要求, 当系统发生故障时, 容
易恢复数据库 。
– 数据库存取效率, 查询效率要高 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
对需求分析所得
到数据的更高层
的抽象描述。
ER模型
ODL
数据字典
数据流图
第 0步,规划
第 1步:
需求分析
第 2步:
概念设计
必要性
可行性分析
第 3步:
逻辑设计
确定存储哪些数
据,建立哪些应
用,常用的操作
及对象有哪些等 。
将概念模型映射
为某个特定的
DBMS模式数据。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
对已经确定的逻辑结构
选择适当的物理结构,
包括存储结构、存取路
径、存储分配等 。
数据库的装入
数据库的试运行
数据库的运行维护
第 4步:
物理设计
第 6步,数据库
实施与维护
第 5步:
应用程序开发
数据库应用程序
的设计、编码、
调试、运行
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1 数据库设计过程
? 数据库设计过程是有一个起点和几乎无止
镜的逐步求精的反复过程,尽管前面我们
把数据库设计过程表述为一个程序化的过
程,但需强调:数据库设计过程并不一定
非要以这种程序化方式进行,各个阶段之
间的区分也并不是非常严格。
? 本讲义给出的数据库设计过程可以作为引
导你进行有效的数据库设计的框架。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.1 规划
? 在数据库设计的规划阶段主要进行建立数据库
系统的必要性及可行性分析。
? 规划阶段必须完成下列任务,确定系统的范围,
任务陈述定义数据库应用程序的主要目标,每
个任务标识数据库必须支持的特定任务,确定
开发工作所需的资源,估计开发成本,确定项
目进度 。
? 系统规划纲要内容包括:
– 1)系统目标与范围的描述:
? 确定系统长期目标和近期目标;
? 定义数据库应用程序的范围和边界(包括主要的用户视图,
用户视图定义了根据要存储的数据和在数据上要执行的事
务,也即用户要怎样使用数据,不仅考虑当前用户视图,
而且也要考虑未来的用户视图);
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.1 规划
? 确定系统与外部环境的信息联系和接口;
? 系统的主要功能和结构。
– 2)系统运行环境描述:
? 管理思想及管理方法的设想(新的数据库系统的运行可能
是传统业务的彻底革新,新的思想、新的机制应当是完备
而可行的,并且是高效而经济的);
? 说明系统运行的基本要求及条件(如何收集数据、如何指
定格式、需要什么样的文档资料);
? 信息范围、信息标准(良好的信息标准为衡量系统质量和
训练职工提供基础)、信息来源、人力资源、设备资源。
– 3)确定计算机系统选型要求:包括主机及外部设备
配置要求、性能指标、网络系统配置、系统软件配
置要求。
– 4)系统开发进度计划(初步)。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.1 规划
? 可行性分析应从经济方面、技术方面、系统运
行方面 (管理体制、人员的适应性及法律法规 )
进行分析和评价。 可行性研究报告的内容包括,
– 1)原来系统概况。包括企业目标、规模、组织结构、
人员、设备、效益等。
– 2)原来系统存在的主要问题和主要信息要求。
– 3)待开发系统的总体方案(如前所述)。
– 4)经济可行性分析包括系统的投资、运行费用、经
济效益及社会效益。
– 5)技术可行性分析主要包括对技术的评估。
– 6)系统可行性分析分析系统运行对管理思想、管理
体制和变革的要求,系统运行和有关法律法规的相
互作用。
– 7)结论。对可行性研究的简要总结。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.2 需求分析
? 需求分析是数据库设计成败的关键,没有对系
统充分的需求分析,数据库设计很难取得成功。
需求分析阶段应该对系统的整个应用情况作全
面、详细的调查,收集支持系统总的设计目标
的基础数据和对这些数据的要求,确定用户的
需求,并把这些要求写成用户和数据库设计者
都能够接受的文档 。
? 设计人员还应该了解系统将来要发生的变化,
收集未来应用所涉及的数据,充分考虑到系统
可能的扩充和变动,使系统设计符合未来发展
的趋向,以减少系统维护的代价。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.2 需求分析
? 实际上,系统的需求包括着多个层次,不同层
次的需求从不同角度与不同程度反映着细节问
题。 没有一个清晰、毫无二义的 ‘ 需求 ’ 存在,
真正的 ‘ 需求 ’ 实际上在人们的脑海中 。任何
文档形式的需求仅仅是一个模型,一种叙述。
? 需求分析文档要尽可能地从 不同层次角度去描
述 (有可能冗余),要注意描述的名词对用户、
分析者、设计者在理解上务必达成共识。
? 在此阶段,从多方面对整个组织进行调查,收
集和分析各个应用主要集中在对 信息 和 处理 两
方面的需求。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.2 需求分析
? 信息需求 是指用户要从数据库获得的信息内容
和用户产生的信息内容,处理需求 是指完成什
么处理功能及处理方式,处理需求即事务需求,
信息需求和处理需求组成用户 视图。 另外还有
安全性和完整性要求。对收集到的数据进行抽
象,抽取共同的本质特性,并用各种概念精确
地加以描述。
? 需求分析阶段的方法:
– 检查文档资料:收集检查与目前系统相关的文档资
料、表格、报告、文件
– 面谈:找出事实、确认事实、澄清事实
– 观察业务处理:跟班作业
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.2 需求分析
– 研究:从计算机行业杂志、参考书和 Internet上获
取其他人解决问题的信息,也可能直接得到相关问
题的解决方案或软件包。
– 问卷调查:调查建议和意见,诸如:, 当前使用什
么报表,是否存在问题, 等等。
? 需求分析阶段的工作分为六个步骤:
– 分析用户活动,产生业务流程图
– 确定系统范围,产生系统范围图
– 分析用户活动所涉及的数据,产生数据流图
– 分析系统数据,产生数据字典
– 功能分析
– 功能数据分析
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.2 需求分析
– 分析用户活动,产生业务流程图
了解用户当前的业务活动和职能,理清其处理流程。
把用户业务分成若干个子处理过程,使每个处理功
能明确、界面清楚,画出 用户活动图 (业务流程图 )。
– 确定系统范围,产生系统范围图
在和用户经过充分讨论的基础上,确定计算机所能
进行数据处理的范围,确定 哪些工作由人工完成,
哪些工作由计算机系统完成,即确定人机界面。
– 分析用户活动所涉及的数据,产生数据流图
深入分析用户的业务处理,以数据流图 (Data Flow
Diagram,DFD)形式表示出数据的流向和对数据所进行
的加工。 DFD有四个基本成分:数据流、加工或处理、
文件、外部实体 。 DFD可以形象地表示数据流与各业
务活动的关系,它是需求分析的工具和分析结果的
描述手段。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.2 需求分析
– 分析系统数据,产生数据字典
仅仅有 DFD并不能构成需求说明书,DFD只表示出系
统有哪几部分组成和各个部分之间的关系,并没有说
明各个成分的含义。数据字典提供对数据库时间描述
的集中管理,它的功能是 存储和检索各种数据描述
(元数据 Metadata),数据字典是数据收集和数据分析
的主要成果,在数据库设计中占有很重要地位。
数据字典编写的基本要求是:
a.对数据流程图上各种成分的定义必须明确,易理
解,唯一。
b.命名、编号与数据流程图一致。
c.符合一致性与完整性的要求,对数据流程图上的
成分定义与说明无漏项,无同名异义或异名同义。
d.格式规范,文字精炼,符号正确。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.2 需求分析
– 分析系统数据,产生数据字典
数据字典中通常包括数据项、数据结构、数据流、
数据存储、处理过程 5个部分 。
a.数据项:数据项是数据的最小组成单位,若干
个数据项可以组成一个数据结构,数据字典通过对
数据项和数据结构的定义来描述数据流以及数据存
储的逻辑内容。对数据项描述包括数据项名、含义、
别名、类型、长度、取值范围以及与其他数据项的
逻辑关系,必要时说明数据项的数值含义。
b.数据结构:数据结构名、含义及组成部分。
c.数据流:表示某一加工处理过程的输入或输出
数据,包括数据流名、说明、来源、去向、包含的
数据项或数据结构名称、单位时间传输次数 (活动频
率 )。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.2 需求分析
– 分析系统数据,产生数据字典
d.数据存储:名称、输入、输出、数据量、存取
频率和存取方式 (批处理或联机处理;查询或更新;
顺序或随机 )。
e.处理过程:名称、输入、输出、频率、数据量、
处理逻辑说明和响应时间等。
– 功能分析
数据库的设计是与应用系统的设计紧密结合的过
程,离开一定的功能,数据库就失去其存在价值。
数据库设计的一个重要特点是结构 (数据 )和行为 (功
能 )的结合。用户希望系统能提供的功能必须有一个
清晰的描述。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.2 需求分析
– 功能分析
功能分析是对数据流程图中的处理过程作详细的
说明。用户的数据处理可以分为数据输入输出处理、
数学处理、逻辑判断三类。对输入输出处理要确定
输入输出的格式、输入输出方式;对数学处理要建
立处理的数学模型 (公式及数值分析 );对逻辑判断
的描述通常采用决策树、决策表及自然语言或形式
语言等方法。在这三类用户数据处理的基础上进行
抽象和归纳,得出功能的层次体系结构。 功能分析
可以采用软件结构图或模块图 来表示系统的层次分
解关系、模块调用关系。
功能分析建立在用户需求和数据分析基础上,它
通常是系统模块划分和应用程序菜单设置的依据。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.2 需求分析
– 功能数据分析
反映系统全貌的数据流程图与数据、功能详细分
析完成后,为保证总的系统描述和细节情况相一致,
需要进行整理和审核,这一过程称为功能数据分析。
功能数据分析可以使用填写数据 功能格栅图 等方
法,如果完成某功能所需的数据不存在,需在数据
字典中添加项目;如果数据字典中的数据没有任何
一个功能使用,那么它可能是多余的或者在功能分
析中有遗漏。
通过功能数据分析的最后大检验,使需求分析报
告中的内容祥实准确。用户需求的功能在需求分析
报告中有所描述,完成功能所需的数据在数据字典
中有所描述,为数据库的设计和应用程序的设计工
作打下坚实基础。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.3 概念设计
? 在进行数据库设计时,如果将现实世界
中的客观对象直接转换为机器世界中的
对象,注意力往往被转移到更多的细节
限制方面,而不能集中在最重要的信息
的组织结构和处理模式上。
? 通常将现实世界中的客观对象首先抽象
为不依赖任何机器的信息结构,这种信
息结构不是具体的 DBMS的数据模型,而
是基于现实世界和机器世界的中间层次,
称为 概念模型 。逻辑设计再把概念模型
转换成具体 DBMS支持的数据模型。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.3 概念设计
? 广泛被采用的能够很好表达概念模型的方法是
设计 实体联系模型 (Entity Relationship
Model,ER模型 )。 对象定义语言 (Object
Definition Language,ODL)是以面向对象的观
点、方法说明数据库的概念结构,也可表达概
念模型,特别是对象数据库的情形。
? 实体联系模型定义实体、属性和联系等数据对
象,数据库设计者将需求分析过程中产生的数
据项和数据结构归纳到这些类别中,通过对实
体联系图的分析把握现实世界中信息的组织结
构。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.3 概念设计
? ER模型又比较容易转换为机器模型( ER
模型内容参见 5.2)。
? 设计概念模型的策略有自顶向下、自底
向上、由里向外、混合策略等。
? 利用 ER方法进行数据库的概念设计,采
用 自底向上策略,可以分成三步进行:
– 设计局部 ER模型
– 设计全局 ER模型
– 全局 ER模型的优化
– 概念模型评审
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.3 概念设计
– 设计局部 ER模型
一个数据库系统是为多个不同用户服务的,
各个用户对数据的观点可能不一样,信息处
理需求也可能不同。先分别考虑各个用户的
信息需求,形成 局部 ER图 。大体分为四个环
节:确定局部结构范围、局部实体定义、局
部联系定义、属性分配。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.3 概念设计
– 设计全局 ER模型
各个局部 ER图设计完成之后,下一步是把
它们综合成单一的 全局 ER模型 。全局 ER模型
不仅支持所有局部 ER模式,而且必须合理地
表示一个完整、一致的数据库概念模型。设
计过程为,确定 公共的实体类型,合并 局部
ER图并且 消除 在局部 ER图中的属性冲突、结
构冲突和命名冲突。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.3 概念设计
– 全局 ER模型的优化
在得到全局 ER图后,对它进行优化,一个
好的全局 ER模型,除能准确、全面地反映用
户功能需求外,还应满足,实体类型 尽可能
少;实体类型所含 属性个数 尽可能少;实体
间 联系无冗余 。但这些条件并不是绝对的,
视具体情况而定。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.3 概念设计
– 概念模型评审
评审分为用户评审与 DBA及应用开发人员
评审两部分。 用户评审 重点放在确认全局概
念模式是否准确完整反映了用户的信息需求
和现实世界事物的属性间的固有联系,DBA
和应用开发人员评审 侧重于完整性、一致性。
被评审的文档资料应包括局部概念结构描述、
全局概念模式描述、数据清单和业务功能清
单。
没有概念模型的评审过程,数据库设计人
员和开发人员可能承担过多的责任。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.4 逻辑设计
? 概念设计的结果是得到一个与 DBMS无关
的概念模式。而逻辑设计的目的是把概
念模式设计阶段的全局 ER模式转换成与
选用的具体机器上的 DBMS所支持的数据
模型相符合的逻辑结构。
? 逻辑结构即数据库模式,包括数据库内
模式、模式和外模式。逻辑设计主要设
计模式和外模式,关系数据库可以说是
数据库表和视图等。(例如 Oracle的逻
辑结构包括表空间及数据库对象)。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.4 逻辑设计
? 逻辑设计可表示如下示意形式,
逻辑设计
概念模型 安全要求 功能要求 约束条件 DBMS特征
模式 子模式 应用程序设计指南安全性 设计 物理设计 指南
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.4 逻辑设计
? 逻辑设计的步骤,
从 ER模式导出
初始数据库模式
处理需求ER模式 DBMS特征
关系模式规范化
模式评价
用 DBMS语法描述
是否修正
进入物理
设计阶段
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.4 逻辑设计
– ER模式向关系模式转换
一个 实体型转换 为一个关系模式,实体的属性
即为关系模式的属性,实体的标识符即为关系
模式的键。
联系类型的转换,根据不同情况做不同的处理:
1)若实体间的联系是 一对一 的,可以在两个
实体类型转换成的两个关系模式中的任意一个
关系模式的属性中加入另一个关系模式的键和
联系类型的属性。也可能做合并关系模式处理。
例:学院与院长之间是一对一,在学院关系
模式中加入院长关系模式的键。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.4 逻辑设计
– ER模式向关系模式转换
联系类型的转换
2)若实体间的联系是 一对多 的,则在多端
实体类型转换成的关系模式中加入一端实体
类型转换成的关系模式的键和联系类型的属
性。
例:学院与教师之间是一对多,在教师关
系模式中加入学院关系模式的键。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.4 逻辑设计
– ER模式向关系模式转换
联系类型的转换
3)若实体间的联系是 一对多 的,而且在
多端实体类型为 弱实体,转换成的关系模式
中将一端实体类型 (父实体 )的键作为外键放
入多端的弱实体 (子实体 )中。弱实体的主键
由父实体的主键与弱实体本身的候选键组成。
也可以为弱实体建立新的标识 ID。
例:学生与社会关系之间是一对多,社会
关系是弱实体,在社会关系关系模式中加入
学生关系模式的键学号,由学号和称呼两属
性组成社会关系关系模式的主键。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.4 逻辑设计
– ER模式向关系模式转换
联系类型的转换
4)若实体间的联系是 多对多 的,则将联系
类型也转换成关系模式,其属性为与该联系相
连的各个实体的码以及联系的属性,而键是与
该联系相连的各个实体的码的组合,或者是与
该联系相连的各个实体的码和联系的附加属性
的组合。
例:学生与课程之间是多对多,建立学生课
程联系关系模式,学号和课程号组成学生课程
联系关系模式的键。 CAP数据库中 Orders的码由
顾客实体、代理商实体、产品实体的码和日期
组成。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.4 逻辑设计
– 规范化处理
规范化的处理的目的是减少乃至消除关系
模式中存在的各种异常,改善完整性、一致
性和存储效率。
对于有经验的数据库设计人员而言,在进
行 ER图的建立和关系模式转换时,已经考虑
到规范化的要求,专门的规范化步骤往往指
不能确定的实体类型、联系的关系转换。
一般的规范化过程是 基于 3NF或 BCNF的
标准 进行的。在规范化模式合并和模式分解
过程中,要特别注意保持依赖和无损连接要
求(规范化内容参见 5.3)。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.4 逻辑设计
– 模式评价
模式评价的目的是检查已给出的数据库模
式是否完全满足用户的功能要求,是否具有
较高的效率。并确定需要加以修改的部分。
– 模式修正
根据模式评价结果对已生成的模式进行修
改。
在逻辑设计阶段,还要设计出子模式,子
模式体现各个用户对数据库的不同观点。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.5 物理 设计
? 数据库物理设计主要指数据库的存储记录
格式、存储记录安排和存取方法,包括索
引机制、空间大小、块的大小等,物理设
计的目的是以合适的存储空间得到用户事
务的快速响应( 时间和空间的效率 )。
– 是在计算机的物理设备上确定应采取的数据
存储结构和存取方法,以及如何分配存储空
间等问题。
– 物理设计与特定硬件系统,DBMS等相关,
难以形成统一的设计方法。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.5 物理 设计
– 索引选择
索引文件对存储记录进行内部链接,从逻辑
上改变了记录的存储位置。
– 记录聚簇
不改变逻辑数据库的模式结构,根据不同的
使用要求,将属性记录或文件集中存放在不
同的位置。
? 第四章 Oracle中探讨了许多的数据存储问
题,即物理设计问题。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.5 物理 设计
? 物理设计的过程:
– 使用 DBMS的可用功能完成基表的设计和完整性约束
和业务规则。
– DBMS为数据提供了许多可选择的文件组织方式,基
于对事务的分析,选择合适的文件组织方式,何时
选择索引。
– 考虑放宽规范化约束,改善系统性能。怎样处理派
生数据,历史数据。考虑重复列或连接表。
– 设计安全措施来避免对数据未经授权的访问,如何
实现每个用户的视图,以及表上需要的访问控制。
– 不断通过监听操作系统来标识和解决由设计引起的
性能问题,并实现新的或改变的需求。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.6 数据库 应用程序开发
? 数据库应用程序开发即应用程序的设计、编码、
调试和试运行过程。其中应用程序设计是对用
户界面和使用数据库的程序的设计。应用程序
设计是数据库应用程序开发的重要环节。
? 功能分析的结果 是应用程序设计的重要依据。
? 根据逻辑设计和物理设计的结果,在计算机系
统上建立起实际的数据库结构,装入部分实验
数据,应用程序的开发建立在实验数据基础上,
实验数据应尽量采用实际数据,并尽可能覆盖
现实世界的各种情况。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.6 数据库 应用程序开发
? 应用程序开发的主要工作:
– 应用程序设计:应用程序设计主要包括事务设计和
用户界面设计。
? 事务代表了现实世界的事件,事务设计包括事务使用什么
数据,事务要做什么,事务的输出,事务的使用频度。事
务有检索事务、更新事务、混合事务之分。
? 用户界面设计要易于掌握、操作直观。界面设计可考虑:
– 有意义的标题
– 可视化空间布局与边界
– 常用字段标签
– 不可接受值的错误信息提示
– 便利的游标活动
– 一致性的术语和缩略语
– 一致的颜色和字体
– 一致的操作快捷方式(尽可能地非鼠标化操作)
– 一致的鼠标操作方式
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.6 数据库 应用程序开发
? 应用程序开发的主要工作:
– 应用程序编写
– 组织数据入库
– 应用程序的调试与试运行
应用程序开发完成后,要进行装入实际数
据的试运行,试运行的过程是进一步检测系
统功能的过程。对于重要系统的试运行过程
中,原系统 (可能是手工方式 )的运行应当 平
行 进行,以防止由于系统错误带来用户不可
弥补的损失。
– 整理文档
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
5.1.6 数据库 应用程序开发
? 数据库系统正式运行,标志着数据库设计与应
用开发工作的结束和维护阶段的开始,运行 维
护 阶段的任务包括:
– 维护数据库的安全性和完整性:检查系统安全性是
否受到侵犯,及时调整授权和密码,实施系统转储
与后备,发生故障及时恢复。
– 监测并改善数据库性能:对数据库的存储空间状况
及响应时间进行分析评价,结合用户反应确定改进
措施。
– 必要时对数据库进行重新组织和重新构造。
– 根据用户要求对数据库现有功能进行扩充。
? 数据库运行和维护的工作就是 DBA的工作 。
北京邮电大学软件学院 郭文明 2003.06
,数据库设计与开发, 讲义
作业:
1.数据库系统设计人员应具备哪些知识?
2.数据库系统设计的方法有哪些?
3.需求分析的内容是什么?
4.简述概念模型评审的必要性,
5.结合第四章内容说明逻辑设计和物理设计
的内容,