【梳理】数据库系统概论 第7章 数据库设计 7.1 数据库设计概述 7.2 需求分析
教材:王珊 萨师煊 编著 数据库系统概论(第5版) 高等教育出版社
注:文档高清截图在后
第7章 数据库设计
7.1 数据库设计概述
1、数据库应用系统,通常是指使用数据库的各类信息系统,比如以数据库为基础的各种管理信息系统、办公自动化系统、地理信息系统(GIS)、电子政务系统、电子商务系统等。
2、广义的数据库设计指数据库及其应用系统的设计。狭义来讲是设计数据库本身,即设计数据库的各级模式并建立数据库,这属于数据库应用系统设计的一部分。数据库设计(database design)的一般定义是:对给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能有效存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。信息管理要求是指应该存储和管理哪些数据对象;数据操作要求是指增删改查统计等。
3、数据库设计的特点之一是:三分技术、七分管理、十二分基础数据。管理包括将数据库建设作为大型工程项目进行管理,以及企业的业务管理。“十二分基础数据”强调数据的收集、整理、组织、更新是数据库建设的重要环节。初期进行数据收集和入库,日后更需要不断加入新数据,把历史数据加入数据库仓库中,以备分析挖掘和改进业务管理,提高竞争力。
4、数据库设计应和应用系统设计相结合,即整个设计过程要把数据库结构设计和对数据的处理设计密切结合起来。这是数据库设计的特点之二。
5、早期的数据库设计主要采用手工与经验相结合的方法。设计的质量往往与设计人员的经验和水平有直接关系。缺乏科学理论和工程方法的支持,设计质量难以保证。因此早期数据库常常在运行一段时间后发现各种问题,不得不修改甚至重新设计,极大增加了维护代价。为此,清晰、明确、通用、更易于遵循的数据库设计方法被探索出来。比如各种范式、新奥尔良(New Orleans)方法、E-R模型、面向对象、统一建模语言(Unified Model Language,UML)方法等。
6、数据库设计分为6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。需求分析和概念结构设计可以独立于任何DBMS进行。而逻辑和物理结构设计与选用的DBMS密切相关。
数据库设计开始前,必须先选定参加设计的人员:系统分析人员、数据库设计人员、应用开发人员、数据库管理员(DBA)和用户代表。系统分析和数据库设计人员是数据库设计的核心人员,自始至终参与设计,其水平将决定数据库质量。用户和DBA在数据库设计中也举足轻重,主要参加需求分析与运维,其积极参与(不仅是配合)不但能加速数据库设计,而且也是决定数据库设计质量的重要因素。应用开发人员(程序员和操作员)分别负责编制程序和准备软硬件环境,在系统实施阶段参与进来。
7、需求分析。进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,是最困难最耗时的异步。需求分析的充分性与准确性将决定设计速度与质量,如果需求分析做不好,可能导致整个数据库设计返工重做。
8、概念结构设计是数据库设计的关键。它通过对用户需求进行综合、归纳和抽象,形成一个与DBMS无关的概念模型。
9、逻辑结构设计将概念结构转换为DBMS支持的数据模型并优化。
10、物理结构设计为逻辑数据模型选择最合适的物理结构(包括存储结构与存储方法)。
11、在数据库实施阶段,设计人员运用DBMS提供的数据库语言及其宿主语言,根据逻辑和物理设计的结果建立数据库,编写与调试应用程序,组织数据入库,并试运行。
12、数据库运行和维护。数据库应用系统经过试运行后即可正式运行。数据库系统运行过程中,必须不断评估、调整与修改。
13、整个数据库设计的过程,数据库设计和数据处理的设计被紧密结合,两方面的需求分析、抽象、设计、实现是同步进行的,相互参照和补充。
7.2 需求分析
1、需求分析的任务是:通过详细调查喜爱你是世界要处理的对象(组织、部门、企业、事业单位等),充分了解原系统(无论是人工的还是计算机的)的工况,明确各种需求,在此基础上确定新系统的功能。新系统必须充分考虑今后一切可能的扩充和改变,不能仅按当前的需求来设计数据库。
2、调查的重点是数据和处理,得到用户对数据库的如下要求:
(1)信息要求。用户需要从数据库中获得信息的内容与性质。由信息要求可以到处数据要求,即需要存储哪些数据。
(2)处理要求。指用户要完成的数据处理的具体功能,以及对处理性能的要求。
(3)安全性与完整性要求。
通常,用户不具备足够的计算机知识,就无从知晓计算机能够为自己做什么,不能做什么,从而不能准确表达需求,所提的需求往往不断变化。设计人员也缺少用户的专业知识,不易理解用户的真正需求,甚至误解了需求。因此,设计人员必须与用户不断深入交流,才能逐步确定实际需求。
3、调查用户需求的具体步骤:
(1)调查组织机构情况,比如部门组成与职责。
(2)调查各部门的业务活动情况。包括各部门输入、使用什么数据,如何加工处理这些数据,要输出什么信息到什么部门,输出格式等。
(3)在熟悉业务的基础上,协助用户明确对新系统(数据库)的各种要求:信息要求、处理要求、安全性与完整性要求等。
(4)确定新系统的边界:确定哪些功能由计算机完成而哪些功能不应由计算机完成(应人工完成)。
常用的调查方法有:
(1)跟班作业。亲身参加业务工作了解业务活动。
(2)调查会议,通过与用户座谈来了解业务活动情况与用户需求。
(3)请专人介绍。
(4)找专人询问。
(5)设计调查表请用户填写。
(6)查阅原系统的数据记录。
4、调查需求以后,还需要进一步分析并明确需求。结构化分析(Structured Analysis,SA)是简单实用的一种方法,从最上层的系统组织机构入手,自顶向下,逐层分解来分析系统。
5、数据字典是进行详细的数据收集和分析获得的主要成果,是数据库中数据的描述,即元数据,而非数据本身。数据字典是在需求分析阶段建立的,在数据库设计中不断修改、充实、完善。它在数据库设计中占有很重要的地位。
数据字典通常包括:
(1)数据项。这是不可再分的数据单位。数据项描述 = {项名,含义,别名,数据类型,长度,取值范围,取值含义,与其它数据项的逻辑关系,数据项之间的联系,……}。取值范围、与其它数据项的逻辑关系定义了完整性约束条件,是设计数据检验功能的语句。可以用关系规范化理论为直到,用数据依赖分析表示数据项的联系。这些按实际语义写出的依赖,是逻辑设计阶段数据模型优化的依据。
(2)数据结构。它反映了数据之间的组合方式。一个数据结构可以由若干数据项和 / 或若干数据结构组成。对数据结构的描述通常有:结构名、含义、组成。
(3)数据流。数据流是指数据结构在系统内的传输路径。其描述一般含有:流名称、说明、来源、去向、组成(数据结构)、平均流量、峰值流量。流量是单位时间的传输次数或传输数据量。
(4)数据存储。这是数据结构停留或保存的地方,也是数据流的来源和去向之一。它可以是手工文档或凭据,也可以是电子文档。对数据存储的描述一般包括:存储名、说明、编号、输入数据流、输出数据流、组成(数据结构)、数据量、存储存取频度、存取方式。存取频度指的是单位时间内的存取次数和数据量等。存取方式指:批处理还是联机处理、检索(顺序检索、随机检索)还是更新,等。
(5)处理过程。其具体逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息即可。通常包括:处理过程名、说明、输入、输出、处理(简要说明处理过程)。简要说明主要包含处理功能与处理要求。处理要求包括频度、响应时间等。处理要求作为后续物理设计的输入与性能评价的标准。
需求收集和分析得到的基础数据是下一步进行概念设计的基础。
5、需求分析阶段收集的数据要包括将来涉及的数据。设计人员应充分考虑一切可能的扩充与改变,使设计易于更改、系统易于扩充。而且,数据库设计必须强调用户的参与。设计人员要和用户取得共同语言,帮助不熟悉计算机的用户建立数据库环境下的共同概念,并对设计工作的最终结果承担共同的责任。