三、数据库设计

1.数据库设计概述

1.数据库的生命周期

数据库的生命周期.png

2.数据库设计的目标

  1. 满足应用功能需求:增、删、改、查
  2. 良好的数据库性能:数据的高效存取和空间的节省,共享性、完整性、一致性、安全保密性。

3.数据库设计的内容

数据库设计的内容.png

4.数据库设计的方法

  1. 直观设计法(最原始的数据库设计方法)
  2. 规范设计法
    1. 新奥尔良设计方法:需求分析、概念结构设计、逻辑结构设计、物理结构设计
    2. 基于E-R模型的数据库设计方法
    3. 基于第三范式的设计方法,是一类结构化设计方法
  3. 计算机辅助法(辅助软件工程工具)

5.数据库设计的过程

数据库的设计过程

2.数据库设计的基本步骤

数据库设计的基本步骤.png

1.需求分析

定义

  1. 数据库设计的起点
  2. 目标:是了解与分析用户的信息及应用处理的要求,并将结果按一定形式整理而形成需求分析报告。
  3. 该分析报告是后续概念设计、逻辑设计、物理设计、数据库建立与维护的依据。

步骤

  1. 确定数据范围(数据库的第一项工作
    1. 有效的利用计算机设备及数据库系统的潜在能力
    2. 提高数据库的应变能力
    3. 避免应用过程中对数据库做太多或太大的修改
    4. 延长数据库的生命周期
  2. 分析数据应用过程(了解并分析数据和数据处理之间的关系),应用过程分析的结果是数据库结构设计的重要依据
    1. 用到哪些数据
    2. 数据使用的顺序
    3. 对数据做何处理和处理的策略以及结果
  3. 收集与分析数据:数据收集与分析的任务是了解及分析数据的组成格式及操作特征,每个数据元素的语义和关系等,并将他们收集起来并整理归档。
    1. 静态结构:不施加应用操作于其上时数据的原始状况

      1. 数据分类表:用于数据的总体描述

        数据id 数据 用途 主人 用户 来源 去向 存档时间 数据量
      2. 数据元素表:指通常意义下的数据项或属性

        数据id 数据元素id 元素名 意义 类型 长度 算法 备注
    2. 动态结构:将应用操作施加于数据之上后数据的状况

      1. 任务分类表:一个任务指为完成某一特定处理功能的相对独立的操作序列

        | 任务id | 名称 | 功能 | 类型 | 主人 | 用户 | 执行日期 | 评率 | 操作过程 |
        | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |

      2. 数据特征操作表:用以描述任务和数据之间的关系,它包括不同任务对数据执行不同操作的频率

        | 任务id | 数据id | 建立 | 查询 | 插入 | 修改 | 删除| 数据量|
        | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |

    3. 数据约束:使用数据时的特殊要求

      1. 数据的安全保密性
      2. 数据的完整性
      3. 响应时间
      4. 数据恢复
  4. 编写需求分析报告
    1. 数据库的应用功能目标
    2. 标明不同用户视图范围
    3. 应用处理过程需求说明,包括:
      1. 数据流程图
      2. 任务分类表
      3. 数据操作特征表
      4. 操作过程说明书
    4. 数据字典,是数据库系统中存储三级结构定义的数据库,通常指的是数据库系统中各类数据详细描述的集合。功能是存储和检索各种数据的描述,即元数据。包括数据分类表、数据元素表和各类原始资料。
    5. 数据量
    6. 数据约束

2.概念结构设计

  • 概念模型:独立于任何软件和硬件,主要目标是最大限度的满足应用的需求。分为:
    • 实体分析法(自顶向下法)
    • 属性综合法(自底向上法)

3.逻辑结构设计

  1. 目标:将概念模型转换为等价的、并为特定的DBMS所支持数据模型的结构。

  2. 步骤:

    1. 模型转换是指将概念模型等价的转换为特定DBMS支持的关系模型、网状模型或层次模型表示。
    2. 子模式设计的目标是抽取或导出模式的子集,以构造不同用户使用的局部数据逻辑结构。
    3. 编制应用程序设计说明的目的是为可实际运行的应用程序设计提供依据与指导,并作为设计评价的基础。
    4. 设计评价的任务是分析并检验模式及子模式的正确性与合理性。
    逻辑结构设计
  3. 物理设计

具体任务主要是确定数据库在存储设备上的存储结构存取方法,因DBMS的不同还可能包括建立索引聚集,以及物理块大小缓冲区个数和大小数据压缩的选择等。

  1. 数据库实施

    1. 加载数据:收集、分类、整理、校验、输入等
    2. 应用程序设计
    3. 数据库试运行
      1. 有利于工作人员掌握并熟悉系统
      2. 有利于正式运行时避免人为的操作不当等损害
  2. 数据库运行与维护:系统维护中最困难的工作是数据库重组与重构

    image.png

3.关系数据库设计方法

1.概念模型的表示方法:E-R图

  1. 矩形:实体型
  2. 圆形:属性
  3. 菱形:联系

2.概念结构设计方法

1:1联系

image.png

1:N联系

image.png

M:N联系

image.png

三个实体之间的一对多关系

image.png

三个实体之间的多对多关系

image.png

单个实体内的一对多关系

image.png
  • 局部信息结构设计

    • 确定局部范围:局部范围主要依据需求分析报告中标明的用户视图范围来确定。往往与子模式相对应。
    • 选择实体:数据分类表是选择实体的直接依据。实体选择的最大困难是如何区分实体与属性
    • 选择实体的关键字属性:实体的存在依赖于其关键字的存在。
    • 确定实体间联系:数据间的联系必须在概念设计时确定。
    • 确定实体的属性:属性分为标识属性说明属性
  • 用户管理系统E-R图示例

    1. 用户:用户ID、用户名、年龄、口令
    2. 用户组:用户组ID、用户组名、用户组描述
    3. 部门:部门ID、部门名、部门所在地、部门领导
    4. 权限:权限ID、权限名、权限链接

    1. 用户组与用户之间是一对多联系,表示每个用户属于一个用户组,一个用户组有多个用户,其联系的名称定义为“属于” 。
    2. 部门与用户之间是一对多联系,表示每个部门包含多个用户,每个用户只在一个部门,其联系的名称定义为“包含”。
    3. 用户组和权限之间是多对多联系,表示一种权限可以分配给多个用户组,每个用户组可以拥有多种权限,其联系的名称定义为“拥有”。
    E-R图.png

3.逻辑结构的设计方法

  1. 将E-R图转换为关系模型
    • 一个实体型转换为一个关系模式,实体的属性作为关系的属性,实体的码作为关系的码
    • 一个一对一联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
    • 一个一对多联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并
    • 一个多对多联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性
    • 三个或以上实体间的一个多元联系可以转换为一个关系模式
    • 具有相同码的关键模式可合并
  2. 对关系数据模型进行优化(数据库逻辑设计的结果,不是唯一的
    1. 确定各属性间的函数依赖关系
    2. 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系
    3. 判断每个关系模式的范式,根据实际需要确定最合适的范式
    4. 按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并或者分解
    5. 对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率
  3. 设计面向用户的外模式
    1. 可以通过视图机制在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用。
    2. 可以对不同级别的用户定义不同的视图,以保证系统的安全性
    3. 简化用户对系统的使用

4.物理设计方法

  1. 建立索引:逻辑连接
    1. 静态建立索引
    2. 动态建立索引
  2. 建立聚集:物理聚集
    • 聚集是将相关数据集中存放的物理存储技术
    • 数据聚集结构的一种有效方式是块结构方式
    • 数据聚集可在一个或多个关系上建立
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。