# 前言

本篇以记录数据库第七章的学习记录,本章的重点应该再概念结构设计和逻辑结构设计中。

# 数据库设计概述

数据库设计是指对于一个给定的应用环境,设计优化的 数据库逻辑模式和物理结构 ,并据此建立数据库及其应用系统,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求

数据库设计的目的是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境

# 数据库设计的特点

数据库设计的一个主要特点 ----- 三分技术,七分管理,十二分基础数据

管理

  • 数据库建设项目管理
  • 企业的业务管理

基础数据

  • 收集
  • 更新新的数据

第二个特点 ----- 结构(数据)设计和行为(处理)设计相结合

# 数据库设计的方法

手工与经验相结合方法

  • 设计质量与设计人员的经验和水平有直接关系
  • 数据库运行一段时间后常常不同程度地发现各种问题提高的维护代价

规范设计法

  • 基本思想:过程迭代和逐步求精
  • 新奥尔良方法
    • 将数据库设计分为若干阶段和步骤
  • 基于 E-R 模型的数据库设计方法
    • 概念设计阶段广泛采用
  • 3NF 的设计方法
    • 逻辑阶段可采用的有效方法
  • ODL 方法
    • 面向对象的设计方法

# 数据库设计的基本步骤

主要分为六个阶段

  1. 需求分析
    • 需求收集和分析
  2. 概念结构设计
    • 设计 E-R 模型
  3. 逻辑结构设计
    • 设计逻辑结构数据模型优化
  4. 物理结构设计
    • 设计物理结构评价设计,性能预测
  5. 数据库实施
    • 物理实现尝试运行
  6. 数据库运行和维护
    • 使用、维护数据库

image-20230105170541371

# 数据库设计过程中的各级模式

image-20230105171313745

# 需求分析

# 需求分析的任务

  • 详细调查现实世界要处理的对象 (组织、部门企等)
  • 充分了解原系统 (手工系统或计算机系统)
  • 明确用户的各种需求
  • 确定新系统的功能
  • 充分考虑今后可能的扩充和改变

# 需求分析的重点

  • 调查的重点是 “数据” 和 “处理”,获得用户对数据库要求
    • 信息要求
    • 处理要求
    • 安全性与完整性要求
  • 确定用户最终需求
    • 用户缺少计算机知识
    • 设计人员缺少用户的专业知识
  • 解决办法
    • 设计人员必须不断深入地与用户进行交流

# 需求分析的方法

  • 调查了解清楚用户的实际需求并进行初步分析
    1. 调查组织机构情况
    2. 调查各部门的业务活动情况
    3. 协助用户明确对新系统的要求
    4. 确定新系统的边界
  • 与用户达成共识
  • 进一步分析与表达这些需求

常用方法

  • 跟班作业(耗时但是有效)
  • 开调查会(常用)
  • 问卷调查(简单有效)

image-20230105172604633

# 数据字典

用途: 是系统中各类数据描述的集合,进行详细的数据收集和数据分析所获得的主要结果

字典的内容

  • 数据项
    • 不可再分的数据单位
  • 数据结构
    • 反应了数据之间的组合关系
  • 数据流
    • 数据结构再系统内传输的路径
  • 数据存储
    • 数据结构停留和保存的地方,也是数据流的来源和去向之一
  • 处理过程
    • 描述处理过程的说明性信息

数据字典是关于数据库中数据的描述,是元数据,而不是数据本身

# 概念结构设计

# 概念模型

概念模型的主要特点是:

  • 能真实,充分的反映现实世界
  • 易于理解
  • 易于更改
  • 易于向关系网状,层次等数据类型的转换

属性和实体的划分准则

  • 属性是不能再具有需要描述的性质
  • 属性不能与其他实体具有联系

# 逻辑结构设计

把上一个阶段设计好的 E-R 模型转换成选用 DBMS 产品支持的数据模型相符合的逻辑结构

# E-R 图向关系模型的转换

  • E-R 图向关系模型的转换要解决的问题
    • 如何将实体型和实体间的联系转换为关系模式
    • 如何确定这些关系模式的属性和码
  • 转换内容
    • 将 E-R 图转换为关系模型:将实体、实体的属性和实体之间的联系转换为关系模式
  • 转换原则
    • 一个实体型转换为一个关系模型
    • 联系分为多种情况进行转换
      1. 一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
      2. 一个 l:n 联系可以转换为一个独立的关系模式,也可以与 n 端对应的关系模式合并。
      3. 一个 m:n 联系转换为一个关系模式,
      4. 三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
      5. 具有相同码的关系模式可合并。

# 数据模型的优化

得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是数据模型的优化

关系数据模型的优化通常以规范化理论为指导

  1. 确定数据依赖
  2. 极小化处理
  3. 确定所属范式

通过分解

  • 水平分解

    把基本关系的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统利用率

  • 垂直分解

    把关系模式 R 的属性分解为若干子集合,形成若干子关系模式

# 设计用户子模式

注重的问题

  1. 使更符合用户的别名
  2. 针对不同级别的用户定义不同的 View ,以满足系统对安全性的要求。
  3. 简化用户对系统的使用

# 数据库的物理设计

数据库在物理设备上的 存储结构与存取方法 称为数据库的物理结构,它依赖于选定的数据库管理系统为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理设计

# 物理数据库设计的内容和方法

设计物理数据库结构的准备工作

  • 对要运行的事务进行详细分析,获得选择物理数据库设计所需参数
  • 充分了解所用 RDBMS 的内部特征,特别是系统提供的存取方法和存储结构

选择物理数据库设计所需参数

  • 数据库询事务
    1. 查询的关系
    2. 查条件所涉及的属性
    3. 连接条件所涉及的属性
    4. 查询的投影属性
  • 数据更新事务
    1. 被更新的关系
    2. 每个关系上的更新操作条所及的属性
    3. 修改操作要改变的属性值
  • 每个事务在各关系上运行的频率和性能要求

物理设计的内容

  • 为关系模式选择 存取方法
  • 设计关系,索引等数据库文件的物理存储结构

# 关系数据库存取方法选择

数据库系统是多用户共享的系统,对同一个关系要建立 多条存取路径 才能满足多用户的多种应用要求
物理设计的任务之一就是要确定选择哪些存取方法,即 建立哪些存取路径

# 确定数据库的存储结构

  1. 确定数据的存放位置和存储结构
    • 因素
      • 存取时间
      • 存取空间利用率
      • 维护代价
  2. 确定系统配置
    • 原则
      • 易变部分与稳定部分分开存放
      • 存取频率较高部分与存取频率较低部分,分开存放

# 数据库实施和维护

# 数据载入和应用程序的调试

  • 数据的载入
    • 组织数据入库是数据库实施阶段最主要的工作
    • 载入方法有人工和计算机辅助两种
  • 应用程序的编码和调试
    • 数据库应用程序的设计应该与数据设计并行进行
    • 在组织数据入库的同时还要调试应用程序

# 数据库的试运行

在原有系统的数据有一小部分已输入数据库后,就可以开始对数据库系统进行联合调试,称为数据库的试运行

  1. 功能测试
    • 实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足设计要求
    • 如果不满足,对应用程序部分则要修改、调整,直到达到计要求
  2. 性能测试
    • 测量系统的性能指标,分析是否达到设计目标
    • 如果测试的结果与设计目标不符,则要返回物理设计阶段,重新调整物理结构,修改系统参数,某些情况下甚至要返回逻辑设计阶段,修改逻辑结构
  3. 数据库的转储和恢复
    • 在数据库试运行阶段,系统还不稳定,硬、软故障随时都可能发生
    • 系统的操作人员对新系统还不熟悉,误操作也不可避免
    • 因此必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏。

# 数据库的运行和维护

  1. 数据库试运行合格后,数据库即可投入正式运行。
  2. 数据库投入运行标志着开发任务的基本完成和维护工作的开始
  3. 对数据库设计进行评价、调整、修改等维护工作是个长期的任务,也是设计工作的继续和提高