数据库原理笔记C08 数据库系统的设计
8.1 数据库系统设计概述
需求分析阶段:需求收集和分析,得到
数据字典
和数据流图
。概念结构设计阶段:对用户需求综合、归纳与抽象,形成概念模型,用
E-R图
表示。逻辑结构设计阶段:将概念结构转换为某个DBMS所支持的
关系模型
/数据模型
,对关系模型进行优化。物理设计阶段:根据具体计算机系统(DBMS和硬件)的特点,为给定的数据库模型确定合理的
存储结构
和存取方法
,并对物理结构进行评价。数据库实施阶段:建立数据库,编制与调试应用程序,组织数据入库,程序试运行。
数据库运行和维护阶段:数据库应用系统投入运行后,需要进行备份和维护,对于出现的问题需要不断调整和修改,直到满足用户需求。
8.2 系统需求分析
需求分析的必要性
需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
需求分析的方法
- 调查组织机构情况。了解组织部门的组成情况,各部门的职责等。
- 调查各部门的业务活动情况。包括了解各个部门输入和使用什么数据、如何加工处理这些数据、输出什么信息、输出到什么部门、输出结果的格式是什么等。
- 在熟悉业务活动的基础上,协助用户明确对新系统的各种要求。
数据流图和数据字典
需求分析阶段收集到的基础数据用数据字典和一组DFD表达,它们是下一步进行概念设计的基础。
8.3 概念结构的设计
概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法,将其抽象为一个不依赖于任何具体机器的数据模型,即概念模型。概念模型又称概念结构,它可用 E-R图进行描述。
目前还没确定数据库的类型(eg. 关系数据库..etc)
概念模型的特点、设计方法和步骤
概念模型的特点:
能真实和充分反映现实设计;
能满足用户对数据处理的需求;
易于被用户理解,用户才可参与到数据库设计中;
易于更改,以满足用户需求的修改和扩充;易于向数据模型转换。
概念模型的设计方法:
自顶向下方法
自定向上方法
逐步扩张方法
混合策略方法
数据抽象与局部视图设计
- 数据抽象的三种方法
- 分类
- 聚集
- 概括
- 局部视图的设计
- 明确局部应用的范围
- 设计分E-R图
- 确定实体之间的联系,产生局部模型
视图的集成
- 合并分E-R图,生成初步E-R图:分E-R图间的冲突主要由属性冲突、命名冲突和结构重提三种。
- 消除不必要的冗余,设计基本E-R图:用分析方法消除冗余;用规范化理论消除冗余。
8.4 数据库逻辑结构的设计
数据库逻辑结构设计的主要任务:将概念模型转换为某一DBMS所支持的数据类型
###逻辑结构设计过程
- 选择最合适的数据模型,并按转换规则将概念模型转换为选定的数据模型
- 从支持这种数据模型的DBMS中选出最佳的DBMS,并根据选定DBMS的特点和限制对数据模型进行优化
- 通过优化方法将其转换为优化的数据模型
###概念模型转换为关系模型
实体集的转换规则
一个实体集转换为关系模型中的一个关系,实体的属性就是关系的属性,实体的标识符就是关系的键,关系的结果就是关系模式。
实体集间联系的转换规则
- 1 : 1 联系的转换方法
- 将一个 1 : 1 联系转换为一个独立的关系:与该联系相连的各实体集的键以及联系本身的属性转换为关系,且每个实体的键均是该关系的候选键。
- 将一个 1 : 1 联系与任意一端实体集所对应的关系合并:在被合并关系中增加属性,新增的属性为联系本身的属性和联系相关的另一个实体集的键。
- 1 : n 联系的转换方法
- 将一个 1 : n 联系转换为一个独立的关系:与该联系相连的各实体集的键以及联系本身的属性转换为关系,且该关系的键为 n 端实体的键。
- 将一个 1 : n联系与 n 端实体集所对应的关系合并:在n端实体集增加新属性,新属性由联系对应的 1 端实体集的键和联系自身的属性构成,新增属性后原关系的键不变。
- m : n 联系的转换方法
- 将一个 m : n 联系转换为一个关系:与该联系相连的各实体集的键以及联系本身的属性转换为关系的属性,新关系的键为两个相连实体键的组合。(该键为多属性构成的组合键)
8.5 数据库物理结构的设计
物理设计阶段:根据具体计算机系统(DBMS和硬件)的特点,为给定的数据库模型确定合理的存储结构
和存取方法
,并对物理结构进行评价。希望设计的物理数据库结构能够满足事务在数据库上:
- 运行相应时间少
- 存储空间利用率高
- 事务吞吐量大
确定关系模式的存取方法:1.索引法 2.聚簇法
确定关系模式的存储结构:确定数据的存放位置和结构。(启发性规则P257)
评价物理结构:物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡。评价方法完全依赖于所用的DBMS,主要从定量估算各种方案的存储结构、存储时间和维护代价入手,对估算结果进行权衡比较,取一个较优合理的物理结构。根据用户需求修改设计。
8.6 数据库的实施和维护
数据库的实施
数据库的实施阶段任务:
- 设计人员用DBMS提供的数据定义(DDL)语言和其他使用程序将数据库逻辑设计和物理设计结果严格描述出来,使数据模型成为DBMS可以接受的源代码
- 经过调试产生目标模式,完成建立定义数据库结构的工作
- 组织数据入库,并运行应用程序进行调试
相当于软件工程中代码编写和调试的阶段
组织数据入是数据库实施阶段最主要的工作:手工逐条录入、数据录入子系统
数据库的试运行
- 实际运行数据库应用程序,执行对数据库的各项操作,测试应用程序功能是否满足要求
- 测试系统的性能指标,分析是否符合设计目标
注意:(1)数据库的试运行操作应分步进行 (2)数据库的实施和调试不可能一次完成
数据库的运行和维护
数据库的维护工作主要包括以下几方面:
- 数据库的转储和恢复
- 对数据库的安全性和完整性进行控制
- 对数据库的性能进行监督、分析和改造
- 对数据库进行**(部分)重组织和重构造**(数据库运行一段时间后,由于记录不断增删改会使数据库的物理存储情况变坏)