# 一、软件工程

img

# 二、数据库设计步骤

image-20221104171836058

# 需求分析

输入:用户需求

输出:数据字典、数据流图、需求文档

  • 参考 (opens new window)

  • 数据字典:

    • 数据项:数据项是数据的最小组成单位,是不可再分的数据单位,若干个数据项可以组成一个数据结构。可以认为是对表的字段的描述。

    数据项描述 = {数据项名,数据项含义说明,别名, 数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系k, 数据项之间的联系 }

    数据项: 学号
     含义说明:唯一标识每个学生
     别名: 学生编号
     类型: 字符型
     长度: 9
     取值范围:0000 00 000至9999 99 999
     取值含义:前4位标别该学生入学年份,第5第6位所在专业系编号,后3位按顺序编号,例如202015008
     与其他数据项的逻辑关系:学号的值确定了其他数据项的值
    
    1
    2
    3
    4
    5
    6
    7
    8
    • 数据结构:数据结构反映了数据之间的组合关系。可以认为是对表(类)的描述。

    数据结构描述 = {数据结构名,含义说明,组成: {数据项或数据结构} }

    数据结构:学生
    含义说明:学籍管理子系统的主体数据结构,定义了一个学生的有关信息
    组成: 学号,姓名,性别,年龄,所在系,年级
    
    1
    2
    3
    • 数据流:数据流是数据结构在系统内部传输的路径。

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

    • 数据流来源:说明该数据流来自哪个处理过程/数据存储
    • 数据流去向:说明该数据流将到哪个处理过程/数据存储区
    • 平均流量:在单位时间(每天、每周、每月等)里的传输次数
    • 高峰期流量:在高峰时期的数据流量
     数据流: 体检结果后的流程
     说明: 学生参加体格检查的最终报告
     数据流来源:体检(处理过程)
     数据流去向:批准(处理过程)
     组成: { 学号, {血常规},{尿常规},{血液生化},{心电图},{B超}, … … {其他体检} }
     平均流量: 每天200
     高峰期流量:每天400
    
    1
    2
    3
    4
    5
    6
    7
    • 数据存储:数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。可以由此确定数据表的量、读写频率、索引位置等。

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

    • 存取频度:每小时、每天或每周存取次数,每次存取的数据量等信息
    • 存取方法:批处理 / 联机处理;检索 / 更新;顺序检索 / 随机检索
    • 输入的数据流:数据来源
    • 输出的数据流:数据去向
     数据存储: 学生登记表
     说明: 记录学生的基本情况
     流入数据流:每学期5000
     流出数据流:每学期5000
     组成: {学号,姓名,性别,年龄,所在系,年级,{学习成绩},{体检结果},{奖惩记录} … … }
     数据量: 每年10000张
     存取方式: 随机存取+按照专业系/班级打印
    
    1
    2
    3
    4
    5
    6
    7
    • 处理过程:具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息。此词条可以辅助开发过程的业务流程处理,可以认为是业务规则。

    处理过程描述 = { 处理过程名, 说明, 输入:{数据流}, 输出:{数据流}, 处理:{简要说明} }

    处理过程:分配宿舍
    说明:为所有新生分配学生宿舍
    输入:学生,宿舍
    输出:宿舍安排
    处理:在新生报到后,为所有新生分配学生宿舍。
        要求同一间宿舍只能安排同一年级同一性别的学生。
        一个学生只能安排在一个宿舍中。
        每个学生的居住面积不小于6平方米。
        安排新生宿舍其处理时间应不超过15分钟。
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

# 三大范式

参考: 链接 (opens new window)

  • 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。
  1. 第一范式(确保每列保持原子性): 第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式,如地址字段,可以拆分为省,市,详细地址三个字段,便于数据的获取及查询。

  2. 第二范式(确保表中的每列都和主键相关): 第二范式是在第一范式的基础上,确保数据表上的每一列都与主键相关,而不能只是主键(联合主键)的某一部分相关(主要针对于联合主键的表,通常是新增一个自增ID)。

  3. 第三范式(确保每列都和主键列直接相关,而不是间接相关) 第三范式是在第二范式的基础上,需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

Last Updated: 2022-11-6 9:25:06 ├F10: PM┤