数据库系统原理(第三章数据库设计 )
一、数据库设计概述
数据库的生命周期
数据库设计的目标:
- 满足应用功能需求(存、取、删、改),
- 良好的数 据库性能(数据的高效率存取和空间的节省 共享性、完整性、一致性、安全保密性)
数据库设计的内容
数据库设计的方法
- 直观设计法( 最原始的数据库设计方法)
- 规范设计法:(新奥尔良设计方法:需求分析、概念结构设计、逻辑结构设计、物理结构设计 ; 基于E-R模型的数据库设计方法 ;基于第三范式的设计方法,是一类结构化设计方法)
- 计算机辅助设计法( 辅助软件工程工具)
数据库设计的过程
二、数据库设计的基本步骤
需求分析(数据库设计的起点)
- 目标:是了解与分析用户的信息及应用处理的要求,并将结果按一定格式整理 而形成需求分析报告。
- 作用:该分析报告是后续概念设计、逻辑设计、物理设计、数据库建立与维护的依据。
需求分析的步骤:
- 确定数据库范围(数据库的第一项工作)
- 应用过程分析---了解并分析数据与数据处理间的关系
- 收集与分析数据
- 编写需求分析报告
********************确定数据库范围(数据库的第一项工作)**************
(1)有效地利用计算机设备及数据库系统的潜在能力; (2)提高数据库的应变能力; (3)避免应用过程中对数据库做太多或太大的修改; (4)延长数据库的生命周期。
********************应用过程分析********************************************
应用过程分析的结果是数据库结构设计的重要依据
(1)用到哪些数据; (2)数据使用的顺序; (3)对数据作何处理和处理的策略以及结果;
******************************收集与分析数据*******************************
数据收集与分析的任务是了解并分析数据的组成格式及操作特征,每个数 据元素的语义及关系等,并将它们收集起来整理归档。
分析内容:
静态结构 --- 不施加应用操作于其上时数据的原始状况(数据的( 静态结构 )是指不施加应用操作于其上时数据的原始状况, 这可通过数据分类表和数据元素表进行说明)
- 数据分类表:用于数据的总体描述
- 数据元素表:指通常意义下的数据项或属性
动态结构 ---将应用操作施加于数据之上后数据的状况
- 任务分类表:一个任务指为完成某一特定处理功能的相对独立的操作序列
- 数据特征操作表:用以描述任务和数据之间的关系,它包括不同任务对数据执行不 同操作的频率
数据约束 ---使用数据时的特殊要求
- 1)数据的安全保密性
- 2)数据的完整性
- 3)响应时间
- 4)数据恢复
**************************编写需求分析报告*****************************
概念结构设计(概念模型):独立于任何软件与硬件 主要目标:最大限度的满足应用需求;关系的规范化理论主要用于概念设计阶段。
- 实体分析法 (自顶向下法)
- 属性综合法 (自底向上法)
- 概念模型 (自顶向下)
逻辑结构设计:目标将概念模型转换为等价的、并为特定DBMS所支持数据模 型的结构;在基本表的基础上再建立必要的视图,形成数据的外模式
物理设计:具体任务主要是确定数据库在存储设备上的存储结构及存取方法, 因DBMS的不同还可能包括建立索引和聚集,以及物理块大小、缓冲区个 数和大小、数据压缩的选择等。
数据库实施:
- 加载数据(收集、分类、整理、校验、输入等) 输入与校验 不是由人工完成
- 应用程序 设计
- 数据库试 运行:有利于工作人员掌握并熟悉系统; 有利于正式运行时避免人为的操作不当等损害。
数据库运行与维护:保证数据库的正常运行;系统维护中最困难的工作是 数据库重组与重构。
三、关系数据库设计方法
关系数据库设计过程与各级模式
*************************E-R图的表示方法*********************************
概念结构设计方法:
1、局部信息结构设计
- 确定局部范围:局部范围主要依据需求分析报告中标明的用户视图范围来确定;往往与子模式范围相对应。
- 选择实体:数据分类表是选择实体的直接依据。 实体选择的最大困难是如何区别实体与属性
- 选择实体 的关键字 属性:实体的存在依赖于其关键字的存在。
- 确定实体 间联系:数据间的联系必须在概念设计时确定。
- 确定实体 的属性:属性分为标识属性和说明属性
2、全局信息结构设计
3、逻辑结构设计方法
- 将E-R图转换为关系模型
- 对关系数据模型进行优化
- 设计面向用户的外 模式
E-R图向关系模型的转换
- 一个实体型转换为一个关系模式,实体的属性作为关系的属性,实体的码作为关系的码
- 一个一对一联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
- 一个一对多联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并
- 一个多对多联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为 关系的属性
- 三个或以上实体间的一个多元联系可以转换为一个关系模式
- 具有相同码的关系模式可合并
数据模型的优化:
数据库逻辑设计的结果,不是唯一的。
- 1)确定各属性间的函数依赖关系
- 2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
- 3)判断每个关系模式的范式,根据实际需要确定最合适的范式。
- 4)按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境 是否合适,确定是否要对某些模式进行合并或分解。
- 5)对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率
设计用户子模式
- 1)可以通过视图机制在设计用户视图时,重新定义某些属性的别名,使 其更符合用户的习惯,以方便使用。
- 2)可以对不同级别的用户定义不同的视图,以保证系统的安全性。
- 3)简化用户对系统的使用。
物理设计方法
- 建立索引(逻辑连接 ):静态建立 索引 、 动态建立 索引
- 建立聚集(物理聚集:聚集是将相关数据集中存放的物理存储技术。 数据聚集结构的一种有效方式是块结构方式。 数据聚集可在一个或多个关系上建立。
各个局部ER图的冲突