什么是数据库设计?基本步骤有哪些?

数据库设计结构图

实线代表输入,虚线代表输出,每个节点的输出作为下一个节点的输入。

image

基本步骤

1.需求分析阶段

数据需求分析是在项目确定之后,用户和设计人员对数据库应用系统所要涉及的内容(数据)和功能(行为)的整理和描述,是以用户的角度来认识系统。这一过程是后续开发的基础,因为逻辑设计、物理设计以及应用程序的设计都会以此为依据。

  • 参与人员:用户和分析人员。
  • 需求分析阶段的任务:综合用户需求,收集支持系统目标的基础数据及处理方法
  • 获取用户对系统的要求:
    1. 信息要求
      • 用户需要在系统保存哪些信息,由这些保存的信息获得什么样的信息,信息间满足的完整性要求
    2. 处理要求
      • 用户在系统中要实现什么样的操作,保存信息的处理过程和方式
    3. 系统要求
      • 安全性要求:系统有多少用户使用,使用权限如何
      • 使用方式要求:用户使用环境是什么,平均有多少用户使用,最高峰有多少用户同时使用,有无查询相关的时间要求
      • 可扩充性要求:对未来功能、性能和应用访问的可扩充性要求

2.概念结构设计

概念结构设计的目标是产生反映系统信息需求的数据库概念结构,即概念模式。概念结构是独立于支持数据库的DBMS和使用的硬件环境的。此时,设计人员从用户的角度看待数据以及处理的要求和约束,产生一个反映用户观点的概念模式,然后再把概念模式转换为逻辑模式。

概念设计最著名最常用的方法是E-R方法(实体-联系)方法。

选择局部应用

选择适当层次的数据流图,让这一层的每一部分对应一个局部应用,实现某一项功能。从这一层入手,就能很好地设计分E-R图。

逐一设计分E-R图

依据局部应用的数据流图,从数据字典中提取出数据,使用抽象机制,确定局部应用中的实体、实体的属性、实体标识符及实体间的联系和其类型。

E-R图合并

合并的目的在于在合并过程中解决分E-R图中相互间存在的冲突,消除在分E-R图之间存在的信息冗余,使之成为能够被全系统所有用户共同理解和接受的统一的、精炼的全局概念模型。

分E-R图进行合并时,它们之间存在的冲突主要有以下三类:

  1. 属性冲突
  2. 命名冲突
  3. 结构冲突

合并过程的优化实现:

  1. 实体类型的合并
  2. 冗余属性的消除
  3. 冗余联系的消除

3.逻辑结构设计

逻辑结构设计即是在概念结构设计的基础上记性数据模型设计,可以是层次模型、网状模型和关系模型。逻辑结构设计阶段的主要工作步骤包括确定数据模型、将E-R图转换成指定的数据模型、确定完整性约束和确定用户视图。

  1. E-R图转换为关系模式
  2. 关系模式规范化
  3. 确定完整性约束
  4. 确定用户视图
  5. 反规范化

4.物理设计

一般来说,物理设计的主要工作步骤包括确定数据分布、存储结构和访问方式。

  1. 确定数据分布
  2. 确定数据的存储结构
  3. 确定数据的访问方式

5.数据库实施

根据逻辑和物理设计的结果,在计算机上建立起实际的数据库结构,数据加载(或称装入),进行试运行和评价的过程,叫做数据库的实施(或称实现)

  1. 建立实际的数据库结构
  2. 数据加载
  3. 数据库试运行和评价

6.数据库运行维护

数据库一旦投入运行,就标志着数据库维护工作的开始。数据库维护工作的主要内容包括对数据库性能的监测和改善、故障恢复、数据库的重组和重构。在数据库运行阶段,对数据库的维护主要由DBA完成

  1. 对数据库性能的监测和完善
  2. 数据库的备份及故障恢复
  3. 数据库重组和重构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/438569.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java RC4加密算法

一、RC4加密算法 在密码学中,RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。 百度百科 - RC4:https://baike.baidu.com/item/RC4/34545…

Netty的高级用法(一)

前言 我们直到在网络通信中客户端和服务端之间除了要传输数据外,还会进行简单的心跳应答通信,使得客户端和服务端的连接处于一种活跃状态,那么客户端可以发送ONE_WAY和TWO_WAY两种方式的处理,而服务端在处理这两种类型的数据时会…

Pyecharts魔法笔:探索多彩K线图的绘制与定制

标题:Pyecharts绘制多种炫酷K线图参数说明代码实战 在数据可视化领域,K线图是股票市场中常用的一种图表类型,用于展示一段时间内的开盘价、收盘价、最高价和最低价。Pyecharts是一个强大的Python可视化库,支持绘制各种图表&#…

一文讲透!CRM客户管理系统实施过程中的问题?

本文将为大家讲解:一文讲透!CRM客户管理系统实施过程中的问题有哪些? CRM客户管理系统有什么缺点?比起CRM的缺点,为了企业能不断发展,企业更有必要知悉在系统实施过程中存在的问题,反思自身存在…

【第十九课】BFS:广度优先搜索 (acwing-844走迷宫 / 含过程演示的视频推荐 / c++代码)

目录 BFS思路 可能需要看的视频和博客 代码如下 输出最短路径途径点 关于这种类型的题,我是有点印象的。。。当时蓝桥杯校内选拔就有这种题,当时还没学算法hhh BFS思路 对应上图来理解BFS的方式还是很容易的,只是如何在题目中应用BFS的思…

shell脚本——条件语句

目录 一、条件语句 1、test命令测试条件表达式 2、整数数值比较 3、字符串比较 4、逻辑测试(短路运算) 5、双中括号 二、if语句 1、 分支结构 1.1 单分支结果 1.2 双分支 1.3 多分支 2、case 一、条件语句 条件测试:判断某需求是…

【HarmonyOS应用开发】UIAbility实践第二部分(六)

内容接上篇 【HarmonyOS应用开发】UIAbility实践第一部分(五) 末尾含示例源码 三、UIAbility的生命周期 当用户浏览、切换和返回到对应应用的时候,应用中的UIAbility实例会在其生命周期的不同状态之间转换。 UIAbility类提供了很多回调&a…

[C语言][C++][时间复杂度详解分析]二分查找——杨氏矩阵查找数字详解!!!

一,题目 遇到的一道算法题: 1,已知有一个数字矩阵(row行,col列),矩阵的每行 从左到右 递增,每列 从上到下 递增。 2,现输入一个数字 num ,判断数字矩阵中…

玩转WEB接口之三续篇【HTTPS证书申请 - nginx验证】

文章目录 一, 概述二,nginx下载三,访问域名1. 做域名映射2. 运行nginx并通过域名访问 四,配置SSL证书1. 配置证书文件2. nginx 添加证书文件 五、运行并验证1. 测试、重新加载2. https访问 一, 概述 接上篇 玩转WEB接…

深度强化学习(王树森)笔记06

深度强化学习(DRL) 本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL 源代码链接:https://github.c…

在Java中如何优雅使用正则表达式?

在Java中如何优雅使用正则表达式? 一、正则表达式的基本概念与用途 1.1 正则表达式的简介 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算…

SpringBoot引入主盘探活定时任务

主盘探活通常是指检查存储设备(例如硬盘)是否可读写,但在Java中并没有直接针对硬件级别的磁盘探活API。然而,我们可以模拟一个场景,即检查某个目录或文件是否可以被Java程序正常读写,以此作为主盘活跃的一个…