详解数据库设计的四个阶段

article/2025/10/13 14:25:14

一、系统需求分析阶段

数据库设计的第一步,就是了解与分析用户需求,确定系统边界信息需求、处理需求、安全性和完整性需求,然后编写系统分析报告。

系统分析报告的内容主要包括:
在这里插入图片描述

随系统分析报告需提供的附件还有:
在这里插入图片描述
需求分析有两种方法:自顶向下和自底向上。

具体来说,自底向上的分析,是从具体到抽象;而自顶向下的分析,则是从抽象到具体。举个例子就比较好理解了:

比如你想搭建一个电子商务网站,如果你是先确定核心模块包括哪些,然后根据每子模块的属性继续往下分。那么这种就是自顶而下的分析。

反之,如果你是先整理出大量的属性,然后对这些属性进行归纳总结出几大模块,那么就是自底向上的分析。

二、概念结构设计阶段

概念结构设计,就是将上一阶段通过需求分析得到的用户需求抽象为概念结构,或称为概念模型(整个过程,其实就是我们前面提到的自底向上的分析)。描述概念模型的有力工具是E-R模型。

E-R模型由三大要素组成,分别是实体、属性和联系。

  • 实体是一个数据的使用者,代表软件系统中客观存在的生活中的实物,比如物体、人、部门、项目等;
  • 实体中的所有特性称为属性,如用户有特定的姓名、性别、住址、电话、邮箱等元素;
  • 实体与实体间存在联系,如,某一个人在某个公司的某个部门工作,其中的实体有"某个人"、“某个公司”和"某个公司的某个部门"。

E-R模型的绘制需要遵循三范式原则:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、逻辑结构设计阶段

数据库逻辑设计,则是将上一阶段的概念结构转换成特定DBMS所支持的数据模型的过程。如下图所示:
在这里插入图片描述
其中初始关系模式设计过程,就是将E-R模型向关系模式的转换。

转换中要遵循以下原则:

  • 一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键;
  • 具有相同主键的关系可以合并;
  • 一个联系转换为一个关系模式,分为以下几种情况:

一个1:1的联系可以转化为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
一个1:N的联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。

假如有老师和学校两个实体,一个学校可以招收多个老师,但是一个老师只能选择一个学校(这里不讨论特殊情况), 因此学校和老师是1:N的关系。现在要转换为关系模型,我们只需在老师的这端加上学校的唯一标识即可,这样做的原因是,因为一个老师只能在一个学校,学校相对老师是唯一的。

一个M:N的联系转换为一个关系。关系的属性由联系本身的属性和与之联系的实体的主键组成,关系的主键由联系中各实体的主键组合而成(组合键)。

四、物理结构设计阶段

物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构。
在这里插入图片描述
1.选择哪种数据库

商业数据库(更适合企业级项目),比如:Oracle、SQLServer
开源数据库(适用于互联网项目)。比如:MySQL、PgSQL
在这里插入图片描述
2.数据库表级字段的命名规则:

可读性原则:使用大写和小写来格式化的库对象名字以获得良好的可读性
表意性原则:对象的名字应该能够描述它所标识的对象
长名原则:尽可能少使用或者不使用缩写,适用于数据库(DATABASE)名之外的任一对象

3.数据库字段类型选择原则
在这里插入图片描述
以上选择原则主要是从下面两个角度考虑:

1)在对数据进行比较(查询条件、JOIN条件及排序)操作时:同样的数据,字符处理往往比数字处理慢
2)在数据库中,数据处理以页为单位,列的长度越小,利于性能提升。

4.数据库设计其它注意事项

1)区分业务主键和数据库主键:业务主键用于标识业务数据,进行表与表之间的关联;数据库主键为了优化数据存储(Innodb会生成6个字节的隐含主键)

2)根据数据库的类型,考虑主键是否要顺序增长:有些数据库是按主键的顺序逻辑存储的

3)主键的字段类型所占空间要尽可能的小:对于使用聚集索引方式存储的表,每个索引后都会附加主键信息


严格来说,数据库设计还有后续的实施阶段和运行维护阶段,如果继续展开下去又得半小时,这里就不做复述了(其实是想偷懒)。感兴趣的朋友可以在我整理的数据库资源包里找到续篇,包里还有其他数据库相关的思维导图学习资料,一并分享给大家。
数据库系统工程师教程目录


http://chatgpt.dhexx.cn/article/G56mfiVj.shtml

相关文章

MySQL数据库设计-案例

大家好,我是忘鱼。分享一下数据库设计(案例) 目录 一、案例 二、代码 三、总结 一、案例 如下进行数据库设计。这是黑马上的一道练习题。 二、代码 drop table if EXISTS music; drop table if EXISTS song; drop table if EXI…

数据库设计流程

数据库设计的步骤 数据库设计的流程总共有三步: 现实世界的实体模型通过建模转换为信息世界的概念模型(即 E-R 模型)概念模型经过模型转化,得到数据库使用的数据模型(在关系数据库设计中为关系模型)数据模…

浅谈数据库设计

第一章 需求分析 设计简介 根据业务需要,结合选用的DBMS,设计出最有的数据存储模型并建立好数据库中的表结构及表与表之间的关系使之有效的存储和高效的访问。 数据库设计 在系统设计开始就应该对数据库进行良好的设计,这样才能保证以后对…

数据库设计与实现

一个良好的设计对于数据库系统至关重要,它可以减少数据冗余,确保数据的一致性和完整性,同时使得数据库易于维护和扩展。 实体关系图 实体关系图(Entity-Relationship Diagram,ERD)是一种用于数据库设计的结…

数据库设计(二)——简单设计实例

Mysql设计步骤 一、设计一套系统数据库的步骤 1、实现什么样的功能(保证项目功能的完整性,列出所有模块)。 2、通过思维导图将每个功能模块串联起来(放射状,细节可以用文字描述)。 …

数据库设计的一般步骤

经过几天给韶关某个高校进行数据库设计的实训,对数据库设计的过程有了更加深刻的理解。 一、数据库设计的步骤 (1)了解功能需求 在设计数据库之前,设计人员必须要先了解系统的功能需求。这里可以通过阅读产品需求规格说明书&…

9.数据库设计

数据库设计 1、数据库设计概述 数据库设计。广义地讲,是数据库及其应用系统的设计,即设计整个数据库应用系统;狭义地讲,是设计数据库本身,即设计数据库的各级模式并建立数据库, 这是数据库应用系统设计的一…

数据库设计-概念结构设计

文章目录 数据库设计概念设计结构概念结构设计ER模型的基本元素实体/实体集属性区别实体和属性联系 二元联系的关系1:11:nm:n 一元联系1:11:nm:n 三元联系 采用ER模型的概念设计设计局部ER模型例题设计全局ER模型全局ER模型的优化 数据库设计 数据库设计:构造最优的…

数据库设计—图书管理数据库系统设计

如下代码供学习交流,获取完整代码,请关注公众号(coding加油站)获取 1、项目简介 图书馆数据库,该项目同时提供pythonweb可视化展示界面,也可提供相关报告数据,可以用来作为数据库系统设计的期…

数据库设计(一)——数据库设计

一、数据库设计简介 按照规范设计,将数据库的设计过程分为六个阶段: A、系统需求分析阶段 B、概念结构设计阶段 C、逻辑结构设计阶段 D、物理结构设计阶段 E、数据库实施阶段 F、数据库运行与维护阶段 需求分析和概念结构设计独立于任何数据库管理系统…

数据库设计的六个基本步骤

按照规范设计的方法,考虑数据库及其应用系统开发全过程,可将数据库设计分为以下6个阶段,分别为:1.需求分析,2.概念结构设计,3.逻辑结构设计,4.物理结构设计,5.数据库实施&#xff0c…

数据库设计(一)

目录 数据库设计的基本概念: 数据库设计包括以下几个部分: 需求设计: 1、数据: 2、处理: 概念结构设计: 实体: 例如: 联系类型: 1、一对一: 2、一对多&a…

数据库:数据库设计(需求,设计,运行,维护)

1,数据库设计概述 1.1,数据库设计的基本概念 数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据&…

数据库系统-数据库设计

数据库系统-数据库设计 数据库设计概述及六步骤简介 数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。 数据库设计的特点 数据库设计是一…

学生成绩管理系统数据库设计--MySQLSQL Server

MySQL 数据库设计-学生成绩管理系统 设计大纲友情链接 1、医疗信息管理系统数据库–MySQL2、邮件管理数据库设计–MySQL3、点餐系统数据库设计–SQL Server4、商品管理系统数据库设计–SQL Server5、SQL Server医疗信息管理系统数据库【英文版-源码】–(Medical Ma…

数据库设计-网上书店系统

一、需求分析 1.1 用户分析 网上书店系统的使用者主要有三种:普通用户、会员和管理员。 普通用户:浏览图书、查询图书、注册成为会员等; 会员:浏览图书、查询图书、加入购物车、修改购物车、订购图书、生成及查看订单、查看修改…

数据库设计

数据库设计 一.数据库设计概述1.数据库设计的特点2.数据库设计方法3.数据库设计的基本步骤4.数据库设计过程中的各级模式 二.需求分析1.需求分析的任务2.需求分析的方法3.数据字典 三.概念结构设计1.概念模型2.E-R模型3.概念结构设计 一.数据库设计概述 ①数据库设计是指对于一…

机器学习之PCA

一、PCA基本介绍 PCA(Principal Components Analysis)-主成分分析算法 用于数据降维、可视化、去噪非监督学习算法 二、PCA工作原理 目标:每次将空间中多维的样本点映射到一条直线上(要保证样本点之间的间距最大,用方差衡量,即保…

PCA9536——填坑

0. 问题 使用PCA9536输出模式控制4个小灯,开始时候按几次就不显示了,以为是接线不稳定原因。 后来一按开机电源就不显示了,以为是其他器件电源不稳定导致。 1. 问题1排除 接线问题,重新接线,重新做端子,…

sklearn PCA

sklearn.decomposition.PCA class sklearn.decomposition.PCA(n_componentsNone, *, copyTrue, whitenFalse, svd_solverauto, tol0.0, iterated_powerauto, random_stateNone)官方:link PCA是特征降维中一种 线性降维 的方法。 与特征选择不同(直接筛…