第六章 数据库设计
本章主要内容和学习要求 数据库设计概述(了解) 数据库设计的全过程(领会) ER模型 (综合应用) ER模型到关系模型的转换 (综合应用) 小结
学习目标 了解数据库设计的特点 理解数据库设计的全过程 掌握需求分析的任务和方法 掌握概念结构设计的方法
6.1 数据库设计概述 一、软件工程与软件生存期 软件危机 软件神话 规划阶段 需求分析阶段 设计阶段 编码阶段 测试阶段 运行维护阶段 软件工程:用工程化的方法与理论来指导软件开发的过程,以提高软件质量和开发效率,降低开发成本 。 软件危机 软件神话 软件生存期:从软件的规划、研制、实现、投入运行后的维护,直到它被新的软件所取代而停止使用的整个期间。 规划阶段 需求分析阶段 设计阶段 编码阶段 测试阶段 运行维护阶段
6.1 数据库设计概述 二、数据库工程与数据库系统生存期 数据库工程:以数据库为基础的软件系统,属于软件工程,但有所区别。 数据库应用系统设计 与之相关的应用软件设计 数据库系统生存期:数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间。 定义:规划、需求分析 设计:概念、逻辑、物理 实现与运行
6.1 数据库设计概述 二、数据库工程与数据库系统生存期 规划阶段:一个单位、企业的信息化规划 需求分析阶段:综合各个用户的应用需求 概念设计阶段:形成独立于机器特点,独立于各个DBMS产品的概念模式(E-R图) 逻辑设计阶段:E-R图转换成具体DBMS支持的数据模型,形成数据的外模式 物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
软件生存期 数据库生存期 规划 需求分析 系统设计 程序编制 调试 运行维护 运行和维护 实现 物理设计 逻辑设计 概念设计 需求分析 规划
6.2 规划与需求分析 6.2.1 数据库规划 目标:信息化的程度 人 管理规范化 软件与硬件条件 规划阶段的三个步骤 系统调查: 6.2 规划与需求分析 6.2.1 数据库规划 目标:信息化的程度 人 管理规范化 软件与硬件条件 规划阶段的三个步骤 系统调查: 对企业组织作全面的调查,画出组织层次图,以了解企业的组织结构 可行性分析 从技术、经济、效益、法律等族方面对建立数据库的可行性进行分析;写出可行性分析报告;组织专家进行讨论其可行性 确定数据库系统的总目标和制定项目开发计划
6.2.2 需求分析 1、目标:分析用户的需要与要求 2、需求分析的重点 充分了解原系统的工作概况 明确用户的各种需求 确定新系统的功能。 6.2.2 需求分析 1、目标:分析用户的需要与要求 充分了解原系统的工作概况 明确用户的各种需求 确定新系统的功能。 考虑今后可能的扩充和改变 2、需求分析的重点 信息要求 处理要求 安全性与完整性要求。
6.2.2 需求分析 3、需求分析的难点 4、需求分析的方法: 用户无法准确地表达自己的需求 所提出的需求往往不断地变化; 6.2.2 需求分析 3、需求分析的难点 用户无法准确地表达自己的需求 所提出的需求往往不断地变化; 设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求; 新的硬、软件技术的出现也会使用户需求发生变化 4、需求分析的方法: 调查研究 分析表达
6.2.2 需求分析 5、调查研究 步骤 (1)调查组织机构情况:包括组织部门的组成情况和职责等。 6.2.2 需求分析 5、调查研究 步骤 (1)调查组织机构情况:包括组织部门的组成情况和职责等。 (2)调查各部门的业务活动情况,包括各个部门输入和使用什么数据、如何加工处理这些数据、输出什么信息、输出到什么部门、输出结果的格式是什么等。 (3)协助用户明确对新系统的各种要求,包括信息要求、处理要求、完全性与完整性要求。 (4)确定新系统的边界:人机完成的功能分解。
6.2.2 需求分析 6、常用调查方法 跟班作业:通过亲身参加业务工作了解业务活动的情况。 6.2.2 需求分析 6、常用调查方法 跟班作业:通过亲身参加业务工作了解业务活动的情况。 开调查会:通过与用户座谈来了解业务活动情况及用户需求。 请专人介绍。 询问:对某些调查中的问题,可以找专人询问。 设计调查表请用户填写。 查阅记录:查阅与原系统有关的数据记录
6.2.2 需求分析 7、分析和表达用户需求 SA (Structured Analysis) 方法:自顶向下从最上层系统组织机构入手,采用逐层分解的方式分析系统,并用数据流图和数据字典描述系统。 SA方法的具体步骤 根据调查分析,得到如下所示的系统高层抽象图 数据流 数据存储 信息要求 数据 来源 处理 输出 处理要求
6.2.2 需求分析 分解处理功能和数据:逐步分解形成若干层次的数据流图,数据流图表达了数据和处理过程的关系;数据用数据字典来描述。 用户评审并认可 8、需求分析工作 分析用户活动产生,产生业务流程图 确定系统范围,产生系统范围图 分析用户活动涉及的数据,产生数据流图 分析系统数据,产生数据字典
6.2.3 数据字典 数据字典:各类数据描述的集合 数据项:是不可再分的数据单位。对数据项的描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系} 数据结构:反映了数据之间的组合关系。数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}} 数据流:是数据结构在系统内传输的路径。数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构}, 平均流量,高峰期流量} 数据存储:是数据结构的停留或保存处,也是数据流的来源和去向之一。数据存储描述={数据存储名,说明,编号,流入的数据流 ,流出的数据流 ,组成:{数据结构},数据量,存取方式} 处理过程:描述处理过程的说明性信息。处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
6.2.3 数据字典 例:学生学籍管理子系统的数据字典。 数据项以学号为例: 数据项: 学号 含义说明:唯一标识每个学生 别名: 学生编号 6.2.3 数据字典 例:学生学籍管理子系统的数据字典。 数据项以学号为例: 数据项: 学号 含义说明:唯一标识每个学生 别名: 学生编号 类型: 字符型 长度: 8 取值范围:00000000至99999999 取值含义:前两位标别该学生所在年级,后六位按顺序编号 数据结构以学生为例 数据结构: 学生 含义说明: 定义了一个学生的有关信息 组成: 学号,姓名,性别,年龄,所在系,年级
6.2.3 数据字典 数据流以体检结果为例 数据流: 体检结果 说明: 学生参加体格检查的最终结果 数据流来源:体检 数据流去向:批准 6.2.3 数据字典 数据流以体检结果为例 数据流: 体检结果 说明: 学生参加体格检查的最终结果 数据流来源:体检 数据流去向:批准 组成: …… 平均流量: …… 高峰期流量:…… 数据存储以学生登记表为例 数据存储: 学生登记表 说明: 记录学生的基本情况 流入数据流:…… 流出数据流:…… 数据量: 每年3000张 存取方式: 随机存取
6.2.3 数据字典 处理过程以分配宿舍为例 处理过程:分配宿舍 说明: 为所有新生分配学生宿舍 输入: 学生,宿舍, 输出: 宿舍安排 6.2.3 数据字典 处理过程以分配宿舍为例 处理过程:分配宿舍 说明: 为所有新生分配学生宿舍 输入: 学生,宿舍, 输出: 宿舍安排 处理: 在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。安排新生宿舍其处理时间应不超过15分钟。
6.3 概念设计 一、概念结构 1、目标:在数求分析的基础上完成概念模式设计 2、为什么需要概念设计 3、概念结构的特点 准确反映用户需求 6.3 概念设计 一、概念结构 1、目标:在数求分析的基础上完成概念模式设计 2、为什么需要概念设计 准确反映用户需求 独立于DBMS 3、概念结构的特点 真实充分反映现实世界及其联系,现实世界的真实模型 易于用户理解 易于修改 易于转化为逻辑模式
6.3 概念设计 二、概念设计的主要步骤与方法 局部概念模式 局部概念模式综合成全局概念模式 评审 常用方法:ER方法。 6.3 概念设计 二、概念设计的主要步骤与方法 局部概念模式 针对每个用户(类)的需求,进行数据抽象 常用方法是聚集与概括 局部概念模式综合成全局概念模式 局部模式的综合 调整、修改与协调 评审 用户评审 DBA评审 常用方法:ER方法。
图5.2 数据库的各级模式 应用1 应用3 应用2 概念模式 概念要求 逻辑模式 内模式 外模式3 外模式2 外模式1 综合 转换 映像
6.3 概念设计 三、数据抽象 数据抽象:抽象是从实际事物中抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。一般有三种常用抽象: 分类:具有某些共同的特性和行为的对象,“is member of” ,在E-R模型中,实体型就是这种抽象。 聚集:定义某一类型的组成成分。它抽象了对象内部类型和成分之间“is part of”的语义。 概括:定义类型之间的一种子集联系。它抽象了类型之间的“is subset of”的语义。概括具有继承性:子类继承超类上定义的所有抽象。 E-R模型中用双竖边的矩形框表示子类,用直线加小圆圈表示超类-子类的联系。
6.3.4 局部ER模型 ER模型图例 一、ER模型 ER模型的基本元素 实体 联系 属性 实体联系模型(1976) 实体:可以区别的客观事物 需求描述中出现的主要名词 实体 联系:实体之间存在的关系 需求描述中的动词 一个实体可能涉及多个联系 联系 属性:实体中的某一特性 实体标识符,只有一个 值域:属性的取值范围 联系的属性:描述联系的特征 属性
实例:老师—学生 老 师 学 生 教 m n 学号 姓名 专业 班级 职称 性别 职号
二、属性的分类 1、基本属性和复合属性(可否再分) 2、单值属性和多值属性(对一个实体对象是否只能取一个值) 多值属性用双框表示 图5.4 地址属性的层次结构 邮政编码 省(市)名 地 址 区 名 街 道 家庭地址 门牌号码 1、基本属性和复合属性(可否再分) 2、单值属性和多值属性(对一个实体对象是否只能取一个值) 多值属性用双框表示 多值属性可以转化 图5.5 多值属性的表示 零件编码 零 件 零件名 供应商 规格 进货价格 销售价格价格
二、 属性的分类 多值属性的处理 将原来的多值属性用几个新的单值属性来表示。 将原来的多值属性用一个新的实体类型表示 联系类型:1:N 二、 属性的分类 多值属性的处理 将原来的多值属性用几个新的单值属性来表示。 将原来的多值属性用一个新的实体类型表示 联系类型:1:N 弱实体:依赖于原实体而存在 表示方法:双线框 图5.6 多值属性的变换(1) 零件编码 零 件 零件名 供应商 规格 进货价格 经销价格 代销价格 批发价格 零售价格 图5.7 多值属性的变换(2) 零件编码 零 件 零件名 供应商 规格 进货价格 销售性质 售货价格 存在 销售价格 1 N
小结 软件工程生存期与数据库工程生存期 数据库设计全过程 规划 需求分析 概念设计 逻辑设计 物理设计 实现 运行与维护 分析的目的 方法 需求分析的目标
下课了。。。 休息。。。 研 究