# 数据库设计

# 1.数据库设计概述(识记)

# 数据库的生命周期

  1. 数据库分析与设计阶段:需求分析、概念设计、逻辑设计、物理设计
  2. 数据库实现与操作阶段:实现、操作与监督、修改与调整

# 数据库设计的目标

  1. 满足应用功能需求:增删查改
  2. 良好的数据库性能:共享性、完整性、一致性、安全保密性

# 数据库设计的内容

  • 数据库结构设计(静态的)
    • 概念结构设计
    • 逻辑结构设计
    • 物理结构设计
  • 数据库行为设计(动态的),行为即操作
    • 功能设计
    • 事务设计
    • 程序设计

# 数据库设计的方法

  • 直观设计法,最原始的数据库设计方法
  • 规范设计法
    • 新奥尔良设计方法:需求分析、概念结构设计、逻辑结构设计、物理结构设计
    • 基于E-R模型的数据库设计方法
    • 基于第三范式的设计方法,是一类结构化设计方法
  • 计算机辅助设计法

# 数据库设计的过程

3_1_数据库设计过程.png

# 练习题

1.对于数据库的生命周期,属于数据库实现阶段的工作是(),单选题,答案:D

  • A 需求分析
  • B 概念设计
  • C 逻辑设计
  • D 数据库的修改与调整

2.数据库设计有两个十分重要的目标,即满足( ) 和良好的数据库性能。填空题,答案:应用功能需求

3.数据库设计方法可分为三类,即( )设计法、规范设计法、计算机辅助设计法。填空题,答案:直观

4.数据库设计的第一个阶段是( )。单选题,答案:A

  • A 需求分析
  • B 结构设计
  • C 行为设计
  • D 数据库实施

# 2.数据设计的基本步骤(领会)

3_2_数据库设计基本步骤.png

# 需求分析(简单题)

目标:是了解与分析用户的信息及应用处理的要求,并将结果按一定格式整理而形成的需求分析报告

该分析报告是后续概念设计逻辑设计物理设计、数据库建立维护的依据。

需求分析内容:

  • 确定数据范围
  • 分析数据应用过程
  • 收集与分析数据
  • 编写需求分析报告

# 确定数据库范围

确定数据库范围 --- 支持哪些应用功能

  • 有效利用计算机设备及数据系统的潜在能力。
  • 提高数据库的应变能力
  • 避免应用过程中对数据库做太多或太大的修改
  • 延长数据库的生命周期

# 应用过程分析

应用过程分析 --- 结果是数据库结构设计的重要依据

  • 用到哪些数据
  • 数据使用的顺序
  • 对数据做何处理和处理的策略以及结果

# 收集与分析数据

# 静态结构
  • 数据分类表,用于数据的总体描述
数据ID 数据名 用途 主人 用户 来源 去向 存档时间 数据量
  • 数据元素表,指通常意义下的数据项或属性
数据ID 数据元素ID 元素名 意义 类型 长度 算法 备注
# 动态结构
  • 任务分类表,一个任务指为完成某一特定处理功能的相对独立的操作序列
任务ID 名称 功能 类型 主人 用户 执行日期 频率 操作过程 备注
  • 数据操作特征表,用以描述任务和数据之间的关系,它包括不同任务对数据执行不同操作的频率
任务ID 数据ID 建立 查询 插入 修改 删除 数据量
# 数据约束
  • 数据的安全保密性
  • 数据的完整性
  • 响应时间
  • 数据恢复

# 编写需求分析报告

  • 数据库的应用功能目标
  • 标明不同用户的视图范围
  • 应用处理过程需求说明,包括:数据流程图、任务分类表、数据操作特征表、操作过程说明书
  • 数据字典,是数据库系统中存储三级结构定义的数据库,通常指的是数据库系统中各类数据详细描述的集合。通常包括数据分类表、数据元素表和各类原始资料。
  • 数据量
  • 数据约束

# 概念结构设计

  • 概念模型(自顶向下)
  • 独立于任何软件与硬件(主要目标:最大限度的满足应用需求

# 逻辑结构设计

逻辑模型有哪些类型:层次模型、网状模型、关系模型、面向对象模型

  • 逻辑结构设计的输入与输出信息
  • 逻辑结构设计的步骤

3_3_逻辑结构设计.png

模型转换 => DBMS支持的关系模型、网状模型或层次模型

设计评价 => 检验模式及子模式(外模式)的正确性与合理性

# 物理设计

具体任务主要是:确定数据库在存储设备上的存储结构存取方法

因DBMS的不同还可能包括建立索引聚集,以及物理块大小缓冲区个数和大小数据压缩的选择等。

# 数据库实施

  • 加载数据:收集、分类、整理校验、输入等
  • 应用程序设计:具有较高的稳定性,并具有试运行的数据基础,也具备了应用程序编制与调试的必要条件。这样编写的应用程序具有较高的稳定性和实用性
  • 数据库试运行:有利于工作人员掌握并熟悉系统;有利于正式运行时避免人为的操作不当等损害。

# 数据库运行和维护

保证数据库的正常运行,系统维护中最困难的工作是数据库重组与重构

# 练习题

1.数据库物理设计完成后,进入( )阶段。填空题,答案:数据库实施

2.物理设计的具体任务主要是确定数据库在存储设备上的存储结构及( )。填空题,答案:存取方法

3.物理设计的内容因DBMS的不同还可能包括建立索引和( ),以及物理块大小、数据压缩等。填空题,答案:聚集

4.下表是( )。单选题,答案:B

数据ID 数据名 用途 主人 用户 来源 去向 存档时间 数据量
  • A 数据元素表
  • B 数据分类表
  • C 任务分类表
  • D 数据操作特征表

5.数据的( )是指不施加应用操作于其上时数据的原始状况,这可通过数据分类表和数据元素表进行说明。填空题,答案:静态结构

# 3.关系数据库设计方法

3_4_关系数据库设计方法.png

# 关系数据库设计过程与各级模式(识记)

3_5_关系数据库各级模式.png

# 概念结构设计(综合应用)

# E-R图的表示方法(重点)

实体:长方形(矩形);属性:椭圆;菱形:联系

  • 1 : 1 联系(一对一关系) 系 - 系主任

3_6_一对一关系.png

  • 1 : N 联系(一对多关系) 班级 - 学生

3_7_一对多关系.png

  • M : N 联系(多对多关系) 学生 - 课程

3_8_多对多关系.png

  • 三个实体之间的一对多联系

3_9_三个实体之间1对多.png

  • 三个实体之间的多对多联系

3_10_三个实体多对多联系.png

  • 单个实体型内的一对多联系

3_11_单个实体型内的一对多联系.png

# 局部信息结构设计

  • 确定局部范围,主要依据需求分析报告中标明的用户视图范围来确定,往往与子模式范围相对应。
  • 选择实体,数据分类表是选择实体的直接依据。实体选择的最大困难是如何区别实体与属性
  • 选择实体的关键字属性,实体的存在依赖于其关键字的存在。
  • 确定实体间联系,数据间的联系必须在概念设计时确定。
  • 确定实体的属性,属性分为标识属性(唯一存在的,实体的关键字)和说明属性(对实体的说明,描述的实体的一般特征)

局部信息结构设计 - 用户管理系统E-R图示例

  1. 用户:用户ID、用户名、年龄、口令
  2. 用户组:用户组ID、用户组名、用户组描述
  3. 部门:部门ID、部门名、部门所在地、部门领导
  4. 权限:权限ID、权限名、权限链接

用户组与用户是一对多联系,表示每个用户属于一个用户组、一个用户组有多个用户,其联系的名称定义为 "属于"

3_12_局部ER图_1.png

部门与用户是一对多联系,表示每个部门包含多个用户,每个用户只在一个部门,其名称定义为"包含"。

3_13_局部ER图_2.png

用户组和权限之间是多对多联系,表示一种权限可以分配给多个用户组,每个用户组可以拥有多种权限,其联系的名称定义为"拥有"

3_14_局部ER图_3.png

# 全局信息结构设计

将局部信息设计组合在一起,就是全局信息结构

3_15_全局ER图.png

# 练习题

1.对于实体集A中的每一个实体,实体集B中至少有一个实体与之联系,反之亦然,则称实体集A与实体集B之间具有的联系是( )。单选题,答案:C

  • A 多对一
  • B 一对多
  • C 多对多
  • D 一对一

2.ER模型是数据库的设计工具之一,它一般适用于建立数据库的( )。单选题,答案:A

  • A 概念模型
  • B 逻辑模型
  • C 内部模型
  • D 外部模型

3.每个部门有多名职工,每名职工在一个部门任职,实体集部门与职工之间的联系是( ),单选题,答案:B

  • A 一对一
  • B 一对多
  • C 多对一
  • D 多对多

4.为体育部门建立数据库,其中包含如下信息:

(1)运动队:队名、主教练、其中队名唯一标识运动队。

(2)运动员:运动员编号、姓名、性别、年龄

(3)运动项目:项目编号、项目名、所属类别

其中,每个运动队有多名运动员,每名运动员只属于一个运动队;每名运动员可以参加多个项目,每个项目可以有多个运动员参加。系统记录每名运动员参加每个项目所得名次和成绩以及比赛日期。

① 根据以上叙述,建立ER模型,要求标注联系类型。(实体的属性可以省略)

3_16_练习题.png

# 逻辑结构设计方法(综合应用)

# E-R图向关系模型的转换(简答题)

  • 一个实体型转换为一个关系模式,实体的属性作为关系的属性,实体的码作为关系的码。
  • 一个一对一联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
  • 一个一对多联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并
  • 一个多对多联系转换为一个关系模式
  • 三个或以上实体间的一个多元联系可以转换为一个关系模式
  • 相同码的关系模式可以合并

实例:将之前画的ER图转换为关系模型

3_17_ER图转关系模型.png

# 数据模型的优化(规范化)

数据库逻辑设计的结果,不是唯一的。需要进一步提高数据库应用系统的性能,根据需要适当的修改、调整数据模型的结构。

  • 确定个属性间的函数依赖关系
  • 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系
  • 判断每个关系模式的范式,根据实际需要确定最合适的范式
  • 按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适。确定是否要对某些模式进行合并或分解。
  • 对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率

# 设计用户子模式(外模式)

  • 可以通过视图机制,在设计用户视图时,重新定义某些属性的别名,使其更符合用户的习惯,以方便使用
  • 可以对不同级别的用户定义不同的视图,以保证系统的安全性。
  • 简化用户对系统的使用。

# 物理设计方法(识记)

# 建立索引(逻辑连接)

  • 静态简历索引
  • 动态建立索引

# 建立聚集(物理聚集)

聚集是将相关数据集中存放的物理存储技术。数据聚集结构的一种有效方式是块结构方式。数据聚集可以在一个或多个关系上建立。

# 练习题

1.为体育部门建立数据库,其中包含如下信息:

(1)运动队:队名、主教练、其中队名唯一标识运动队。

(2)运动员:运动员编号、姓名、性别、年龄

(3)运动项目:项目编号、项目名、所属类别

其中,每个运动队有多名运动员,每名运动员只属于一个运动队;每名运动员可以参加多个项目,每个项目可以有多个运动员参加。系统记录每名运动员参加每个项目所得名次和成绩以及比赛日期。

② 根据转换规则,将ER模型转换为关系模型,要求标明每个关系模式的主键或外键

3_16_练习题.png

运动队 (队名、主教练)

运动员 (运动员编号、姓名、性别、年龄、队名)

运动项目 (项目编号、项目名,所属类别)

参加 (运动员编号项目编号、名次、成绩、比赛日期)

粗体为主键、这种样式为外键

2.简述基本E-R图向关系模型转换的原则

(一个实体型,三个模式,三个以上,相同码)

  • 一个实体型转换为一个关系模式,实体的属性作为关系的属性,实体的码作为关系的码。
  • 一个一对一联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
  • 一个一对多联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并
  • 一个多对多联系转换为一个关系模式
  • 三个或以上实体间的一个多元联系可以转换为一个关系模式
  • 相同码的关系模式可以合并

3.将E-R图转换到关系模式时,实体与联系都可以表示成( )。单选,答案:B

  • A 属性
  • B 关系
  • C 键
  • D 码

4.从E-R模型向关系模型转换,一个M:N的联系转换成一个关系模式时,该关系模式的键是( )。单选题,答案:C

  • A M端实体的键
  • B N端实体的键
  • C M端实体键与N端实体键组合
  • D 重新选取其他属性
上次更新: 2020/10/29 22:59:19