浅谈MySQL数据库的设计流程

系列文章目录

本次文章的内容是记录有关于MySQL学习中对数据库设计流程的一个记录和在设计流程中需要注意的一些事情。


文章目录

  • 系列文章目录
  • 前言
  • 一、数据库设计
    • 1.1为什么要着重于对数据库的详细设计
    • 1.2数据库的设计流程
      • (1)根据应用系统的功能,分析数据实体(实体就是要存储的数据对象)
      • (2)提取实体的数据项(数据项就是实体的属性)
      • (3)根据数据库设计三范式规范视图的数据项
      • (4)绘制E-R图(实体关系图,只管展示实体与实体之间的关系)
      • (5)数据库建模
      • (6)利用设计好的数据库模型思路进行建库建表
  • 总结


前言

MySQL数据库作为数据存储的介质为应用系统提供数据存储的服务,我们如何设计出合理的数据库,数据表以满足应用系统的数据存储需求呢?


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据库设计

1.1为什么要着重于对数据库的详细设计

作为一个后端开发者而言,在编写服务器的同时对于数据库的设计同样是非常重要的,那么深入理解一下该如何进行数据库的一个设计。

  • 车库:用于存放车辆的,车库都需要划分车位,若不划分车位,车子杂乱无章的存放可能会导致车辆堵塞,同时也可能造成场地的浪费为了使得一个有限的场地能够停放尽可能多的车辆所以不得不进行对车库的一个规范。同理,对于数据库而言为了使的有限的内存空间(尽管平时可能电脑的内存完全够,但是我们还是要有这个意识,这是开发者的基本素养,哈哈~~)
  • 数据库:用于存放数据的,我们需要设计合理的数据表–能够完成数据的存储,同时能够方便地提取应用系统所需的数据。

1.2数据库的设计流程

数据库是为应用系统服务的,数据库存储什么样的数据也是由应用系统来决定的,当我们进行应用系统开发时,我们首先要明确应用系统的功能需求 – 软件系统的需求分析

(1)根据应用系统的功能,分析数据实体(实体就是要存储的数据对象)

如以下案例

  • 电商系统中的数据实体有:商品、用户、订单…
  • 教务管理系统:学生、课程、成绩…

(2)提取实体的数据项(数据项就是实体的属性)

如以下案例

  • 商品(商品名称、商品图片、商品描述…)
  • 用户(姓名、登录名、登录密码…)

(3)根据数据库设计三范式规范视图的数据项

如果实体的数据项不满足三范式,可能会导致数据的冗余,从而引起数据的维护困难、破坏数据一致性等问题

数据库设计三范式:
第一范式:数据表字段不可再分
错误 案例如下:
图中将“联系方式”进行了再划分,这就违反了第一范式中的字段不可再分性
浅谈MySQL数据库的设计流程_第1张图片
改正如下:
将“联系方式”中的字段提取出来进行单独自修改成字段加入数据表中在这里插入图片描述

第二范式:不存在非关键字段对关键字段的部分依赖
错误案例如下:
浅谈MySQL数据库的设计流程_第2张图片
改正如下:
单独分离出来作为三个新表出现
浅谈MySQL数据库的设计流程_第3张图片

第三范式:不存在非关键字段之间的传递依赖(即不存在简接对主键的依赖)
错误案例如下:
在这里插入图片描述
改正如下:
浅谈MySQL数据库的设计流程_第4张图片

(4)绘制E-R图(实体关系图,只管展示实体与实体之间的关系)

浅谈MySQL数据库的设计流程_第5张图片

案例如下

浅谈MySQL数据库的设计流程_第6张图片

(5)数据库建模

  • 三线图进行设计表设计
    如下图students表的三线图设计
    浅谈MySQL数据库的设计流程_第7张图片
  • 利用各种开发工具进行设计例如PDMan、PowerDesigner等

(6)利用设计好的数据库模型思路进行建库建表

使用建模工具后或者使用Navicat工具进行最后的SQL建库语句的编写

总结

以上就是今天要讲的内容,本文仅仅简单介绍了数据库的设计流程,以及自己需要注意的一些问题,作为自己今天的收获,最后祝我们能够在开发这条路上一起前进互助。

你可能感兴趣的:(笔记,雍某人的java成神之路进阶篇,数据库,mysql,database)