DBSCH07-数据库设计课件_第1页
DBSCH07-数据库设计课件_第2页
DBSCH07-数据库设计课件_第3页
DBSCH07-数据库设计课件_第4页
DBSCH07-数据库设计课件_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七章数据库设计本章要求:1、掌握数据库设计的基本步骤2、掌握各阶段的任务、方法和常用的技术手段3、能够针对小型应用问题进行数据库设计和实现1第七章数据库设计本章要求:1、掌握数据库设计的基本步骤1本章内容:§1数据库设计概述§2需求分析§3概念结构设计§4逻辑结构设计§5数据库的物理设计§6数据库的实施和维护2本章内容:§1数据库设计概述§2需求分析§3§1数据库设计概述

数据库设计是指对一个给定的应用环境,构造优化的数据库模式,建立数据库及其应用系统,使之能够有效地存取数据,满足用户的应用需求。数据库设计的目标是为用户提供一个针对具体应用的高效的数据管理和操作环境。一、数据库设计的特点大型数据库的设计和开发是涉及多学科的综合性技术,其主要特点体现在:◆“三分技术,七分管理,十二分基础数据”

◆数据结构设计和处理行为设计相结合3§1数据库设计概述数据库设计是指对一二、数据库设计方法进行数据库设计需要多方面的技术和知识,包括:计算机基础知识软件工程的原理和方法程序设计方法和技巧数据库基本知识数据库设计技术应用领域的知识4二、数据库设计方法4二、数据库设计方法1、新奥尔良方法该方法将数据库设计分为需求分析、概念设计、逻辑设计和物理设计四个阶段,运用软件工程的方法,通过一定的辅助手段实现每一过程。2、E-R模型法用E-R模型来描述数据库的概念模型,是概念设计阶段常用的方法。5二、数据库设计方法53、3NF设计法用关系数据库理论设计数据库的逻辑模式,并使每个模式最低为3NF,是逻辑设计阶段常用的方法。4、ODL(ObjectDefinitionLanguage)法用面向对象的概念和术语来描述数据库的对象结构,以建设面向对象的数据库。随着技术的进步,传统的手工方式已不能满足数据库设计的需要,数据库设计工具已经实用化和产品化,如:

ORACLE公司Designer2000Sybase公司的PowerDesigner三、数据库设计的基本步骤63、3NF设计法6需求收集和分析应用需求(数据、处理)设计概念结构设计逻辑结构数据模型优化设计物理结构评价设计、性能检测物理实现试验性运行使用、维护数据库转换规则、DBMS功能、优化方法应用要求、DBMS详细特征需求分析阶段概念设计阶段逻辑设计阶段物理设计阶段数据库实施阶段数据库运行、维护不满意7需求收集和分析应用需求(数据、处理)设计概念结构设计逻辑结构设计阶段

设计描述数据处理需求分析

数据字典、全系统中数据项、数据流、数据存储的描述数据流图和判定表(判定树)、数据字典中处理过程的描述

概念模型(E-R图)

数据字典

系统说明书包括:①新系统要求、方案和概图②反映新系统信息流的数据流图

某种数据模型关系非关系

系统结构图(模块结构)

存储安排方法选择存取路径建立

模块设计IPO表实施阶段

编写模式装入数据数据库试运行

程序编码、编译联结、测试运行、维护

性能监测、转储/恢复数据库重组和重构

新旧系统转换、运行、维护(修正性、适应性、改善性维护)

IPO表……输入:输出:处理:Creat……Load……Main()……if……then……end分区1

分区2……概念结构设计逻辑结构设计物理设计8设§2需求分析了解将要开发的系统要管理什么样的数据(数据要求)、对这些数据要进行怎样的处理(处理要求)、系统的安全性和完整性方面有什么样的要求等。要彻底弄清这些情况往往是很困难的。因为用户可能不知道计算机能做什么,不能做什么,往往不能准确、全面地表达自己的需求,而设计员可能不了解领域专业知识,不能够准确领会用户的意图。因此必须经过充分交流、讨论才能达成共识。一、需求分析的任务9§2需求分析了解将要开发的系统要管理二、需求分析的方法调查组织机构情况了解该组织的部门组成情况,各部门的职责,为分析信息流程做准备调查各部门的业务活动情况(重点)了解各部门的输入和使用什么样的数据如何加工这些数据输出什么信息输出到什么部门信息输出结果的格式需求分析步骤:10二、需求分析的方法调查组织机构情况需求分析步骤:10协助用户明确对新系统的各种要求(重点)信息要求、处理要求、安全性与完整性要求确定新系统的边界确定那些由计算机来完成,那些由人工来完成。11协助用户明确对新系统的各种要求(重点)11需求分析调查方法:跟班作业参加业务工作来了解业务活动的情况,此种方法可以准确地了解用户的需求,但是比较耗费时间。开会调查召集用户开座谈会,了解业务活动情况,座谈时,参加者之间可以相互启发。请专人介绍请熟悉业务情况的专家或用户代表介绍业务情况。12需求分析调查方法:跟班作业参加业务工作来了解业务活动的情询问对尚存有疑惑的问题,或用户没有提出但认为应该考虑的问题,可随时询问。设计调查表请用户填写如果调查表设计的合理,这种方法是很有效,也易于为用户接受。查阅记录通过查阅业务活动记录和各种数据报表,了解业务的活动内容和规律。

做需求调查时,往往需要同时采用上述多种方法。但是无论采用何种方法,都需要用户的配合。13询问对尚存有疑惑的问题,或用户没有提出但认为应该考虑的问需求分析结果的表示了解用户需求后,通过分析和总结,将需求分析结果用数据流图和数据字典表示出来。14需求分析结果的表示了解用户需求后,通过分析和

数据流图用于描述信息在系统中流动和处理的情况,它是逻辑系统的图形表示。设计人员将他对系统的认识和设想用数据流图描述出来,供人们审查、确认和参阅。设计数据流图时只需考虑系统要完成的基本逻辑功能,不必考虑如何具体地实现这些功能。三、数据流图(DataFlowDiagram,DFD)15数据流图用于描述信息在系统中流动和处理的情况由于数据流图不包含任何物理实现的细节,所以即使是非计算机人员也容易理解和评价。数据流图中的数据用数据字典描述,而处理一般用判定树来表示。数据流图中的处理可以是一个简单的处理程序,也可以是一个复杂的处理过程。16由于数据流图不包含任何物理实现的细节,所以即数据流图中的符号数据源点或终点数据加工或处理数据存储数据流T*ABC同时输入A、B后变成CT+ABC输入A或/和B后变成CT+ABC仅输入A、B之一后变成CT*将A变成B和CABCT+ABC将A变成B或/和CT+ABC将A变成B或C之一17数据流图中的符号数据源点或终点数据加工或处理数据存储数据流T举例:对某工厂仓库和采购部两个部门,要开发一个定货系统,了解到如下业务情况:仓库管理员将零件入库或出库称为事务,当发现库存数量小于临界值时,自动生成定货信息,包括零件编号、名称、数量、目前价格、主供货者、次供货者。根据定货信息生成定货报表交采购员采购零件。18举例:18举例:仓库管理员定货系统采购员出入库单定货报表仓库管理员出入库单1事务处理2产生报表采购员定货报表库存清单库存清单D1定货信息D2定货信息定货信息明细帐D0明细信息19举例:仓库定货系统采购员出入库单定货报表仓库出入库单12采购仓库管理员出入库单1.1接收事务2产生报表采购员定货报表库存清单库存清单D1定货信息D2定货信息定货信息明细信息1.2更新库存1.3处理定货明细帐D0明细信息20仓库出入库单1.12采购员定货报表库存清单库存清单D1定货信四、数据字典(DataDictionary,DD)

数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和分析之后所获得的主要成果,数据字典在数据库设计中占有很重要的作用。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。21四、数据字典(DataDictionary,DD)1.数据项

数据项是不可再分的数据单位。数据项的描述为:数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其它数据项的逻辑关系,数据项之间的联系}221.数据项222.数据结构

数据结构可以由数据项或其它数据结构组成,用于反映数据之间的组合关系。数据结构的描述为:数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}232.数据结构233.数据流是数据结构在系统内的传输路径,描述为:数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}数据流来源是说明该数据流来自哪个过程数据流去向是说明该数据流将到哪个过程去平均流量是指在单位时间(每天、每周、每月等)里的传输次数高峰期流量则是指在高峰时期的数据流量243.数据流数据流来源是说明该数据流来自哪个过程244.数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。可以是手工文档或手工凭单,也可以是计算机文档。数据存储描述={数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}流入的数据流:指出数据来源流出的数据流:指出数据去向数据量:每次存取多少数据,每天(或每小时、每周等)存取几次等信息存取方法:批处理/联机处理;检索/更新;顺序检索/随机检索254.数据存储流入的数据流:指出数据来源25简要说明:说明该处理过程的功能及处理要求,功能是指该处理过程用来干什么处理要求包括处理频度要求,如单位时间里处理多少事务、多少数据量、响应时间。5.处理过程对处理过程进行简明扼要的描述,具体处理逻辑用判定树表示。处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}26简要说明:说明该处理过程的功能及处理要求,功能是指该处理过程举例:数据项名称说明类型长度取值取值含义编号唯一地标识某字符40101~前两位为类别零件的关键字0899后两位为序号名称零件名称字符20数量某种零件数字在D0中,负数表示的数量出库价格目前价格数字6,2主商主供货商字符20次商次供货商字符20操作员管理员字符8审批领导字符8经手人字符8采购员,领取人日期日期27举例:数据项名称说明数据存储名称说明入流出流组成存取方式出入外部管理接收编号,名称,数量,经手人,留存库单员事务审批领导D0明细更新日期,编号,数量,操作员联机帐库存D1库存更新定货编号,名称,数量,价格,主商,联机清单库存处理次商D2定货定货产生上述项+操作员,经手人,联机信息处理报表日期定货外部产生采购同上留存根报表报表员28数据存储名称说明入流出流组成处理过程输入输出功能接收事务出入库单明细信息显示界面接收数据生成明细信息更新库存明细信息D0,D1根据明细信息登记明细帐并修改库存清单处理定货D1D2当库存数量低于预设的阈值时生成定货信息,每天1次产生报表D2定货报表将定货信息以规定的报表格式输出2份,每天1次处理过程29处理过程输入五、判定树以树型结构描述复杂处理过程中的详细处理细节,给出条件与处理方法之间的对应关系。如飞机行李费计算方法可描述如下:行李费算法行李重量W>30行李重量W≤30国内乘客外国乘客头等仓其他仓头等仓其他仓残疾乘客--(W-30)×2正常乘客--(W-30)×4免费残疾乘客--(W-30)×3正常乘客--(W-30)×6残疾乘客--(W-30)×4正常乘客--(W-30)×8残疾乘客--(W-30)×6正常乘客--(W-30)×1230五、判定树以树型结构描述复杂处理过程中的详细什么是概念结构设计?需求分析阶段描述的用户应用需求是现实世界的具体需求将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。概念结构设计是整个数据库设计的关键§3概念结构设计31什么是概念结构设计?§3概念结构设计31能真实充分地反映客观世界,包括事物和事物之间的联系,满足用户对数据的处理要求易于理解从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键。易于更改当应用环境和应用要求改变时,容易对概念模型修改和扩充。易于向关系、网状、层次等各种数据模型转换将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。一、概念结构的主要特点:描述概念结构模型的常用工具是E—R图。32能真实充分地反映客观世界,包括事物和事物之间的联系,满足用户二、概念结构设计的方法与步骤自顶向下先定义各全局概念框架,然后逐步细化,P210图7.7a。自底向上先定义各局部应用的概念框架,然后将它们集中起来,得到全局概念结构,P210图7.7b。逐步扩张先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其它概念结构,直至总体概念结构,P210图7.7c。混合策略将自顶向下和自底向上相结合,用自顶向下策略设计一个全局的概念结构框架,以它为骨架集成由底向上策略中设计的各局部概念框架。33二、概念结构设计的方法与步骤自顶向下先定义各全局概念框架需求需求1需求n需求1.1需求1.2需求n.1需求n.2......概念模式1.1概念模式1.2概念模式n.1概念模式n.2概念模式1......概念模式n全局概念模式需求分析(自顶向下)概念结构设计(自底向上)常用方法:自顶向下分析需求与自底向上设计概念结构P211图7.834需求需求1需求n需求1.1需求1.2需求n.1需求n.2..需求分析DFDDD数据抽象、局部视图的设计视图集成分E-R图总E-R图逻辑结构设计返回用户征求意见直到满意为止概念结构设计步骤35需求分析DFD数据抽象、局部视图的设计视图集成分E-R图总E三、数据抽象与局部视图设计分类定义具有某些共同特性和行为的一组对象的类型(即定义实体)。聚集定义某一类型的组成成分(即描述实体的构成成分--型)。概括定义类型之间的一种子集联系。如学生是一个实体型,本科生、研究生也分别是一个实体型。本科生和研究生是学生的子集,学生是超类(Superclass),本科生、研究生是子类(Subclass)抽象就是选取需要关注的人、物、事和概念的特性,用各种概念精确地加以描述。抽象的方法36三、数据抽象与局部视图设计分类定义具有某些共同特性和行概念结构设计就是利用抽象机制,将需求分析得到的数据进行分类、聚集、概括,确定系统有哪些实体,各实体由哪些属性组成,实体间是否有子集关系,以及实体之间是1:1、1:n还是m:n联系,实体的码是什么,并用分E--R图表示出来。

通常的做法是:对每一个相对独立的子系统,根据其数据流图和数据字典,设计出E—R图。

关于一个对象是作为“属性”,还是作为“实体”,参照214页图7.15及相关说明。37概念结构设计就是利用抽象机制,将需求分析得到四、视图的集成多个分E-R图一次集成

复杂,难度大逐步集成用累加的方法一次集成两个分E-R图

每次只集成两个分E-R图,可以降低复杂度无论采用以上那种方式,每次集成局部E-R图都要分两步走合并解决各分E-R图的冲突,将各分E-R图合并起来生成初步的E-R图。各子系统的分E-R图设计好之后,就要将各分E-R图综合成一个系统的总E-R图。视图集成的方式有两种:38四、视图的集成多个分E-R图一次集成复杂,难度大属性冲突属性类型、表示或计量单位冲突命名冲突同名异义和异名同义结构冲突同一对象在不同应用上有不同的抽象,同一实体在不同的分E-R图中所包含的属性个数和属性排列次序不完全相同。修改和重构消除不必要的冗余属性或联系,生成基本E-R图。方法:1.分析方法:即以数据字典和数据流图为依据,根据数据字典中关于数据项之间的逻辑关系的说明来消除冗余。P222图7.28。2.用规范化理论中函数依赖的概念来消除冗余39属性冲突属性类型、表示或计量单位冲突1.分析方法:即用规范化理论中函数依赖的来消除冗余的方法如下:确定分E-R图实体之间的数据依赖

实体之间的1:1、1:n或m:n联系可以用实体码之间的函数依赖来表示求函数依赖集Fl的最小覆盖Gl,差集为D=Fl-

Gl

逐一检查D中的函数依赖,确定是否是冗余的联系,若是就去掉.40用规范化理论中函数依赖的来消除冗余的方法如下:40注意的问题:冗余的联系一定在D中,但D中的联系不一定是冗余的当实体之间存在多种联系时,要将实体之间的联系在形式上加以区分41注意的问题:41§4逻辑结构设计逻辑结构分三步进行:将概念结构转换成一般的关系、层次、网状模型将转换来的关系、层次、网状模型向特定的DBMS支持下的数据模型转换对数据模型进行优化概念结构基本E-R图一般数据模型关系、层次、网状特定的DBMS支持下的数据模型优化的数据模型转换规则DBMS的特点和限制优化方法42§4逻辑结构设计逻辑结构分三步进行:概念结构一般数据一、E-R图向关系模型的转换将E-R图中的实体、属性和实体之间的联系转换为关系模式,这种转换遵循如下规则:(1)一个实体转换成一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。(2)对于实体间的联系则有以下几种情况:1:1联系如:队长学员队任职11上任时间43一、E-R图向关系模型的转换将E-R图中的实体可以转换为一个独立的关系模式。该关系的属性由两端实体的码和联系的属性构成,任一端实体的码均可作为该关系的候选码,并分别是外码。队长(编号,姓名,性别)学员队(队号,队名,人数)

任职(编号,队号,上任时间)可以与任一端对应的关系模式合并。在某一端关系模式中加入另一端实体的码及联系本身的属性。另一端实体的码成为外码。队长(编号,姓名,性别,队号,上任时间)或学员队(队号,队名,人数,编号,上任时间)44可以转换为一个独立的关系模式。可以与任一端对应的关系模式合并1:n联系可以转换为一个独立的关系模式。该关系的属性由两端实体的码和联系的属性构成,关系的码为n端实体的码,两端实体的码分别是外码。

工作(职工号,仓库号,调入时间)可以与n端对应的关系模式合并。在n端关系模式中加入1端实体的码及联系本身的属性。1端实体的码成为外码。

职工(职工号,姓名,仓库号,调入时间)如:仓库职工工作1n调入时间451:n联系可以转换为一个独立的关系模式。如:仓库职工工作1n:m联系转换为一个独立的关系模式。该关系的属性由两端实体的码和联系的属性构成,两端实体的码共同组成关系的码,两端实体的码分别是外码。

选修(学号,课程号,成绩)如:课程学生选修nm成绩46n:m联系转换为一个独立的关系模式。如:课程学生选修nm成多元联系转换为一个独立的关系模式。该关系的属性由各实体的码和联系的属性构成,各实体的码共同组成关系的码,各实体的码分别是外码。

供应(产品号,供应商号,零件号,供应量)如:产品零件供应nm供应商供应量p具有相同码的关系模式可以合并。47多元联系转换为一个独立的关系模式。如:产品零件供应nm供应商二、数据模型的优化确定数据依赖。根据语义写出各关系模式中属性间的数据依赖。对各关系模式的数据依赖集进行极小化处理,消除冗余的联系。方法见P222下部。按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖,多值函数依赖等,确定各关系模式属于第几范式。按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定对某些模式是否要进行合并或分解。48二、数据模型的优化确定数据依赖。根据语义写出各关系模式中属性对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。常用的分解方法是水平分解和垂直分解。三、设计用户子模式使用更符合用户习惯的别名可以对不同级别的用户定义不同的View,以保证系统的安全性简化用户对系统的操作一般DBMS都提供了视图的概念,可利用这一功能为局部用户设计更合适的用户外模式,并考虑下列因素:49对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用§5物理结构设计数据库的物理设计通常分为两步:确定数据库的物理结构—存取方法和存储结构对物理结构进行评价,重点是时间和空间效率一、数据库的物理设计的内容和方法对于数据库的查询事务,需要得到如下信息:查询的关系查询条件所涉及到的属性连接条件所涉及到的属性查询的投影属性50§5物理结构设计数据库的物理设计通常分为两步:一、数对于数据更新事务,需要得到如下信息:被更新的关系每个关系上的更新操作条件所涉及到的属性修改操作要改变的属性二、关系模式的存取方法选择存取方法用于快速存取数据库中的数据。常用的存取方法有:索引存取方法—常用B+树方法对于经常要查询的属性(组)、经常用于最大值或最小值统计的属性以及经常用于连接条件的属性(组)应建立索引。51对于数据更新事务,需要得到如下信息:二、关系模式的存取方法选聚簇(Cluster)存取方法一个表(关系)只能建立一个聚簇索引。聚簇索引是将某个属性(组)上值相同的记录存放在连续的物理磁盘块中,以减少按这个属性(组)存取记录时的I/O次数和磁头定位次数。当很少对一个表增删记录和修改某个属性(组)的值时,若有下列需求,可考虑在这个属性(组)上建立聚簇索引。

经常在这个属性(组)上查询或连接

这个属性(组)的值大量重复

经常按这个属性(组)分组或排序结果52聚簇(Cluster)存取方法52HASH存取方法如果满足下列诸条件,可以考虑选择HASH存取方法。表的记录数和记录长度基本不变属性(组)只进行相等比较或等值连接三、确定数据库的存储结构确定数据的存放位置如将数据的易变部分与稳定部分、频繁存取与不频繁存取部分分开存放;将索引与数据、日志与数据、大数据库的数据分开存放到不同的磁盘上均可有效地改善系统的性能。53HASH存取方法三、确定数据库的存储结构确定数据的存放位确定系统的配置如限制同时使用数据库的用户数、每个用户可用的内存大小、封锁粒度、CPU时间片大小等。四、评价物理结构评价物理数据库的方法完全依赖于所选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。54确定系统的配置四、评价物理结构评价物理数据库§6数据库的实施和维护数据的载入和应用程序的调试组织初始数据(标准、规则、参数等)并输入数据库中(有时工作量很大)。编写程序代码并进行调试。数据库的试运行又称系统联调,测试系统的各项功能是否正常。数据库的运行和维护数据库的转储和恢复数据库的安全性、完整性控制数据库性能的监督、分析和改造数据库的重组织与重构造55§6数据库的实施和维护数据的载入和应用程序的调试55作业:P2342,6,7,12,13,18,19

56作业:P23456演讲完毕,谢谢观看!演讲完毕,谢谢观看!第七章数据库设计本章要求:1、掌握数据库设计的基本步骤2、掌握各阶段的任务、方法和常用的技术手段3、能够针对小型应用问题进行数据库设计和实现58第七章数据库设计本章要求:1、掌握数据库设计的基本步骤1本章内容:§1数据库设计概述§2需求分析§3概念结构设计§4逻辑结构设计§5数据库的物理设计§6数据库的实施和维护59本章内容:§1数据库设计概述§2需求分析§3§1数据库设计概述

数据库设计是指对一个给定的应用环境,构造优化的数据库模式,建立数据库及其应用系统,使之能够有效地存取数据,满足用户的应用需求。数据库设计的目标是为用户提供一个针对具体应用的高效的数据管理和操作环境。一、数据库设计的特点大型数据库的设计和开发是涉及多学科的综合性技术,其主要特点体现在:◆“三分技术,七分管理,十二分基础数据”

◆数据结构设计和处理行为设计相结合60§1数据库设计概述数据库设计是指对一二、数据库设计方法进行数据库设计需要多方面的技术和知识,包括:计算机基础知识软件工程的原理和方法程序设计方法和技巧数据库基本知识数据库设计技术应用领域的知识61二、数据库设计方法4二、数据库设计方法1、新奥尔良方法该方法将数据库设计分为需求分析、概念设计、逻辑设计和物理设计四个阶段,运用软件工程的方法,通过一定的辅助手段实现每一过程。2、E-R模型法用E-R模型来描述数据库的概念模型,是概念设计阶段常用的方法。62二、数据库设计方法53、3NF设计法用关系数据库理论设计数据库的逻辑模式,并使每个模式最低为3NF,是逻辑设计阶段常用的方法。4、ODL(ObjectDefinitionLanguage)法用面向对象的概念和术语来描述数据库的对象结构,以建设面向对象的数据库。随着技术的进步,传统的手工方式已不能满足数据库设计的需要,数据库设计工具已经实用化和产品化,如:

ORACLE公司Designer2000Sybase公司的PowerDesigner三、数据库设计的基本步骤633、3NF设计法6需求收集和分析应用需求(数据、处理)设计概念结构设计逻辑结构数据模型优化设计物理结构评价设计、性能检测物理实现试验性运行使用、维护数据库转换规则、DBMS功能、优化方法应用要求、DBMS详细特征需求分析阶段概念设计阶段逻辑设计阶段物理设计阶段数据库实施阶段数据库运行、维护不满意64需求收集和分析应用需求(数据、处理)设计概念结构设计逻辑结构设计阶段

设计描述数据处理需求分析

数据字典、全系统中数据项、数据流、数据存储的描述数据流图和判定表(判定树)、数据字典中处理过程的描述

概念模型(E-R图)

数据字典

系统说明书包括:①新系统要求、方案和概图②反映新系统信息流的数据流图

某种数据模型关系非关系

系统结构图(模块结构)

存储安排方法选择存取路径建立

模块设计IPO表实施阶段

编写模式装入数据数据库试运行

程序编码、编译联结、测试运行、维护

性能监测、转储/恢复数据库重组和重构

新旧系统转换、运行、维护(修正性、适应性、改善性维护)

IPO表……输入:输出:处理:Creat……Load……Main()……if……then……end分区1

分区2……概念结构设计逻辑结构设计物理设计65设§2需求分析了解将要开发的系统要管理什么样的数据(数据要求)、对这些数据要进行怎样的处理(处理要求)、系统的安全性和完整性方面有什么样的要求等。要彻底弄清这些情况往往是很困难的。因为用户可能不知道计算机能做什么,不能做什么,往往不能准确、全面地表达自己的需求,而设计员可能不了解领域专业知识,不能够准确领会用户的意图。因此必须经过充分交流、讨论才能达成共识。一、需求分析的任务66§2需求分析了解将要开发的系统要管理二、需求分析的方法调查组织机构情况了解该组织的部门组成情况,各部门的职责,为分析信息流程做准备调查各部门的业务活动情况(重点)了解各部门的输入和使用什么样的数据如何加工这些数据输出什么信息输出到什么部门信息输出结果的格式需求分析步骤:67二、需求分析的方法调查组织机构情况需求分析步骤:10协助用户明确对新系统的各种要求(重点)信息要求、处理要求、安全性与完整性要求确定新系统的边界确定那些由计算机来完成,那些由人工来完成。68协助用户明确对新系统的各种要求(重点)11需求分析调查方法:跟班作业参加业务工作来了解业务活动的情况,此种方法可以准确地了解用户的需求,但是比较耗费时间。开会调查召集用户开座谈会,了解业务活动情况,座谈时,参加者之间可以相互启发。请专人介绍请熟悉业务情况的专家或用户代表介绍业务情况。69需求分析调查方法:跟班作业参加业务工作来了解业务活动的情询问对尚存有疑惑的问题,或用户没有提出但认为应该考虑的问题,可随时询问。设计调查表请用户填写如果调查表设计的合理,这种方法是很有效,也易于为用户接受。查阅记录通过查阅业务活动记录和各种数据报表,了解业务的活动内容和规律。

做需求调查时,往往需要同时采用上述多种方法。但是无论采用何种方法,都需要用户的配合。70询问对尚存有疑惑的问题,或用户没有提出但认为应该考虑的问需求分析结果的表示了解用户需求后,通过分析和总结,将需求分析结果用数据流图和数据字典表示出来。71需求分析结果的表示了解用户需求后,通过分析和

数据流图用于描述信息在系统中流动和处理的情况,它是逻辑系统的图形表示。设计人员将他对系统的认识和设想用数据流图描述出来,供人们审查、确认和参阅。设计数据流图时只需考虑系统要完成的基本逻辑功能,不必考虑如何具体地实现这些功能。三、数据流图(DataFlowDiagram,DFD)72数据流图用于描述信息在系统中流动和处理的情况由于数据流图不包含任何物理实现的细节,所以即使是非计算机人员也容易理解和评价。数据流图中的数据用数据字典描述,而处理一般用判定树来表示。数据流图中的处理可以是一个简单的处理程序,也可以是一个复杂的处理过程。73由于数据流图不包含任何物理实现的细节,所以即数据流图中的符号数据源点或终点数据加工或处理数据存储数据流T*ABC同时输入A、B后变成CT+ABC输入A或/和B后变成CT+ABC仅输入A、B之一后变成CT*将A变成B和CABCT+ABC将A变成B或/和CT+ABC将A变成B或C之一74数据流图中的符号数据源点或终点数据加工或处理数据存储数据流T举例:对某工厂仓库和采购部两个部门,要开发一个定货系统,了解到如下业务情况:仓库管理员将零件入库或出库称为事务,当发现库存数量小于临界值时,自动生成定货信息,包括零件编号、名称、数量、目前价格、主供货者、次供货者。根据定货信息生成定货报表交采购员采购零件。75举例:18举例:仓库管理员定货系统采购员出入库单定货报表仓库管理员出入库单1事务处理2产生报表采购员定货报表库存清单库存清单D1定货信息D2定货信息定货信息明细帐D0明细信息76举例:仓库定货系统采购员出入库单定货报表仓库出入库单12采购仓库管理员出入库单1.1接收事务2产生报表采购员定货报表库存清单库存清单D1定货信息D2定货信息定货信息明细信息1.2更新库存1.3处理定货明细帐D0明细信息77仓库出入库单1.12采购员定货报表库存清单库存清单D1定货信四、数据字典(DataDictionary,DD)

数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和分析之后所获得的主要成果,数据字典在数据库设计中占有很重要的作用。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分。78四、数据字典(DataDictionary,DD)1.数据项

数据项是不可再分的数据单位。数据项的描述为:数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其它数据项的逻辑关系,数据项之间的联系}791.数据项222.数据结构

数据结构可以由数据项或其它数据结构组成,用于反映数据之间的组合关系。数据结构的描述为:数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}802.数据结构233.数据流是数据结构在系统内的传输路径,描述为:数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}数据流来源是说明该数据流来自哪个过程数据流去向是说明该数据流将到哪个过程去平均流量是指在单位时间(每天、每周、每月等)里的传输次数高峰期流量则是指在高峰时期的数据流量813.数据流数据流来源是说明该数据流来自哪个过程244.数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。可以是手工文档或手工凭单,也可以是计算机文档。数据存储描述={数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}流入的数据流:指出数据来源流出的数据流:指出数据去向数据量:每次存取多少数据,每天(或每小时、每周等)存取几次等信息存取方法:批处理/联机处理;检索/更新;顺序检索/随机检索824.数据存储流入的数据流:指出数据来源25简要说明:说明该处理过程的功能及处理要求,功能是指该处理过程用来干什么处理要求包括处理频度要求,如单位时间里处理多少事务、多少数据量、响应时间。5.处理过程对处理过程进行简明扼要的描述,具体处理逻辑用判定树表示。处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}83简要说明:说明该处理过程的功能及处理要求,功能是指该处理过程举例:数据项名称说明类型长度取值取值含义编号唯一地标识某字符40101~前两位为类别零件的关键字0899后两位为序号名称零件名称字符20数量某种零件数字在D0中,负数表示的数量出库价格目前价格数字6,2主商主供货商字符20次商次供货商字符20操作员管理员字符8审批领导字符8经手人字符8采购员,领取人日期日期84举例:数据项名称说明数据存储名称说明入流出流组成存取方式出入外部管理接收编号,名称,数量,经手人,留存库单员事务审批领导D0明细更新日期,编号,数量,操作员联机帐库存D1库存更新定货编号,名称,数量,价格,主商,联机清单库存处理次商D2定货定货产生上述项+操作员,经手人,联机信息处理报表日期定货外部产生采购同上留存根报表报表员85数据存储名称说明入流出流组成处理过程输入输出功能接收事务出入库单明细信息显示界面接收数据生成明细信息更新库存明细信息D0,D1根据明细信息登记明细帐并修改库存清单处理定货D1D2当库存数量低于预设的阈值时生成定货信息,每天1次产生报表D2定货报表将定货信息以规定的报表格式输出2份,每天1次处理过程86处理过程输入五、判定树以树型结构描述复杂处理过程中的详细处理细节,给出条件与处理方法之间的对应关系。如飞机行李费计算方法可描述如下:行李费算法行李重量W>30行李重量W≤30国内乘客外国乘客头等仓其他仓头等仓其他仓残疾乘客--(W-30)×2正常乘客--(W-30)×4免费残疾乘客--(W-30)×3正常乘客--(W-30)×6残疾乘客--(W-30)×4正常乘客--(W-30)×8残疾乘客--(W-30)×6正常乘客--(W-30)×1287五、判定树以树型结构描述复杂处理过程中的详细什么是概念结构设计?需求分析阶段描述的用户应用需求是现实世界的具体需求将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。概念结构设计是整个数据库设计的关键§3概念结构设计88什么是概念结构设计?§3概念结构设计31能真实充分地反映客观世界,包括事物和事物之间的联系,满足用户对数据的处理要求易于理解从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与是数据库的设计成功的关键。易于更改当应用环境和应用要求改变时,容易对概念模型修改和扩充。易于向关系、网状、层次等各种数据模型转换将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。一、概念结构的主要特点:描述概念结构模型的常用工具是E—R图。89能真实充分地反映客观世界,包括事物和事物之间的联系,满足用户二、概念结构设计的方法与步骤自顶向下先定义各全局概念框架,然后逐步细化,P210图7.7a。自底向上先定义各局部应用的概念框架,然后将它们集中起来,得到全局概念结构,P210图7.7b。逐步扩张先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其它概念结构,直至总体概念结构,P210图7.7c。混合策略将自顶向下和自底向上相结合,用自顶向下策略设计一个全局的概念结构框架,以它为骨架集成由底向上策略中设计的各局部概念框架。90二、概念结构设计的方法与步骤自顶向下先定义各全局概念框架需求需求1需求n需求1.1需求1.2需求n.1需求n.2......概念模式1.1概念模式1.2概念模式n.1概念模式n.2概念模式1......概念模式n全局概念模式需求分析(自顶向下)概念结构设计(自底向上)常用方法:自顶向下分析需求与自底向上设计概念结构P211图7.891需求需求1需求n需求1.1需求1.2需求n.1需求n.2..需求分析DFDDD数据抽象、局部视图的设计视图集成分E-R图总E-R图逻辑结构设计返回用户征求意见直到满意为止概念结构设计步骤92需求分析DFD数据抽象、局部视图的设计视图集成分E-R图总E三、数据抽象与局部视图设计分类定义具有某些共同特性和行为的一组对象的类型(即定义实体)。聚集定义某一类型的组成成分(即描述实体的构成成分--型)。概括定义类型之间的一种子集联系。如学生是一个实体型,本科生、研究生也分别是一个实体型。本科生和研究生是学生的子集,学生是超类(Superclass),本科生、研究生是子类(Subclass)抽象就是选取需要关注的人、物、事和概念的特性,用各种概念精确地加以描述。抽象的方法93三、数据抽象与局部视图设计分类定义具有某些共同特性和行概念结构设计就是利用抽象机制,将需求分析得到的数据进行分类、聚集、概括,确定系统有哪些实体,各实体由哪些属性组成,实体间是否有子集关系,以及实体之间是1:1、1:n还是m:n联系,实体的码是什么,并用分E--R图表示出来。

通常的做法是:对每一个相对独立的子系统,根据其数据流图和数据字典,设计出E—R图。

关于一个对象是作为“属性”,还是作为“实体”,参照214页图7.15及相关说明。94概念结构设计就是利用抽象机制,将需求分析得到四、视图的集成多个分E-R图一次集成

复杂,难度大逐步集成用累加的方法一次集成两个分E-R图

每次只集成两个分E-R图,可以降低复杂度无论采用以上那种方式,每次集成局部E-R图都要分两步走合并解决各分E-R图的冲突,将各分E-R图合并起来生成初步的E-R图。各子系统的分E-R图设计好之后,就要将各分E-R图综合成一个系统的总E-R图。视图集成的方式有两种:95四、视图的集成多个分E-R图一次集成复杂,难度大属性冲突属性类型、表示或计量单位冲突命名冲突同名异义和异名同义结构冲突同一对象在不同应用上有不同的抽象,同一实体在不同的分E-R图中所包含的属性个数和属性排列次序不完全相同。修改和重构消除不必要的冗余属性或联系,生成基本E-R图。方法:1.分析方法:即以数据字典和数据流图为依据,根据数据字典中关于数据项之间的逻辑关系的说明来消除冗余。P222图7.28。2.用规范化理论中函数依赖的概念来消除冗余96属性冲突属性类型、表示或计量单位冲突1.分析方法:即用规范化理论中函数依赖的来消除冗余的方法如下:确定分E-R图实体之间的数据依赖

实体之间的1:1、1:n或m:n联系可以用实体码之间的函数依赖来表示求函数依赖集Fl的最小覆盖Gl,差集为D=Fl-

Gl

逐一检查D中的函数依赖,确定是否是冗余的联系,若是就去掉.97用规范化理论中函数依赖的来消除冗余的方法如下:40注意的问题:冗余的联系一定在D中,但D中的联系不一定是冗余的当实体之间存在多种联系时,要将实体之间的联系在形式上加以区分98注意的问题:41§4逻辑结构设计逻辑结构分三步进行:将概念结构转换成一般的关系、层次、网状模型将转换来的关系、层次、网状模型向特定的DBMS支持下的数据模型转换对数据模型进行优化概念结构基本E-R图一般数据模型关系、层次、网状特定的DBMS支持下的数据模型优化的数据模型转换规则DBMS的特点和限制优化方法99§4逻辑结构设计逻辑结构分三步进行:概念结构一般数据一、E-R图向关系模型的转换将E-R图中的实体、属性和实体之间的联系转换为关系模式,这种转换遵循如下规则:(1)一个实体转换成一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。(2)对于实体间的联系则有以下几种情况:1:1联系如:队长学员队任职11上任时间100一、E-R图向关系模型的转换将E-R图中的实体可以转换为一个独立的关系模式。该关系的属性由两端实体的码和联系的属性构成,任一端实体的码均可作为该关系的候选码,并分别是外码。队长(编号,姓名,性别)学员队(队号,队名,人数)

任职(编号,队号,上任时间)可以与任一端对应的关系模式合并。在某一端关系模式中加入另一端实体的码及联系本身的属性。另一端实体的码成为外码。队长(编号,姓名,性别,队号,上任时间)或学员队(队号,队名,人数,编号,上任时间)101可以转换为一个独立的关系模式。可以与任一端对应的关系

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论