数据库设计
数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
- 目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境
数据库建设的基本规律:
- 三分技术,七分管理,十二分基础数据
- 结构(数据)设计和行为(处理)设计相结合
数据库设计方法:
-
手工与经验相结合方法
设计质量与设计人员的经验和水平有直接关系
数据库运行一段时间后常常不同程度地发现各种问题,增加了维护代价 -
规范设计法
基本思想:过程迭代和逐步求精 -
新奥尔良(New Orleans)方法
将数据库设计分为若干阶段和步骤
自顶向下、分层实现、逐步求精 -
基于E-R模型的数据库设计方法
概念设计阶段广泛采用 -
3NF(第三范式)的设计方法
逻辑阶段可采用的有效方法 -
ODL(Object Definition Language)方法
面向对象的数据库设计方法
数据库设计的基本步骤
- 需求分析
- 概念结构设计
- 逻辑结构设计
- 物理结构设计
- 数据库实施
- 数据库运行和维护
需求分析和概念结构设计独立于任何数据库管理系统
逻辑设计和物理设计与选用的DBMS密切相关
需求分析
结构化分析方法(Structured Analysis,简称SA方法):一种简单实用的方法从最上层的系统组织机构入手
- 自顶向下、逐层分解分析系统
结构化分析方法的基本思想是“分解”和“抽象”。
- 分解:对于一个复杂的系统,为了将复杂性降低到可以掌握的程度,可以把大问题分解成若干小问题,然后分别解决
- 抽象:分解可以分层进行,即先考虑问题最本质的属性,暂把细节略去,以后再逐层添加细节,直至涉及到最详细的内容,这种用最本质的属性表示一个系统的方法就是“抽象”
SA法的步骤:
- 建立当前系统的“具体模型”
- 抽象出当前系统的逻辑模型
- 建立目标系统的逻辑模型
- 为了对目标系统做完整的描述,还需要考虑人机界面和其他一些问题
SA法的描述方法:
- 分层的数据流图
- 数据词典
- 描述加工逻辑的结构化语言、判定表及判定树
数据字典:
- 数据字典是各类数据描述的集合
- 数据字典是进行详细的数据收集和数据分析所获得的主要结果
- 数据字典在数据库设计中占有很重要的地位
数据字典的内容:
- 数据项
- 数据结构
- 数据流
- 数据存储
- 处理过程
数据项是数据的最小组成单位。
若干个数据项可以组成一个数据结构。
数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
数据项是不可再分的数据单位
对数据项的描述:
数据项描述={ 数据项名,数据项含义说明,别名,
数据类型,长度,取值范围,取值含义,
与其他数据项的逻辑关系,数据项之间的 联系 }
取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件
数据结构反映了数据之间的组合关系
一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。
对数据结构的描述:
数据结构描述={数据结构名,含义说明,
组成:{数据项或数据结构}}
数据流是数据结构在系统内传输的路径
对数据流的描述:
数据流描述={数据流名,说明,数据流来源,
数据流去向,组成:{数据结构},平均流量,高峰期流量}
数据流来源是说明该数据流来自哪个过程
数据流去向是说明该数据流将到哪个过程去
平均流量是指在单位时间(每天、每周、每月等)里的传输次数
高峰期流量则是指在高峰时期的数据流量
处理过程的具体处理逻辑一般用判定表或判定树来描述
数据字典中只需要描述处理过程的说明性信息。
处理过程说明性信息的描述
处理过程描述={处理过程名,说明,
输入:{数据流},输出:{数据流},处理:{简要说明}}
数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据本身将存放在物理数据库中,由数据库管理系统管理。数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员在数据库设计、实现和运行阶段控制有关数据提供依据。