数据库设计PPT课件_第1页
数据库设计PPT课件_第2页
数据库设计PPT课件_第3页
数据库设计PPT课件_第4页
数据库设计PPT课件_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章数据库设计 湖南工学院计算机与信息科学系 本章要点 数据库简介概念模型数据模型数据库规范化 9 1数据库简介 数据库是信息系统设计的基础和核心 数据库设计直接关系到信息系统开发的成败和优劣 在信息系统中 数据库设计是指根据业务需求 信息需求和处理需求 确定信息系统中的数据结构 数据操作和数据一致性约束的过程 数据库设计分为概念设计 概念结构设计 和模型设计 逻辑结构设计 他们之间的关系如图9 1所示 图9 1概念设计和模型设计的关系 9 1 1数据库的基本概念 1 数据库与数据库管理系统数据库 DB 是长期储存在计算机内的 有组织的 可共享的数据集合 数据库仅仅是一个概念 是对这种数据集合的统称 数据库由数据库管理系统 DBMS 统一管理 以保证数据的安全性 可靠性和提供多用户共享 因此 数据库管理系统是对这一类软件的统称 如Access SQLServer是微软公司开发的一个数据库管理系统 类似的Foxpro Mysql Oracle等都分别是一种数据库管理系统 9 1 1数据库的基本概念 2 数据模型从数据库对数据管理的模式分类 数据库有层次型 网状型和关系型 较常见的是关系模型 3 数据处理与数据管理数据处理是指对各种数据进行收集 存储 加工和传播的一系列活动的总称 数据管理指的是对数据进行分类 组织 编码 存储 检索和维护等 它是数据处理的中心问题 9 1 2数据库设计的主要任务 管理信息系统中对于大量数据的存储与共享 一般都会用到数据库的支持 即录入的大量数据或信息需要以某种方式存储到数据库中 并在数据库管理系统的支持下 对数据进行各种加工处理 以实现查询 统计等功能 因此 管理信息系统开发过程中 对于数据库的设计是一种重要的任务 如何将实体 信息转化为相应的数据 并以与数据库相适合的模式存到数据库中 以实现数据共享 这是数据库设计的中心任务 因此 数据库设计的主要任务包括实体的代码设计 实体概念模型到数据模型的转换以及对数据存储结构的规范化处理 9 2概念模型 即数据库概念设计 它是针对现实世界 通过对其中信息实体的收集 分类 聚集和概括 建立数据库概念结构的过程 概念结构也叫概念数据模型 它应该反映现实世界中的组织的业务模式 信息结构和信息间的相互制约关系 以及对信息的加工 存储和查询要求等 概念数据模型是对数据的抽象描述 它应该独立于具体的数据处理细节和数据库管理系统 9 2 1实体 信息和数据 实体 信息和数据分别描述了人们在认识客观事物 记录客观事物的过程中三个不同范畴的概念 现实世界中形形色色的事物都以其固有的特征和行为客观地存在和运动着 这些内容反映到人的头脑中就形成了信息 要把这些信息记录下来 以便被加工和利用 就必须利用数据这一载体形式 在管理信息系统的开发过程中 被管理的对象就是客观事物 对客观事物的认识和记录就分别表现为信息和数据的形式 分清这三个相互映射的范畴的对应概念非常重要 9 2 1实体 信息和数据 表9 1以表格的形式分别对照地说明了这三个范畴的相关概念 图9 2以图示的方式形象地表示了这三个范畴中相关概念的映射与演变过程 表9 1现实世界 信息范畴和数据范畴概念的关系 9 2 1实体 信息和数据 图9 2实体 概念模型 数据模型的关系 在系统开发过程中 首先要选择确定信息系统被管理的对象 如物资 产品 原材料 定额 工序等 这些是客观事物 对客观事物进行分析 抽取能够表述其特征与行为的属性 需要用到信息范畴的相关概念 我们常用实体关系模型来表示对这些客观事物的认识和描述 最后 要把这些信息存储在计算机管理信息系统中 则必须将其转变为数据库中的相关概念 如关系 记录 字段等概念 9 2 2实体 关系模型 概念模型 即 实体 关系 模型 它具有三种基本成分 实体 关系和属性 在系统分析与设计过程中 常用 E R图 来表示 如图9 3所示 图9 3表示实体 关系模型的 E R图 9 2 2实体 关系模型 1 客观存在并可相互区分的事物叫实体 如图9 3中的 学生 课程 在管理信息系统中 这些实体对应的事物就是被管理的对象 实体不仅是客观世界中存在的有形的物本 也可以是我们思维过程中的一个概念 如 定额 职称级别 工资等级 学生类别 学科性质 等 2 属性是实体所具有的一些特性 一般使用一组属性来描述一个实体的特征 即一个实体可以由若干个属性来刻画 如图9 3所示 学生可由学号 姓名 系别等组成 课程可以用课程编号 课程名 主讲老师等属性来描述 3 域是属性的取值范围 例如 性别的域为 男 女 月份的域为1 12的整数 9 2 2实体 关系模型 4 关系是实体之间的相互关联 如学生与老师间的授课关系 学生与学生间的班长关系 关系有一对一 一对多 多对多三种不同类型 关系也可以有属性 如学生与课程之间有选课联系 每个选课联系都有一个成绩作为其属性 5 关系的元或度 参与关联的实体集的个数称为关系的元 图9 3中 学生选修课程是二元联系 6 能唯一标识实体的属性称为主码 一个实体集中任意两个实体在主码上的取值不能相同 如学号是学生的实体主码 注意 主码对应数据库中的关键字域 但在实体 关系图中称码为 主码 而不是叫关键字 关键字是数据库中的概念 9 2 2实体 关系模型 1 联系 1 一对一联系 1 1 如果对于实体集A中每一个实体 实体集B中至多只有一个实体与之联系 反之对于实体集B中每一个实体 实体集A中也至多只有一个实体与之联系 我们称实体集A与实体集B之间具有一对一联系 记为1 1 如下图所示 9 2 2实体 关系模型 2 一对多联系 1 n 如果对于实体集A中每一个实体 实体集B中有n个实体 n 0 与之联系 反之对于实体集B中每一个实体 实体集A中至多只有一个实体与之联系 我们称实体集A与实体集B之间具有一对多联系 记为1 n 如下图所示 一对一联系是一对多联系的特例 9 2 2实体 关系模型 3 多对多联系 m n 如果对于实体集A中每一个实体 实体集B中有n个实体 n 0 与之联系 反之对于实体集B中每一个实体 实体集A中也有m个实体 m 0 与之联系 我们称实体集A与实体集B之间具有多对多联系 记为m n 如下图所示 一对多联系是多对多联系的特例 9 2 2实体 关系模型 2 E R图的画法我们在考察了客观事物及其联系之后 即着手建立E R模型 在模型设计中 首先根据分析阶段收集到的资料 利用分类 聚集 概括等方法抽象出实体 并一一命名 再根据实体的属性描述其间的各种关系 E R模型中 用矩形表示实体 实体间的关系用菱形表示 用无向边把实体和关联连接起来 在边上标明联系的类型 实体的属性可以用椭圆表示 并用无向边把实体和属性联系起来 9 2 2实体 关系模型 用E R图来表示某个学校日常教学管理的概念模型 对日常教学管理进行认识分析 日常教学管理涉及的实体有 学生 属性有学号 姓名 性别和出生日期教师 属性有教师编号 姓名 学历和专长课程 属性有课程号 课程名称 学分院系 属性有院系编号 院系名称 联系电话 9 2 2实体 关系模型 这些实体之间的联系如下 1 一个院系可以容纳若干个教师和学生 而一个教师或学生只能隶属于一个院系 因此院系和教师之间以及院系与学生之间是一对多的联系 2 一个院系可以开设多门课程 而一门课程只能由一个院系提供 因此院系和课程之间的联系是一对多的 3 一个教师可以教授多门课程 而一门课程可以由多位教师主讲 由此可以看出 教师和课程之间是多对多的联系 4 学生可以选修多门课程 一门课程可以被若干个学生选修 学生与课程之间的联系是多对多的 9 2 2实体 关系模型 9 2 2实体 关系模型 3 设计E R图应遵循的原则E R图是对现实世界的一种抽象 它抽取了客观事务中人们所关心的信息 忽略了非本质的细节 对这些信息进行了精确地描述 设计E R图应以下原则遵循的原则 1 首先针对特定用户的应用 确定实体 属性和实体间的联系 作出反映该用户视图的局部E R图 2 综合各个用户的局部E R图 产生反映数据库整体概念的总体E R图 在综合时 删掉局部E R图中的同名实体 以便消除冗余 保持数据的一致性 3 在综合局部E R图时 还要注意消除那些冗余的联系 冗余信息会影响数据的完整性 使维护工作复杂化 但有时也要折中考虑 有时必要的冗余会提高数据处理效率 4 综合时也可以在总体E R图中增加新的联系 9 3数据模型 数据模型是相对概念模型而言的 是对客观事物及其联系的数据化描述 在数据库系统中 对现实世界中数据的抽象 描述以及处理等都是通过数据模型来实现的 关于概念模型和数据模型的关系 可以说数据模型在数据库系统设计中是用来提供信息表示和操作手段的形式架构 是数据库系统实现的基础 9 3 1基本概念 目前 主要的数据模型是关系模型 用关系 二维表格数据 表示实体和实体之间联系的模型称为关系数据模型 从用户观点看 关系模型由一组关系组成 每个关系的数据结构是一张规范化的二维表 现在以学生登记表为例 介绍关系模型中的一些术语 1 关系 Relation 一个关系对应通常说的一张表 如学生登记表 2 元组 Tuple 表中的一行即为一个元组 3 属性 Attribute 表中一列即为一个属性 给每个属性起一个名称即属性名 如这张表中对应6列 对应6个属性 学号 姓名 年龄 性别 系名和年级 9 3 1基本概念 4 码 Key 也称为码键 表中的某个属性组 它可以唯一确定一个元组 如学生登记表中学号可以唯一确定一个学生 也就成为本关系的码 5 域 Domain 属性的取值范围 如人的年龄一般在1 100岁之间 性别的域是 男 女 系别的域是一个学校所有系别的集合 6 分量 元组中的一个属性值 9 3 2概念模型到数据模型的转换策略 在E R模型中有实体和关系两类元素 这些信息在数据库设计中将转变为数据库关系模型中的二维表来表示 关系又有多种类型 如 1对1 关系 1对多 关系和 多对多 关系 如何将 实体 和不同的种类的 关系 转化为相应的二维表形式 需要掌握一些具体的转换策略 9 3 2概念模型到数据模型的转换策略 1 用二维表表示一个实体的信息 如图9 4所示 将实体的相关信息表示为二维表时 实体的具体某个属性对应二维表中的一个列 每一列关系型数据库中对应一个字段 在每个实体的信息二维表中对应一行 第一行在关系型数据库中对应一条记录 实体的主码就是二维表的关键字 实体信息用概念模型表示就是图9 4中的 E R 图 将其转为关系模型中的表示方式 就是图9 4中 学生 学号 姓名 籍贯 这种形式 就是关系模型 对应一张二维表 在设计数据结构时 常需要将这种关系模型表示方式表示为图9 4右侧的数据结构表示形式 9 3 2概念模型到数据模型的转换策略 图9 4用二维表表示实体信息 9 3 2概念模型到数据模型的转换策略 2 用二维表表示一个m n关系 如图9 5所示 与关系 选修 相连的各实体的代码 如 学号 课程号 以及关系本身的属性 成绩 均成为此表的列 此表的关键字为相连的各实体的关键字的组合 即 学号 课程号 图9 5用二维表表示m n的关系 9 3 2概念模型到数据模型的转换策略 3 用二维表表示一个1 n关系 如图9 6所示 使用两个二维表表示这种1 n的关系 将一端实体的关键字并入n端实体 即在n端实体的表中增加1端实体的代码 如 班级号 图9 6用二维表表示1 n的关系 班 9 3 2概念模型到数据模型的转换策略 4 用二维表表示一个 1 1关系 如图9 7所示 使用两个二维表来表示这种关系 将任一端实体的标识码并入另一端实体 即在该端实体的表中增加另一端实体的代码 如在 班主任 实体信息中 增加其所属的 班级号 图9 7用二维表表示1 1的关系 9 3 2概念模型到数据模型的转换策略 5 对三个以上实体间的多元关系的转换及自关系 对三个以上实体间的多元关系根据相同的转换规则 按关系的不同类型进行相应的转换 如图9 8所示 同一实体集的实体间的自关系的转换策略 如图9 9所示 图9 8用二维表表示三个以上实体的关联信息 图9 9用二维表表示实体自关系 号 9 4数据库规范化 在关系模式设计时 经常存在的数据存储异常现象 数据冗余 修改异常 插入异常 删除异常等 为了解决这些问题 需要对关系数据库规范化 关系数据库的规范化就是关系数据库中的每一个关系 二维表 都必须满足一定的条件 9 4 1规范化的概念 规范化理论以关系模型为背景 以关系理论为基础 一个规范化的数据结构可以表示成二维表 符合关系型数据库的存储关系要求 换句话说 一个数据关系只要符合二维表的特点 那么它就是规范化的 表中任意一列上的数据项应属于同一属性 表中所有行都不是相同的 不允许有重复组项出现 一行是一个不同的学生记录 表中行的顺序无关紧要 如每行都是一个学生记录 先放哪个学生记录都没有关系 表中列的顺序无关紧要 但不能重复 如学号与学生姓名的先后顺序没有关系 但二者不能重名 9 4 2非规范化形式 所谓非规范化形式 就是不能满足二维表特点的数据关系形式 如表9 2所示 表9 2所列的数据关系不符合二维表的特点 所以该数据关系为非规范化的 比较明显的地方是 储备定额域存在层次表头 表格内容中存在一行对多行的情形 这样的数据关系不符合二维表的特点 无法存入关系型数据库 9 4 2非规范化形式 表9 2物资库存情况 9 4 3第一范式 所谓第一范式 1NF 是指数据库表的每一列都是不可分割的基本数据项 同一列中不能有多个值 即实体中的某个属性不能有多个值或者不能有重复的属性 如果出现重复的属性 就可能需要定义一个新的实体 新的实体由重复的属性构成 新实体与原实体之间为一对多关系 在第一范式 1NF 中表的每一行只包含一个实例的信息 简而言之 第一范式就是无重复的列 说明 在任何一个关系数据库中 第一范式 1NF 是对关系模式的基本要求 不满足第一范式 1NF 的数据库就不是关系数据库 9 4 3第一范式 如果将表9 2中的层次表头的现象去掉 表中各行消去一行对多行的情形 该表就符合二维表的特点了 该数据结构就转变为规范化形式了 任何满足规范化要求的数据结构都称为第一规范形式 记为1NF 由此可见 将一个非规范化的数据结构转化为规范化的结构方法就是设法将其变为二维表 本例中 将表9 2拆分成表6 3和表6 4之后 就由一个非规范化的数据结构转化为了两个1NF的数据结构了 9 4 3第一范式 符合1NF的数据结构仍然存在严重的存储缺陷 如下所述 1 删除异常 当目前供应商不再供应该物资 删除厂家信息后 物资信息也会随之被删除 但本单位还需要使用该物资 2 插入异常 数据库需要添加一种新的物资 但还没有供应厂家时 无法添加 3 修改麻烦 当某个供应商厂地址变化以后 需要多处修改其在数据库中的信息 且很难保证修改彻底 4 存在严重的数据冗余 供应商的信息随每条物资记录都要重复存储多遍 9 4 4第二范式 第二范式 2NF 是在第一范式 1NF 的基础上建立起来的 即满足第二范式 2NF 必须先满足第一范式 1NF 第二范式 2NF 要求数据库表中的每个实例或行必须可以被惟一地区分 为实现区分通常需要为表加上一个列 以存储各个实例的惟一标识 例如员工信息表中加上了员工编号 emp id 列 因为每个员工的员工编号是惟一的 因此每个员工可以被惟一区分 这个惟一属性列被称为主关键字或主键 主码 第二范式 2NF 要求实体的属性完全依赖于主关键字 所谓完全依赖是指不能存在仅依赖主关键字一部分的属性 如果存在 那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体 新实体与原实体之间是一对多的关系 为实现区分通常需要为表加上一个列 以存储各个实例的惟一标识 简而言之 第二范式就是属性完全依赖于主键 9 4 4第二范式 1NF的数据结构存在缺陷的主要原因 是数据结构中存在非关键字字段部分函数依赖 部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况 整个关键字的情形 如图9 10所示 该结构的关键字 物资名称 供应商 是一个复合关键字 这样就要求所有非关键字段都要同时依赖于这两个字段才是 依赖于整个关键字 但事实上 我们看到 型号规格 最高储备量 最低储备量 经常储备量 和 当前库存量 都只依赖于 物资名称 这就是所谓的 部分地依赖关键字 的情形 同样的 供应商地址 也只依赖于 供应商 9 4 4第二范式 图9 10第一范式的数据结构的缺陷 9 4 4第二范式 改进的办法就是 通过分解结构 取消 部分依赖 关系 将其转化为多个第二范式的结构 换言之 如果所有非关键字数据项完全函数地依赖于它的整个关键字 则称该数据结构是第二范式的 记为2NF 具体方法是通过分解结构 去掉部分依赖关系 确保所有非关键字元素依赖于整个关键字 可将图9 10中第一范式的结构分解为三个符合第二范式要求的结构 如图9 11所示 并分别指定关键字 图9 11符合第二范式的数据结构 9 4 5第三范式 是指表中的所有数据元素不但要能够唯一地被主关健字所标识 而且它们之间还必须相互独立 不存在其它函数关系 分析图9 11中的数据结构 不难发现 订货金额 是一个冗余数据项 因为订货金额可以从订货价和订货量计算得出 所以没必要存入数据库中 因此 符合第二范式的数据结构仍然存在缺陷 那就是可能存在数据冗余 产生冗余的原因是这个数据结构中存在着 传递依赖 所谓传递函数依赖 指的是如果存在 A B C 的决定关系 则C传递函数依赖于A 情形 即 订货金额 通过 订货价 和 订货量 传递地依赖主关键字 物资名称 供应商 传递依赖 是第二范式产生缺陷的本质 优化的办法是删除冗余数据项 去掉 传递依赖 情形 得到如图9 12所示的数据结构 物资名称 供应商订货量订货价图9 12符合第三范式的数据结构 9 4 5第三范式 数据结构规范化的过程可以归纳为如图9 13中所示的步骤 图9 13 9 4 6实例 在物资供应系统中 存在如图9 14所示的一个 材料 供应商 库存 关系 在进行数据库设计的过程中 首先要对该数据结构进行规范化 从图9 14可以看出 该结构符合二维表的特点 因此 它自然是第一范式的结构 对第一范式的数据结构 第一步是要指定关键字域 经过分析 关键字域包括两个属性 即 材料编号 供应商名称 但不难看出 该数据结构中存在着 部分依赖 关系 如非关键字属性 规格 材料名称 只依赖于 材料编号 而非关键字属性 供应商地址 只依赖于 供应商名称 因此 该结构不是一个第二范式的数据结构 9 4 6实例 图9 14 9 4 6实例 针对关键字域分解结构 去掉部分依赖关系的情形 将原结构分解成图9 15所示的三个数据结构 这三个结构中都不存在部分依赖关系了 因而它们都是2NF的结构 图9 15符合第二范式的数据结构 9 4 6实例 从图9 15可以看出 材料库存 这个结构中存在传递依赖关系 即 库存占用金额 通过 价格 和 库存量 传递地依赖于整个关键字 材料编号 供应商名称 因此它不是第三范式的结构 不难看出 库存占用金额 明显属于冗余数据项 因此 去掉多余的 库存占用金额 即可将 材料库存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论