MySQL之数据库设计六个步骤
前言
今天有个前同事去面试,被面试官问了一个这样的问题:如果让你去设计数据库你改怎么设计?或者有哪些步骤?被问到这里可能我们就懵逼了,是啊,该怎么去设计呢。
在软件开发的过程中,数据库设计是非常重要的,它需要根据需求分析抽象出E-R图,概念结构设计、逻辑结构设计、物理结构设计,实施及运维。
在公司中一般的流程是:
- 对问题以及可行性进行分析
- 进入需求分析阶段,由产品相关人员去和客户沟通落地形成PRD
- 最后跟开发相关人员沟通之后,根据需求分析做数据库设计了
接下来通俗易懂的方式对数据库设计的步骤以及每个阶段要完成的内容进行讲解
数据库设计基本步骤
需求分析阶段
要进行数据库设计首先要了解用户的需求,理解用户的需求,需求分析常用SA(Structured Analysis:结构化分析方法)随着开发的进行,还需要经常与用户沟通,交流意见,以保证其需求仍然在开发的目的之中。
进行需求分析,首先是调查用户的实际要求,与用户达成共识。然后再进行实际调查。调查用户的机构情况、人员情况、业务情况等等,确定系统的任务。在进行需求调查时,可以绘制数据流图(用户业务流程图),进一步明确系统的边界。
例如:职工工资管理系统”数据库系统是一个用来管理职工工资的数据库系统。既然是管理职工工资的数据库,那么职工、部门、工资是必不可少的,这些属性都有一些特有的特征:
- 职工:编号、部门编号、姓名、性别
- 部门:部门编号、部门名称
- 工资:员工编号、基本工资、奖金
概念设计阶段
概念结构设计就是将需求分析得到的信息,抽象化为概念模型。
在实际的开发中,常用E-R(Entity-Relationship:实体关系)图来表示。
常用的工具PowerDesigner,可以实现CDM(概念数据模型)-----> LDM(逻辑数据模型)-----> PDM(物理数据模型)-----> DataBase的自动转换,这个过程称为正向工程,如果有DataBase建库脚本,也可以通过PowerDesigner工具生成CDM,即Database -----> PDM -----> LDM -----> CDM,称为反向工程。
概念设计通常采用自底向上,首先定义各系统局部的概念模型,然后再将他们集成合并起来,得到全局的概念模型。
局部E-R图:
全局E-R图:
逻辑结构设计阶段
逻辑结构设计阶段的任务就是把概念结构设计好的基本E-R图转换为与指定DBMS产品所支持的数据模型相符合的逻辑结构,并将进行优化常用关系模型。
在此阶段,各子模块的E-R图之间的冲突主要有三类:属性冲突,命名冲突和结构冲突,同时E-R图向关系模型的转换,要解决如何将实体性和实体间的联系转换为关系模式,确定这些关系模式的属性和码,实际开发中,逻辑设计阶段不是必须的。
将全局的E-R图转换为关系模型如下:
职工(编号、部门编号、姓名、性别、部门编号);
部门(编号、部门名称);
工资(职工编号、基本工资、奖金)
物理结构设计阶段
逻辑设计阶段和数据库选型完成之后就可以选择存储结构,确定存取方法,选择存取路径,确定数据的存放位置
- 确定数据库的物理机构(存储机构,存储方法)
- 对物理机构进行评估(时间,空间)
职工表:
部门表:
工资表:
数据库实施阶段
对数据库的物理设计初步完成后就可以开始建立数据库了,数据库当中创建表需要进行规范性检查,通过之后就可以创建表结构,而Yearning,Archery都可以支持SQL的规范性检测,Yearning支持MySQL数据库,而Archery支持多种数据库
规范性检查可以借助开源的SQL审核工具,如Yearning,Archery都可以设置规则,检查之后会给出整改建议,能够帮我们自动实现SQL Review。Yearning是用go开发,目前只支持MySQL数据库,Archery可以支持多种数据库。下面是Yearning检测SQL的示例:
数据库运行与维护阶段
数据库试运行合格后,数据库开发工作就基本完成,即可以投入正式运行了。在数据库运行阶
段,对数据库还要进行经常性地维护,如下图:
MySQL之数据库设计六个步骤相关推荐
- 《数据库系统概论》之数据库设计六步骤(需求、概念、逻辑、物理、实施、运行维护)
文章目录 0.一图总览 1.数据库设计概述及六步骤简介 2.需求分析---步骤一 2.1 收集资料 2.2 分析整理 2.3 数据流图 2.4 数据字典 2.5 用户确认 3.概念结构设计---步骤二 ...
- 用mysql设计数据库的步骤_数据库设计的主要步骤是什么
数据库设计的主要步骤是什么 发布时间:2020-08-12 10:00:24 来源:亿速云 阅读:141 作者:小新 这篇文章给大家分享的是有关数据库设计的主要步骤是什么的内容.小编觉得挺实用的,因此 ...
- 1、数据库设计的基本步骤
本节主要介绍数据库设计的基本步骤. 在了解数据库设计步骤之前,我们先来了解一下软件项目的开发周期,如下: 需求分析 概要设计 逻辑设计/详细设计 代码编写 软件测试 安装部署 其中,项目开始的第一步都 ...
- erwin教程 mysql_如何使用Erwin进行基于MySQL的数据库设计
如何使用Erwin进行基于MySQL的数据库设计 文章作者:网友投稿 发布时间:2008-09-01 13:44:45 来源:网络 ERwin是常用的进行数据库设计的工具,支持众多的数据库,可惜不支持 ...
- 数据库设计的基本步骤
一.数据库设计的特点 1. 数据库建设的基本规律 "三分技术,七分管理,十二分基础数据"是数据库设计的特点之一. "十二分基础数据" 则强调了数据的收集.整理. ...
- 软考-架构师-第三章-数据库系统 第八节 数据库设计的基本步骤(读书笔记)
版权声明 主要针对希赛出版的架构师考试教程<系统架构设计师教程(第4版)>,作者"希赛教育软考学院".完成相关的读书笔记以便后期自查,仅供个人学习使用,不得用于任何商业 ...
- MySQL之数据库设计三范式
目录 一.简介 第一范式 第二范式 第三范式 结语 学习计划: 一.简介 我们数据库表设计的时候需要尽可能的遵循三范式,具体是 第一范式(1NF): 强调的是列的原子性,即列不能够再分成其他几列, ...
- 物流信息管理系统MySQL设计_案例分析第六章:物流管理系统的数据库设计(六个基本步骤)案例分析...
物流管理信息系统的数据库设计 (案例分析) 系统名称:物流管理信息系统(数据库管理系统) 一.需求分析 需求分析是整个数据库设计过程的基础,要收集数据库所有用户的信息内容和处理要求,并加以规格化和分析 ...
- mysql 点赞数据库设计_基于redis实现的点赞功能设计思路详解
点赞其实是一个很有意思的功能.基本的设计思路有大致两种, 一种自然是用mysql等 数据库直接落地存储, 另外一种就是利用点赞的业务特征来扔到redis(或memcache)中, 然后离线刷回mysq ...
最新文章
- 洛谷 P1217 [USACO1.5]回文质数 Prime Palindrome
- 死磕 synchronized 底层实现
- HDU - 6393 Traffic Network in Numazu(线段树+LCA+树链剖分+并查集)
- 常见的Content-Type类型
- 强大的jQuery图片查看器插件Viewer.js
- linux下哪些软件能跑pin,Linux下4款常见远程工具比较
- vue复选框组件自定义对勾_vue2.0中ckeckbox(复选框)的使用心得,及对click事件和change的理解...
- ajax的post方式传数组参数
- 如何让机器像人一样多角度思考?
- bom本地储存(附实例)
- 汇编语言属于计算机科学,汇编语言是一种依赖于计算机的低级程序设计语言吗...
- Java高铁的速度是火车的两倍_超级高铁最高速度是飞机速度的近两倍,如果研发成功,对中国房价涨跌和中国高铁的比较优势会有什么影响?...
- 聊天app开发——如何开发聊天app
- excel 如何冻结多行多列
- Windows小技巧:巧用CMD命令设置定时关机
- oracle安装搜狗输入法教程,Ubuntu12.04安装搜狗拼音输入法
- openwrt 启动盘制作 linux,U盘启动OpenWRT教程,OpenWRT从U盘启动
- 【大数据开发】SparkCore——自定义排序、实现序列化、自定义分区器
- latex 在线表格生成
- java widget_Java FavoritesWidget类代码示例