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

news2024/10/7 6:42:20

数据库设计结构图

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

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.coloradmin.cn/o/1418142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vmware虚拟机centos8共享文件夹挂载

1.设置虚拟机共享文件夹 2. 上述设置完毕之后,重启进入虚拟机,查看出现的共享文件夹名称 vmware-hgfsclient 3.查看是否有挂载目录,挂在目录默认为 /mnt/hgfs。没有时可以使用以下命令创建 mkdir /mnt/hgfs 4. 手动挂载目录--只能实现一次 注…

【python】argparse解析参数的过程

python基础知识 python文件解析if \_\_name\_\_ \_\_main\_\_的作用import到底导入了什么?argparse解析命令行参数的过程Debug—案例分析 python文件解析 Python和C语言的编译、执行过程有很大区别。我们先回顾一下c语言的执行过程,首先代码文件要编译…

GitLab 中国发行版如何设置镜像拉取策略?

最近在用极狐GitLab(极狐GitLab 可以理解为 GitLab 在中国的发行版) CI/CD 的时候遇到一个问题:CI/CD 中有一个 stage 需要拉取 dockerhub 上的镜像,但是由于 dockerhub 在国内的访问不是很顺畅,经常发生 timeout 的情…

pytest框架的基本使用

1. 测试框架的作用 测试框架不关系用例的内容 它关心的是:用例编排和结果收集 2. pytest框架的特点 1. 适用于python语言 2. 用法符合python风格 3. 有丰富的生态 3. 安装pytest框架 1. 新建一个项目 2. 在项目终端窗口输入如下命令,用于安装py…

危险!这3本期刊陆续被三大数据库剔除!2024年EI期刊目录首次更新!

【SciencePub学术】2024年1月1日,爱思唯尔更新了EI Compendex收录期刊目录。 继上次EI期刊目录更新之后,本次1月更新共有3本期刊发生变动: 其中,有3本期刊停止收录(DISCONTINUED),连续出版/核心…

如何使用Docker部署WBO白板并实现公网地址远程访问

本文主要是如何使用Docker部署WBO白板并实现公网地址远程访问的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&am…

MySql语句中的ON DUPLICATE KEY UPDATE使用详解

目录 一:主键索引,唯一索引和普通索引的关系1. 主键索引2. 唯一索引:3. 普通索引:1:ON DUPLICATE KEY UPDATE功能介绍:2:ON DUPLICATE KEY UPDATE测试样例总结: 执行以下实验进行分析…

苹果m1、m2安装blender GIS,解决not Imageio 报错

blender-GIS 能够在地图上生成地形,如下图所示: 使用blenderGIS过程中会有 imageio 找不到的情况, 网上的 imageio 用在苹果电脑的M1、M2芯片上好像还是没有出图,似乎这个 imageio 这个已经是好几年前的代码,没能适配…

100天精通鸿蒙从入门到跳槽——第20天:ArkTS装饰器@Link双向数据绑定

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》 — Go语言学习之旅!《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师!100天…

C语言——O / 动态内存管理

一、为什么要有动态内存分配 我们已经掌握的内存开辟⽅式有: int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 但是上述的开辟空间的⽅式有两个特点: • 空间开辟⼤⼩是固定的。 • 数组在申明的时候&am…

头戴式耳机推荐,适合学生党入手的平价头戴式耳机型号品牌推荐

市面上的头戴式耳机品牌繁多,价格各异,如何选择一款性价比高、适合自己的头戴式耳机呢?作为一个使用过不下十几款的头戴式耳机的大户,接下来我就根据我自己的经验为大家推荐一些平价好用的头戴式耳机,让学生党在预算有…

亚信安慧AntDB:AntDB-M元数据锁(六)

5.4.2 慢路径(slow path) 对于obtrusive锁,以及当前申请unobtrusive锁,而锁对象下已经持有obtrusive锁时,需要进入慢路径申请锁,即先对锁对象下的读写锁加写锁。在当前锁对象首次进入慢路径时,…

iOS 自动打包如何配置配置打包证书和profile provision文件

Jenkins 打包相关问题记录 打包失败截图: 1、证书找不到 NO certificate matching ‘ ‘ for ‘ ’ code singing is required …. D791BAD1-390A-4587-A35C-A743A3D88D52.png 由于更新过证书配置,导致新证书没有导入到Jenkins中。 配置步骤&#xf…

【AI视野·今日Robot 机器人论文速览 第七十六期】Fri, 12 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Fri, 12 Jan 2024 Totally 12 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Topology-Driven Parallel Trajectory Optimization in Dynamic Environments Authors Oscar de Groot, Laura Ferranti, Dari…

Hadoop3.x基础(1)

来源:B站尚硅谷 这里写目录标题 大数据概论大数据概念大数据特点(4V)大数据应用场景 Hadoop概述Hadoop是什么Hadoop发展历史(了解)Hadoop三大发行版本(了解)Hadoop优势(4高)Hadoop组成&#xf…

MMCLMC公差计算.exe

一、概要 软件及完整代码请戳这里:MMC&LMC公差计算软件及代码 图1 软件操作界面 本软件功能主要是根据实际应用选择MMR或者LMR原则,输入基本尺寸、形位公差尺寸和实际测量尺寸,即可计算出对应的公差值。以孔的MMR为例见如图2、3&#xf…

SpringCloud-高级篇(十六)

前面学习了Lua的语法,就可以在nginx去做编程,去实现nginx类里面的业务,查询Redis,查询tomcat等 ,业务逻辑的编写依赖于其他组件,这些组件会用到OpenResty的工具去实现 (1)安装OpenRe…

不熟悉现货白银的震荡行情?你可以试着这样理解

在现货白银交易中,投资者很不想碰到震荡行情,因为震荡行情说明市场没有明确的趋势,而是倾向于横向波动,因此没有潜在风险较低且潜在盈利较大的顺势交易机会。可不幸的是,在市场中大部分时间市场还是会倾向横向震荡&…

WhatsApp首次营销模板怎么写?WhatsApp营销效果怎么样?

近年来,随着社交媒体的飞速发展,WhatsApp作为一种全球通用的即时通讯应用程序,在营销领域备受重视。很多企业开始利用WhatsApp这一平台与客户进行沟通和营销推广活动。本文将探讨WhatsApp首次营销模板如何编写以及其所带来的效果。 首先&…

MG7050VAN 基于声表的差分多输出 晶体振荡器(LVDS)

MG7050VAN的LVDS输出是一款差分多输出晶体振荡器,具有极低的抖动和超强的稳定性。该振荡器适用于多种应用场景,如服务器、存储器和网络仪器等。作为一款高端的LVDS输出设备,该振荡器在输出性能上具有明显优势。其超低抖动水平可以达到0.3ps M…