7.1 数据库设计概述
数据库设计:
广义地讲,设计整个数据库应用系统。
侠义地讲,是指设计数据库本身。
一般性定义:数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
信息管理要求:在数据库中应该存储和管理哪些数据对象 。
数据操作要求:对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作。
设计目的:数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境 (数据库数据的存取效率高、数据库存储空间的利用率高、数据库系统运行管理的效率高)。
7.1.1 数据库设计的特点
-
数据库建设的基本规律
三分技术,七分管理,十二分基础数据。十二分基础数据强调了数据的收集、入库、更新维护是数据库建设中的重要环节。 -
结构(数据)设计和行为(处理)设计相结合
将数据库结构设计和数据处理设计密切结合
7.1.2 数据库设计方法
基于E-R模型的设计方法:概念设计阶段广泛采用
3NF(第三范式)的设计方法:用关系数据理论为指导来设计数据库的逻辑结构,是逻辑阶段可采用的有效方法
ODL(Object Definition Language)方法:面向对象的数据库设计方法
统一建模语言(UML)方法
7.1.3 数据库设计的基本步骤
数据库设计分6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。
需求分析和概念设计独立于任何数据库管理系统,逻辑设计和物理设计与选用的DBMS密切相关。
7.1.4 数据库设计过程中的各级模式
数据库设计不同阶段形成的数据库各级模式
7.2 需求分析
需求分析就是分析用户的要求,是设计数据库的起点,结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。
7.2.1 需求分析的任务
-
需求分析的重点
详细调查现实世界要处理的对象(组织、部门、企业等)
充分了解原系统(手工系统或计算机系统)工作概况
明确用户的各种需求
在此基础上确定新系统的功能
新系统必须充分考虑今后可能的扩充和改变
2.需求分析的重点
调查的重点是“数据”和“处理”,获得用户对数据库要求。 -
信息要求
用户需要从数据库中获得信息的内容与性质,由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。 -
处理要求
用户要完成什么处理功能,对处理的响应时间的要求,对处理方式的要求(批处理 / 联机处理) -
安全性与完整性要求
-
需求分析的难点
用户缺少计算机知识,不能准确地表达自己的需求,他们所提出的需求往往不断地变化。
设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求
解决方法:设计人员必须不断深入地与用户进行交流,才能逐步确定用户的实际需求。
7.2.2 需求分析的方法
1.常用调查方法
(1)跟班作业:通过亲身参加业务工作了解业务活动的情况
(2)开调查会:通过与用户座谈来了解业务活动情况及用户需求
(3)请专人介绍
(4)询问:对某些调查中的问题,可以找专人询问
(5)设计调查表请用户填写:调查表设计合理,则很有效
(6)查阅记录:查阅与原系统有关的数据记录
- 分析方法
结构化分析方法(Structured Analysis,简称SA方法),SA方法从最上层的系统组织机构入手,采用自顶向下、逐层分解的方式分析系统。
首先把任何一个系统都抽象为下图所示的形式。
分解处理功能和数据
将处理功能的具体内容分解为若干子功能,再将每个子功能继续分解,直到把系统的工作过程表达清楚为止。
在处理功能逐步分解的同时,其所用的数据也逐级分解,形成若干层次的数据流图,数据流图表达了数据和处理过程的关系。
SA方法中的表达方法
处理逻辑:用判定表或判定树来描述
数据:用数据字典来描述
将分析结果再次提交给用户,征得用户的认可