【个人重构】数据库设计(1)

背景:已经开始了很长时间了,都没有写博客,就是因为某些数据类型把握不好,某些字段的名称命名不好,一直也在寻找画ER图的工具,其中用EA画的ER图总感觉不好看,用VISO也可以画,但是最终选择了一个特别小的软件,在画这些图的时候同时也思考了很多,现在就来看看我是如何设计数据库的。

首先来张图再说:



由上图可知数据库设计包括六个主要步骤:

1、需求分析:

了解用户的数据需求、处理需求、安全性及完整性要求;

需求分析阶段的工作步骤:

1.1 分析和表达用户需求:

首先把任何一个系统都抽象为:





1.2 分析用户活动、产生业务流程图:

了解用户当前的业务活动和职能,理清其处理流程。把用户业务分成若干个子处理过程,使每个处理功能明确、界面清楚,画出业务流程图


1.3确定系统范围,产生系统范围图:

在和用户经过充分讨论的基础上,确定计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面。


1.4 分析用户活动所涉及的数据,产生数据流图:

深入分析用户的业务处理,以数据流图(Data Flow Diagram,DFD)形式表示出数据的流向和对数据所进行的加工。DFD有四个基本成分:数据流、加工或处理、文件、外部实体。DFD可以形象地表示数据流与各业务活动的关系,它是需求分析的工具和分析结果的描述手段。之前也写过相关的博客:软件工程之数据流图和数据字典

符号说明:


1.4 分析系统数据,产生数据字典:

仅仅有DFD并不能构成需求说明书,DFD只表示出系统有哪几部分组成和各个部分之间的关系,并没有说明各个成分的含义。数据字典提供对数据库时间描述的集中管理,它的功能是存储和检索各种数据描述(元数据Metadata),数据字典是数据收集和数据分析的主要成果,在数据库设计中占有很重要地位。

数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。
数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度, 取值范围,取值含义,与其他数据项的逻辑关系}

例子: 
     ·含义说明
:唯一标识每个学生
     ·别名:  学生编号
     ·类型:  字符型
     ·长度:  12
     ·取值范围:000000000000至999999999999
     ·取值含义:前两位表示所在年级,后四位标明那个学院,在后三位标明按个专业,最后三位是班级学号
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}} 

例子:

      ·数据结构,:以“学生”为例学生”是该系统中的一个核心数据结构:
      ·数据结构: 学生
      ·含义说明:  定义了一个学生的有关信息
      ·组成:   学号,姓名,性别,年龄,所在学院,年级,系别

数据流描述={数据流名,说明,数据流来源,数据流去向, 组成:{数据结构},平均流量,高峰期流量} 

例子:

·数据流:  学生余额
·说明:   查看学生卡中的余额
·数据流来源:管理员输入的卡号
·数据流去向:输出
·组成:     卡号
·平均流量: ……
·高峰期流量

数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,   
        组成:{数据结构},数据量,存取方式}

例子:
·数据存储: 学生结账表
·说明:记录结账的基本情况
·流入数据流:……
·流出数据流:……
·组成:   ……
·数据量:  每天一次
·存取方式: 规定存取
处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流}, 
          处理:{简要说明}}

例子:
·处理过程:学生查看余额
·说明:  查看学生卡中的余额
·输入:  卡号
·输出:  学生信息、卡信息、余额
·处理:  在输入卡号后,在数据库中查询是否有此卡号,是否注册,输出数据。

1.6功能分析:

数据库的设计是与应用系统的设计紧密结合的过程,离开一定的功能,数据库就失去其存在价值。数据库设计的一个重要特点是结构(数据)和行为(功能)的结合。用户希望系统能提供的功能必须有一个清晰的描述。功能分析可以采用软件结构图或模块图来表示系统的层次分解关系、模块调用关系。


需求分析到此就结束了,由于篇幅原因,就先写到这里,将在下一篇博客中介绍接下来的几个步骤。大家期待更新吧。。。。



  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值