七. 数据库设计
7.1 数据库设计概述
-
广义:是数据库及其应用系统的设计,即设计整个数据库应用系统
狭义:是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统的一部分
-
数据库设计
是指对于一个给定的应用环境,设计一个优良的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户应用需求,包括信息管理要求和数据处理要求
- 信息管理要求:在数据库中存储和管理需要的数据对象
- 数据处理要求:对数据对象需要进行的处理:查询、增删改、统计和分析等。
7.1.1 数据库设计的特点
-
基本规律
- 技术、管理、基础数据
- 管理
- 基础数据:数据的收集、整理、组织和不断更新
-
结构(数据)设计和行为(处理)设计相结合
- 将数据库结构设计和数据处理设计密切结合
7.1.2 数据库设计方法
- 手工设计法
- 规范设计法
- 典型方法:新奥尔良法
- 基于E-R模型的设计方法
- 数据库设计工具
7.1.3 数据库设计的基本步骤
-
数据库设计可以分为六个阶段
- 需求分析 (独立于任何数据库管理系统)是基础
- 概念结构设计(独立于任何数据库管理系统)是关键
- 逻辑结构设计(与选用的数据库管理系统密切相关)把概念结构转换成数据模型
- 物理结构设计(与选用的数据库管理系统密切相关)
- 数据库实施
- 数据库运行和维护
7.1.4 数据库设计过程中的各级模式
7.2 需求分析
-
需求分析:分析用户的需求,是数据库设计的起点
-
重要性
结果是否准确的反映了用户的实际要求,将直接影响到后面各个阶段的设计,并将影响到设计结果能否合理和实用
7.2.1 需求分析的任务
- 调查的重点是“数据”和“处理”,获得用户对数据库的要求
- 信息要求
- 处理要求
- 安全性和完整性要求
7.2.2 需求分析的方法
7.2.3 数据字典
-
数据字典
数据字典是关于数据库中数据的描述,称为元数据
它不是数据本身,而是数据的数据
-
数据字典在需求分析阶段建立,在数据库设计中不断修改,充实,完善
-
数据字典是进行详细的数据收集和分析所得到的主要结果
-
和dbms数据字典有区别
-
数据字典的内容
- 数据项
- 数据结构
- 数据流
- 数据存储
- 处理过程
-
数据项是数据的最小组成单位
-
若干个数据项可以组成一个数据结构
-
通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容
-
数据项
- 数据项是不可再分的数据单位
- 数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的关系}
- 关系规范化理论为指导,用数据依赖的概念分析和抽象了数据项之间的联系——函数依赖
- 取值范围 与其他数据项的逻辑关系 定义了数据的完整性约束条件,是模式设计、完整性检查条件、触发器、存储过程的依据
-
数据结构
- 数据结构反映了数据之间的组合关系
- 一个数据结果可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成
- 数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
-
数据流
- 数据流是数据结构在系统内部传输的路径
- 数据流的描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}
- 数据流来源:说明该数据流来自那个处理过程/数据存储
-
数据存储
- 是数据结构停留或保存的地方,也是数据流的来源和去向之一
- 数据存储描述={数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}
-
处理过程
- 具体处理逻辑一般用判定表或判定树来描述
- 数据字典中只需要描述处理过程的说明性信息
- 处理过程描述{处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
7.3 概念结构设计
7.3.1 概念模型
-
将需求分析得到的用户需求抽象为信息结构即概念模型的过程
-
概念模型就是现实世界的一个真实模型,是各种数据模型的共同基础,他比数据模型更独立于机器,更抽象,从而更稳定
-
回顾
-
实体:客观存在并且可以相互区别的事物称为实体,可以是具体 的人、事、物品、或抽象的概念、
-
属性:实体所具有的某一特性叫做属性,一个实体可以由若干个属性刻画
-
码:唯一标识实体的属性集称为码
-
实体型:用实体名及其属性名集合来抽象和刻画同类实体称为实体型
-
实体集:同一类型实体的集合称为实体集
-
联系
- 实体内部的联系:是指组成实体的各属性之间的联系
- 实体之间的联系:通常是指不同实体集之间的联系
实体之间的联系有一对一(1:1)
一对多(1:m)
多对多(m:n)
等多种类型。
概念模型的一种表示方法:实体-联系方法
- 用E-R图来描述现实世界 的概念模型
- E-R图的方法也称为E-R模型
-
7.3.2 E-R模型
7.4 逻辑结构设计
-
把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的逻辑结构
-
目前主要使用关系模型,关系模型的逻辑结构是一组关系模式的集合
7.4.2 数据模型的优化
-
数据库逻辑设计的结果不是唯一的
-
得到初步数据模式后,还应当适当的修改、调整数据库逻辑结构,以进一步提高数据库应用系统的性能,这就是数据模型的优化
-
关系数据库的优化通常以规范化理论为指导
-
方法:
-
确定函数依赖
-
对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系
-
按照数据依赖的理论对关系模式进行分析,考察是否存在部分函数依赖、传递函数依赖,多值依赖等,确定各关系模式分别属于第几范式
-
按照需求分析阶段得出的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对他们进行合并或者分解
-
7.4.3 设计用户子模式
- 数据库模式:全局模式
- 用户子模式:视图机制