Presentation is loading. Please wait.

Presentation is loading. Please wait.

第五章 数据库设计 数据库设计概述 需求分析 概念结构设计 设计案例 逻辑结构设计 数据库物理设计 本章小结.

Similar presentations


Presentation on theme: "第五章 数据库设计 数据库设计概述 需求分析 概念结构设计 设计案例 逻辑结构设计 数据库物理设计 本章小结."— Presentation transcript:

1 第五章 数据库设计 数据库设计概述 需求分析 概念结构设计 设计案例 逻辑结构设计 数据库物理设计 本章小结

2 5.1 数据库设计概述 一、DB设计及其特点 1.DB设计:
5.1 数据库设计概述 一、DB设计及其特点 1.DB设计: 对于一个给定的应用环境,构造最优的数据模型,然后据此建立数据库及其应用系统的过程。 DB设计内容分: (1)结构(数据)设计 (2)行为(功能)设计 DB设计特点: 软、硬件和干件的结合 结构设计和行为设计结合 2.数据库设计的目标: 满足要求与模拟精度 良好的数据库性能 3.DB设计方法: 基于3NF的设计方法 新奥尔良设计方法 基于E-R模型的设计法 计算机辅助DB设计方法

3 (1)基于3NF的数据库设计方法。分为以下阶段 ①设计企业模式
5.1 数据库设计概述 (1)基于3NF的数据库设计方法。分为以下阶段 ①设计企业模式 收集应用中用到的资料 确定数据元素并确定元素间的关系 推导3NF并依据3NF构建数据库企业模式 ②设计数据库的逻辑模式 选用模型(关系模型)构建逻辑模式 根据逻辑模式导出外模式 ③设计数据库的物理模式 ④对物理模式进行评价 进行空间和时间效率上的估算 调整外模式

4 5.1 数据库设计概述 (2)新奥尔良(New Orleans)设计方法。由欧美专家在新奥尔良制定。分为以下阶段 ①公司要求分析
5.1 数据库设计概述 (2)新奥尔良(New Orleans)设计方法。由欧美专家在新奥尔良制定。分为以下阶段 ①公司要求分析 收集来自用户和不同级别管理者的有关设计数据库的信息或元数据 ②信息分析和定义(概念模型) ③设计实现(逻辑设计) 用数据模型构建DBMS所能接受的模式 ④物理数据库设计(物理设计) 存储结构的决定 查找算法的选择 查询的优化处理 系统实现方法(自由空间、存储管理、设备分配、安全性、完整性等)

5 E-R的思想是建立一个与具体DBMS和数据模型无关的真实世界的模型,然后将这个模型转化为某种DBMS上的数据模式。分为以下阶段:
5.1 数据库设计概述 (3)基于E-R模型的数据库设计方法。 E-R的思想是建立一个与具体DBMS和数据模型无关的真实世界的模型,然后将这个模型转化为某种DBMS上的数据模式。分为以下阶段: 确定实体类型 确定联系类型 画出E-R图 确定属性 将E-R图转换成某个DBMS可接受的逻辑数据模型 设计记录格式

6 5.1 数据库设计概述 (4)计算机辅助数据库设计方法。 计算机辅助使得数据库设计趋向自动化。 通过计算机提供一个交互式的过程,用计算机的处理能力来进行比较规则、重复性大的设计工作,减轻人力工作的负担。 主要分为:需求分析、逻辑设计、物理设计。

7 5.1 数据库设计概述 二.DB设计步骤: 立项准备: 5.2 数据库规划 5.3 系统定义 需求分析 需求收集和分析 概念结构设计
5.1 数据库设计概述 需求分析 二.DB设计步骤: 需求收集和分析 概念结构设计 设计E-R模型 立项准备: 5.2 数据库规划 5.3 系统定义 设计逻辑结构 数据模型优化 逻辑结构设计 设计物理结构 评价设计、性能预测 数据库物理设计 数据库实施 物理实现 试运行 数据库 运行和维护 使用、维护数据库

8 5.4 需求分析 一、需求分析的任务 (1)信息要求 (2)处理要求 (3)功能要求 (4)企业环境特征 二、需求分析的方法
5.4 需求分析 用户、 分析员、 设计员 了解组织机构情况 一、需求分析的任务 (1)信息要求 (2)处理要求 (3)功能要求 (4)企业环境特征 二、需求分析的方法 1. 需求信息的收集 调查各部门 业务活动情况 明确用户的需求 SA法 DFD DD 步骤是: 确定系统的边界 概念设计

9 5.4 需求分析 2. 需求信息的分析整理 用数据流图和数据字典描述。 三、数据流图(DFD—Data Flow Diagram)
5.4 需求分析 2. 需求信息的分析整理 用数据流图和数据字典描述。 三、数据流图(DFD—Data Flow Diagram) DFD用来表示各业务流程中涉及到的数据和处理关系 数据流图的基本成分: 表示同类数据的存放处,常指数据文件 文件名 操作 表示对数据的处理 表示不同处理过程之间传递的数据 对象 表示数据的发送者和接收者

10 5.4 需求分析 入校学生 通知单 四、数据字典: 是DBS中各类数据描述的集合。 1.作用:是建立和维护DBS的一种工具。 快速查询对象
5.4 需求分析 入校学生 通知单 四、数据字典: 是DBS中各类数据描述的集合。 1.作用:是建立和维护DBS的一种工具。 快速查询对象 掌握系统运行情况 1.1 注册 课表 专业要求 1.2 选课 成绩表 2.内容:DBS中 1)所有对象及其属性的描述信息 2)对象之间关系的描述信息。 3)所有对象、属性的自然语言含义 4)数据字典变化的历史记录。 学习情况 1.3 分配 毕业学生 派遣单

11 5.4 需求分析 5.数据库应用系统的数据字典包括: 3.数据字典与DBMS的关系 1)结合式数据字典 数据项 DBMS和数据字典融合在一起
5.4 需求分析 5.数据库应用系统的数据字典包括: 数据项 数据结构 数据流 数据存储 处理过程 3.数据字典与DBMS的关系 1)结合式数据字典 DBMS和数据字典融合在一起 2)独立式数据字典 数据字典软件包不依附DBMS 独立存在。 4.数据字典的访问 1)与人的接口:通过DBMS提供的数据字典访问工具 实现对系统数据的访问。 2)与软件接口:通过DBMS的应用程序接口(API) 实现对数据字典信息的访问和处理。

12 5.4 需求分析 例:下图给出了某机器制造厂的零配件采购子系统的数据流图。 该子系统要处理的工作是:
5.4 需求分析 例:下图给出了某机器制造厂的零配件采购子系统的数据流图。 该子系统要处理的工作是: 生产部门提出的生产计划根据零配件当前价格计算成本送主管部门审批,对已批准生产计划制定采购计划,准备好订货单给供应商。

13 零配件采购子系统DFD 产品 零件 报价单 零件 预算 价格 库存量 供应商报价 确定采 生产计划 核对 购计划 预算 批准/不批准
核对预算 批准/不批准 采购计划 供应商 编制 定货单 订单细节 零配件采购记录 订货单

14 5.4 需求分析 数据项描述={数据项名,数据项含义说明,别名,数据类型, 长度, 取值范围,取值含义,与其他数据项的逻辑关系}
5.4 需求分析 数据项描述={数据项名,数据项含义说明,别名,数据类型, 长度, 取值范围,取值含义,与其他数据项的逻辑关系} 例:数据项名:订货单号 类型: CHAR 长度: 8 别名: 采购单号 取值范围: — 数据结构是若干数据项有意义的集合。 数据结构描述={数据结构名,含义说明,组成: {数据项或数据结构}} 例:数据结构:采购细节 说明:作为采购计划的组成部分,说明对某个产品要 采购哪些零件,哪种零件采购多少数量。 组成:零件号、零件名、数量

15 5.4 需求分析 数据流表示加工处理过程的输入或输出数据。
5.4 需求分析 数据流表示加工处理过程的输入或输出数据。 数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量} 例:数据流名:采购计划 说明:由各产品所需零件数,选定的供应商,审核情 况组成采购零配件计划。 来源:确定采购计划 去向:编制订货单 数据结构:--采购细节 --采购审核

16 5.4 需求分析 数据存储是处理过程中要存取的数据。
5.4 需求分析 数据存储是处理过程中要存取的数据。 数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,组成:{数据结构},数据量,存取方式} 例:数据存储名:产品 说明:对每种产品的品名、规格的描述,并对每种产 品做成本预算。在核对生产计划书的成本时用。 输出数据流:预算 组成:产品号、产品名、预算 数据量:每月30—40件 存取方式:随机存取

17 5.4 需求分析 处理过程是对加工处理过程的描述。 处理过程描述={处理过程名,说明,输入:{数据流},
5.4 需求分析 处理过程是对加工处理过程的描述。 处理过程描述={处理过程名,说明,输入:{数据流}, 输出:{数据流},处理:{简要说明}} 例:处理过程:确定采购计划 说明: 对要采购的每一零件,根据零件库存量确定采购数量,再根 据每位供应商的报价选择适当的供应商,制定采购计划。 输入:供应商报价、零件库存、已批准生产计划 输出:采购计划 简要说明: (1)对应采购的每种零件查找供应商报价表,选择报价最低的供应商号。 (2)将此供应商号填入应采购零件表的相应列中。

18 5.4 需求分析 例:数据流名:选课信息 需求分析时数据字典包括: 说明:学生所选课程的信息 数据项、数据结构、数据流
5.4 需求分析 例:数据流名:选课信息 说明:学生所选课程的信息 数据流来源:“学生选课”处理 数据流去向:“学生选课表”存储 组成:学号,课程号 平均流量:每天20个 高峰期流量:每天300个 例:处理过程名:学生选课 说明:学生从可选修的课程中选 输入数据流:学生,课程 输出数据流:学生选课信息 处理:…每个学生每学期的选修 课不能超过X门。 需求分析时数据字典包括: 数据项、数据结构、数据流 数据存储、处理过程 数据流描述= {数据流名,说明,数据流来源、去向,组成: {数据结构}, 平均流量,高峰期流量} 处理过程描述={处理过程名, 说明,输入、出:{数据流}, 处理:{简要说明} }

19 5.5 概念结构设计 2、概念结构设计的方法 1、概念结构 主要特点: (1)能反映现实、 满足处理要求 (2)易于理解 步骤:
自顶向下 自底向上 逐步扩张 混合策略 步骤: 1、概念结构 主要特点: (1)能反映现实、 满足处理要求 (2)易于理解 (3)易于更改 (4)易于数据模型转换 概念结构设计任务: 将用户需求抽象为概念模型 (E-R图)。 需求分析 DFD、DD 1)数据抽象、局部视图设计 局部E-R图 2)视图集成 基本E-R图 逻辑结构设计

20 5.5 概念结构设计 自底向上方法步骤: 一. 数据抽象与局部视图设计
根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图,即分E-R图 1. 选择局部应用 可利用机构职能关系进行局部处理。 2. 逐一设计分E-R图 设计时注意: (1)实体与属性的划分原则 属性应是系统中最小的信息单位,不再具有描述性质。 属性不能与其他实体有联系。

21 5.5 概念结构设计 例:有职工、部门及其相关信息。 部门D dno 职工 ... eno 职工E 部门D E-D age name dno
5.5 概念结构设计 例:有职工、部门及其相关信息。 部门D dno 职工 ... eno 职工E 部门D E-D age name dno dname 职工E eno 部门 ...

22 5.5 概念结构设计 病人 住院号 姓名 病房号 医疗 病房号 病房 医生 级别 床位数 号 名 1 m 职称 住在 1 n 病人 住院号
5.5 概念结构设计 病人 住院号 姓名 病房号 医疗 病房号 病房 医生 级别 床位数 1 m 职称 住在 1 n 病人 住院号 姓名

23 5.5 概念结构设计 (2)数据抽象 两种抽象: 聚集 定义了某一类型的组成成分。它抽象了对象内部类型和成分之间的
5.5 概念结构设计 (2)数据抽象 两种抽象: 人体 聚集 聚集 定义了某一类型的组成成分。它抽象了对象内部类型和成分之间的 “is part of”的语义。 概括(继承) 定义类型之间的一种子集联系。它抽象了类型之间的“is subset of”的语义。 工人 农民 学生 干部 概括

24 5.5 概念结构设计 (3)属性 单值属性:用椭圆表示。 多值属性:用双椭圆表示。 派生属性:用虚椭圆表示。 复合属性:包含其它属性的属性。
5.5 概念结构设计 (3)属性 单值属性:用椭圆表示。 多值属性:用双椭圆表示。 派生属性:用虚椭圆表示。 复合属性:包含其它属性的属性。 (4)基数 在相互联系的实体中,实体出现一次而可能引起的另一个实体出现的最小和最大次数称为前一个实体的基数。 (5)弱实体 必须以另一个实体或多个实体的存在为前提的实体。 用双线矩形框表示。

25 5.5 概念结构设计 二. 视图集成(全局视图设计) 1. 合并分E-R图,生成初步E-R图
5.5 概念结构设计 二. 视图集成(全局视图设计) 1. 合并分E-R图,生成初步E-R图 合并的过程实际上是一个发现冲突和解决冲突的过程。 冲突主要有: (1)属性冲突 属性值类型、取值范围等发生冲突。 (2)命名冲突 同名异义、异名同义 (3)结构冲突 同一对象在不同视图中有不同抽象。 同一实体在不同视图中属性组成不同。 相同实体间联系在不同视图中呈现不同类型。

26 5.5 概念结构设计 2. 消除不必要的冗余,设计基本E-R图 冗余的数据是指可由基本数据导出的数据,冗余的联系是
5.5 概念结构设计 2. 消除不必要的冗余,设计基本E-R图 冗余的数据是指可由基本数据导出的数据,冗余的联系是 指可由其他联系导出的联系。 (1) 用分析法消除冗余数据 例:实发工资、应发工资 注意:并不是所有的冗余都必须消除。 有时为了提高效率,不得不以冗余为代价。 (2)利用关系规范化理论来消除冗余联系 ① 确定局部E-R图实体之间的函数依赖。 ② 求F的最小依赖集Fm,求其差集,即 D=F-Fm ③ 逐一考察D中每一函数依赖,确定是否为冗余, 若是,就把它去掉。

27 5.5 概念结构设计 任务: 将基本E-R模型转换为DBMS所支持的数据模型。 关系型逻辑结构设计的步骤: 1) 将概念结构转换为关系模型
5.5 概念结构设计 任务: 将基本E-R模型转换为DBMS所支持的数据模型。 关系型逻辑结构设计的步骤: 1) 将概念结构转换为关系模型 2) 优化模型 3) 设计适合DBMS的子模式 RDBMS 的表、视图 基本E-R图 关系模型 优化的模型 转换规则 优化方法 RDBMS的 特点和限制

28 5.5 概念结构设计 一、E-R模型向关系模型的转换 转换的一般原则: (1)一个实体型转换为一个关系模式。
5.5 概念结构设计 一、E-R模型向关系模型的转换 转换的一般原则: (1)一个实体型转换为一个关系模式。 (2)一个1:1联系可转换为一个独立的关系模式, 也可与任一端对应的关系模式合并。 (3)一个1:n联系可转换为一个独立的关系模式, 也可与n端对应的关系模式合并。 (4)一个m: n联系转换为一个关系模式。 (5)三个或三个以上实体间的多元联系可转换为 一个关系模式。 (6) 相同码的关系模式可合并。

29 5.5 概念结构设计 P(P#,PP,PC) S(S#,SP) M(M#,MC) L(L#,LC) P-S(P#,S#,Q1)
5.5 概念结构设计 P(P#,PP,PC) S(S#,SP) M(M#,MC) L(L#,LC) P-S(P#,S#,Q1) S-M(S#,M#,Q2) M-L(M#,L#,Q5) ?合并 Q1 组成 m n P# PP 产品P SP S# 零件S Q5 存放 材料M M# MC 仓库L L# LOC PC Q2 消耗 1

30 关系DB设计例 职工 工号 姓名 年龄 民意测验 性别 职称 领导 1 m
职工(工号, 姓名,年龄, 性别, 职称, 领导者工号, 民意测验) 零件 代号 名称 数量 价格 组装 m n 零件(代号,名称,价格) 组装(代号,组装件代号,数量)

31 关系DB设计例 ,指示器 职工(职工号,姓名,性别,年龄,参加工作时间, 职员类型) 飞行员(职工号,飞行时间,健康检查,飞机型号)
机械师 职工 飞行员 管理人员 ,指示器 职工(职工号,姓名,性别,年龄,参加工作时间, 职员类型) 飞行员(职工号,飞行时间,健康检查,飞机型号) 机械师(职工号,学历,级别,专业职称) 管理人员(职工号,职务,职称) 注意:为查询方便,可在超类实体表中增加一个指示器属性, 根据指示器的值直接查询子类实体表。

32 5.6 逻辑结构设计 二、数据模型的优化 1) 分析数据依赖。 R1 R2 R 三 、 设计用户子模式 考虑:系统的使用安全、简便、用户习惯
5.6 逻辑结构设计 二、数据模型的优化 1) 分析数据依赖。 2) 对数据依赖进行极小化处理,消除冗余的联系。 3) 确定各关系模式的范式。 4) 按照处理要求,对某些模式进行合并或分解。 5) 为提高效率和利用率,对关系模式进一步分解。 常用的两种分解方法: 垂直分解 水平分解 R R2 R r1 r2 R 三 、 设计用户子模式 考虑:系统的使用安全、简便、用户习惯

33 5.7 数据库物理设计 数据库物理设计: 为给定的数据模型选取一个最适合应用要求的物理结构的过程。 设计准备: 步骤:
确定DB的物理结构 (存取方法、存储结构) 评价结构的时、空效率 (取决于DBMS) 目标: 设计优化的物理DB结构,使得响应时间短、空间利用率高、事务吞吐率大。 设计准备: 1、分析要运行的事务,获得选择物理设计所需要的参数。 2、了解所用RDBMS的存取方法和存储结构。 如:对DB查询事务,需得到: 查询的关系: 查询条件所涉及的属性; 连接条件所涉及的属性; 查询的投影属性。

34 5.7 数据库物理设计 RDB物理设计的主要内容: 1、为关系模式选择存取方法 索引方法 聚簇方法 HASH方法 建立索引的一般原则是:
5.7 数据库物理设计 RDB物理设计的主要内容: 1、为关系模式选择存取方法 索引方法 聚簇方法 HASH方法 建立索引的一般原则是: ① 主码和外码上一般建立索引。 有利于主键惟一性的检查。 有助于参照完整性的检查。 可加快以主码和外码为连接条件属性的连接操作。 ② 可在经常按某列的顺序访问记录的列上建立索引。

35 5.7 数据库物理设计 ③ 为经常有如下情况的列建立索引: · 查询 · ORDER BY · GROUP BY · DISTINCT
④ 在经常作为最大值和最小值等集函数的列上建立索引 ⑤ 在常作为连接操作的连接条件中出现的列上建立索引 不适合建立索引的情况有: ① 太小的表。 ② 不出现或很少出现在查询条件中的属性。 ③ 属性值可能取值的个数很少的属性(如:性别)。 ④ 属性值分布严重不均的属性(如:年龄)。 ⑤ 经常更新的属性和表。 ⑥ 属性的值过长。

36 把某属性组(聚簇码)上具有相同值的元组集中存放在连续的物理块上称为聚簇。
5.7 数据库物理设计 聚簇是将相关数据集中存放的物理存储技术。 把某属性组(聚簇码)上具有相同值的元组集中存放在连续的物理块上称为聚簇。 建立聚簇的一般原则是: ① 通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无关的其他访问很少或者是次要的 。 ② 对应每个聚簇码值的平均元组数既不太少,也不太多。太少了,聚簇效益不明显,甚至浪费块的空间;太多了,就要采用多个连接块,同样对提高性能不利。 ③ 聚簇码值相对稳定,以减少修改聚簇码值所引起的维护开销。

37 5.7 数据库物理设计 HASH方法 当检索是基于Hash字段值的准确匹配时,尤其是如果访问顺序是随机的,Hash就是一种好的存储结构。
2、确定系统的存储结构 (1)确定数据的存放位置 ① 减少访问磁盘时的冲突,提高I/O的并行性。 ② 分散热点数据,均衡I/O负载。 ③ 保证关键数据的快速访问,缓解系统的瓶颈。 (2)确定系统的配置参数

38 5.7 数据库物理设计 数据库实施主要任务: (1)定义数据库结构 (2)组织数据入库 (3)编制与调试应用程序 (4)数据库试运行。
数据库维护主要任务: (1)数据的转储与恢复 (2)数据库的安全性、完整性控制 (3)数据库的性能监督、分析和改造 (4)数据库的重组织与重构造

39 设计案例: 医院信息管理系统设计 基本实验练习。
要求学生利用ACCESS数据库系统开发一个简单的应用程序,需要综合利用建库、建表、查询、窗体、报表、宏等功能,但不需要借助任何其它编程语言。本实例是两位同学实现的一个图书销售管理,充分利用ACCESS通过的各种功能,实现了相对复杂的图书信息浏览、查询、统计报表等。 综合性的应用系统开发。 要求学生利用ASP/JSP/PHP等各种网络编程技术、语言和DBMS(不限制)实现一个B/S结构的网上书店管理系统,实现书籍的网上查询和下订单购买等功能。本实例是三位同学合作完成的一个网上书店系统,实验中不仅完成本课程要求的任务,而且全面实践软件工程课程中所学的知识,多人合作完成实验。

40 第五章 数据库设计 要点 DB设计的基本步骤、各阶段的任务 数据字典的作用 概念结构设计方法 逻辑结构设计方法 练习: 本章思考题:
第五章 数据库设计 要点 DB设计的基本步骤、各阶段的任务 数据字典的作用 概念结构设计方法 逻辑结构设计方法 练习: 本章思考题: 1、 DB设计的基本步骤、各阶段的任务? 2、 数据字典的作用与分类?


Download ppt "第五章 数据库设计 数据库设计概述 需求分析 概念结构设计 设计案例 逻辑结构设计 数据库物理设计 本章小结."

Similar presentations


Ads by Google