数据库设计

本文最初由security发布于security的博客,禁止任何形式的剽窃行为
转载原创文章请注明,转载自:security的博客

数据库设计

  1. 综合性的技术
  2. 涉及信息技术
  3. 数据库技术
  4. 软件工程技术

数据库设计概述

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

  • 信息管理要求:在数据库中应该存储和管理哪些数据对象; 数据操作要求:对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作;
  • 数据库设计目标

为用户和各种应用系统提供一个信息基础设施的高效率的运行环境;

  • 高效率的运行环境
  1. 数据库数据的存取效率高
  2. 数据库存储空间的利用率高
  3. 数据库系统运行管理的效率高
  • 数据库设计的特点
  1. 数据库建设的基本规律

三分技术,七分管理,十二分基础数据

  • 管理:
    数据库建设项目管理
    企业(即应用部门)的业务管理
  • 基础数据:
    数据的收集、整理、组织和不断更新
  1. 结构(数据)设计和行为(处理)设计相结合

将数据库结构设计和数据处理设计密切结合

  • 结构和行为分离的设计
  • 传统的软件工程:重行为设计
    忽视对应用中数据语义的分析和抽象,只要有可能就尽量推迟数据结构设计的决策
  • 早期的数据库设计:重结构设计
    致力于数据模型和数据库建模方法的研究,忽视了行为设计对结构设计的影响;

  1. 大型数据库的设计是涉及多学科的综合性技术
  • 要求设计人员具有以下多方面的知识和技能管理
  1. 计算机的基础知识
  2. 数据库的基本知识
  3. 软件工程的原理和方法
  4. 数据库设计的技术
  5. 序设计的方法和技巧
  6. 应用领域的专业知识
  • 数据库设计的基本步骤
  1. 需求分析
  2. 概念结构设计
  3. 逻辑结构设计
  4. 物理结构设计
  5. 数据库实施
  6. 数据库的运行和维护

注意:需求分析和概念设计独立于任何数据库管理系统 逻辑设计和物理设计与选用的数据库管理系统密切相关

图片

  • 参加数据库设计的人员
  1. 系统分析人员和数据库设计人员
    自始至终参与数据库设计,其水平决定了数据库系统的质量
  2. 数据库管理员和用户代表
    主要参加需求分析与和数据库的运行和维护
  3. 应用开发人员
    包括程序员和操作员
  • 总结
  1. 设计一个完善的数据库应用系统,往往是上述6个阶段的不断反复,这个设计步骤既是数据库设计的过程,也包括数据库应用系统的设计过程
  2. 把数据的设计和对数据库中数据处理的设计紧密结合起来,两方面的各个阶段同时进行,相互参照,相互补充,以完善两方面的设计

需求分析

是否做得充分与准确,决定了构建数据库的速度和质量

  • 需求分析就是分析用户的要求
  1. 是设计数据库的起点
  2. 结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用
  • 需求分析的任务
  1. 详细调查现实世界要处理的对象(组织、部门、企业等)
  2. 充分了解原系统的功能工作概况
  3. 明确用户的各种需求
  4. 在此基础上确定新系统的功能
  5. 新系统必须充分考虑今后可能的扩充和改变
  6. 调查的重点是“数据”和“处理”,获得用户对数据库的要求
  • 信息要求

  • 处理要求

  • 安全性和完整性要求

  • 确定用户最终需求的难点

  • 解决方法:不断深入和用户进行交流

  • 调查用户需求的步骤

  1. 调查组织机构的情况
  2. 调查各部门的业务活动情况
  3. 协助用户明确对新系统的各种要求
  4. 确定新系统的边界
  • 常用调查方法
  1. 跟班作业
  2. 开调查会
  3. 请专人介绍
  4. 询问
  5. 调查表
  6. 查阅记录
  • 分析方法
  1. 结构化分析方法
  2. SA方法
    采用自顶向下,逐层分解的方法分析系统
  • 需求分析的过程

图片

  • 数据字典
  1. 数据字典是关于数据库中数据的描述,即元数据,不是数据本身
  2. 数据字典是在需求分析阶段监理,在数据库设计过程中不断修改、充实、完善
  3. 数据字典是进行详细的数据收集和数据分析所获得的主要结果

图片

图片在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 总结
  1. 把需求收集和分析作为数据库设计的第一阶段是十分重要的
  2. 第一阶段收集的基础数据(用数据字典表达)是下一步进行概念设计的基础
  3. 强调两点
  • 设计人员应充分考虑到可能的扩充和改变,使设计易于更改,系统易于扩充
  • 必须强调用户的参与

概念结构设计

综合、归纳、抽象形成一个独立于具体DBMS的概念模型,常用E-R图表示

  • 概念模型:将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计

  • 概念模型的特点

  1. 能真实、充分地反映现实世界
  2. 易于理解
  3. 易于更改
  4. 易于向关系等转换
  • 描述概念模型的工具

E-R图

  • E-R模型
  1. 实体之间的联系
    1对1
    1对多
    多对多
  2. 提供了表示实体型、属性和联系的方法
    实体型(矩形)属性(椭圆形)联系(菱形)

E-R图的集成

  1. 合并各E-R图,并消除冲突(属性冲突、命名冲突、结构冲突)
  2. 修改和重构

逻辑结构设计

将概念模型转换为某个数据库管理系统所支持的数据模型,并对其进行优化

  • 转换内容
  1. E-R图由实体型、实体的属性和实体型之间的联系三个要素组成
  2. 关系模型的逻辑结构是一组关系模式的集合
  3. 将E-R图转换为关系模型:将实体型、实体的属性和实体型之间的联系转换为关系模式
  • 数据模型的优化
  1. 数据库逻辑设计的结果不是唯一的
  2. 得到初步数据模型后,还应该适当的修改,调整数据模型的结构
  3. 关系数据模型的优化通常以规范化理论为指导

物理结构设计

为逻辑数据结构选取一个最适合应用环境的物理结构 包括存储结构和存取方法

  • 数据库管理系统常用存取方法
  1. B+树索引存取方法的选择
    关系上定义的索引数过多会带来较多的额外开销
  2. HASH存取方法的选择
    该关系大小动态改变
  3. 聚簇存取方法的选择
  • 评价物理结构方法
  1. 存储空间
  2. 存取时间
  3. 维护代价

数据库的实施和维护

根据逻辑设计和物理设计结果构建数据库 编写与调试应用程序 组织数据入库并进行试运行

  • 数据的载入

组织数据入库是数据库实施阶段最主要的工作

  • 数据装载方法
  1. 人工方法
  2. 计算机辅助数据入库
  • 应用程序的调试
  1. 数据库应用程序的设计应该与数据设计并行进行
  2. 组织数据入库的同时还要调试应用程序
  3. 应用程序的设计、编码、调试的方法,需要具体学习软件工程课程
  • 数据库的运行和维护
  1. 数据库的转储和恢复
  2. 数据库的安全性和完整性控制
  3. 数据库性能的监督、分析和改进
  4. 数据库的重组织与重构造

本文最初由security发布于security的博客,禁止任何形式的剽窃行为
转载原创文章请注明,转载自:security的博客

posted @ 2020-06-01 15:36  security9968  阅读(889)  评论(0编辑  收藏  举报