第章数据概念模型及关系模型设计PPT课件.ppt_第1页
第章数据概念模型及关系模型设计PPT课件.ppt_第2页
第章数据概念模型及关系模型设计PPT课件.ppt_第3页
第章数据概念模型及关系模型设计PPT课件.ppt_第4页
第章数据概念模型及关系模型设计PPT课件.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

数据库原理与应用 课 2020 3 21 2 浙江长征职业技术学院 ZHEJIANGCHANGZHENGZHIYEJISHUXUEYUAN 第3章数据概念模型及关系模型设计 2020 3 21 3 知识目标 了解数据库发展过程中的3个模型理解实体与概念模型的概念理解实体与关系模型的概念掌握1NF 2NF 3NF 能力目标 明确与数据库技术相关的职业技术岗位能够根据项目需求分析进行数据库的概念模型设计能够根据项目需求分析将概念模型转换为关系模型能够分析关系模型并将其规范化通过项目需求分析 培养和客户沟通的能力 重点难点 概念模型 关系模型关系规范化 2020 3 21 第3章数据概念模型及关系模型设计 知识框架 本章知识内容为数据库应用系统开发流程中需求分析 概念模型设计和逻辑模型设计 学习内容知识框架如图3 1所示 2020 3 21 4 第3章数据概念模型及关系模型设计 总项目 学生选课管理系统数据模型设计总项目概述 学生学籍管理系统包括班级 学生 课程 教师等实体 含有学生选课管理子模块 学生档案管理子模块 学生成绩管理子模块 课程管理子模块 教师授课管理子模块 教师档案管理子模块等 其中学生选课子模块中包含 学生 和 课程 两个实体 在 学生 和 课程 之间 学生通过 选课 与 课程 发生联系 因此把 选修 确定为联系类型 并且 学生 和 课程 之间是m n联系 2020 3 21 5 任务1概念模型设计 1 1任务情境为 学生选课管理系统 设计一个ER模型1 2 任务实现 1 首先确定实体 本题有两个实体类型 学生s 课程c 2 确定联系 实体s与实体c之间有联系 且为m n联系 多对多联系 命名为sc 3 确定实体和联系的属性 实体学生s的属性有 学号sno 班级class 姓名sname 性别ssex 出生日期birthday 地址address 电话tel 邮箱email 其中实体标识符为sno 实体的主码 实体课程c的属性有 课程编号cno 课程名称cname 学分credit 其中实体标识符为cno 实体的主码 联系选课sc的属性是某学生选修某课程的成绩score 利用E R方法画出 学生选课管理系统 ER图 如图3 2所示 2020 3 21 6 7 图3 2 学生选课管理系统 ER图 任务1概念模型设计 2020 3 21 8 数据库设计的任务是针对特定的应用需求和环境 创建一个性能良好的数据库模式 建立数据库 并基于数据库开发及其应用软件系统 使系统能有效地收集 存贮和管理数据 并对数据进行处理和加工 一 数据库设计概述数据库设计步骤分为6个阶段 3 1数据库设计的要求和步骤 1 需求分析阶段进行数据库设计首先必须准确地了解与分析用户需求 包括数据和处理 需求分析是整个设计过程的基础 是最困难 最耗时间的一步 需求分析做得不好 甚至会导致整个数据库设计返工重做 2020 3 21 9 2 概念结构设计阶段概念结构设计是整个数据库设计的关键 它通过对用户需求进行综合 归纳与抽象 形成一个独立于具体DBMS的概念模型 实体模型也叫概念模型 3 逻辑结构设计阶段逻辑结构设计是将概念模型转换为某个DBMS所支持的数据模型 关系模型 并对其进行优化 4 数据库物理设计阶段数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构 包括存贮结构和存贮方法 3 1数据库设计的要求和步骤 2020 3 21 10 5 数据库实施阶段运用DBMS提供的数据语言 根据逻辑设计和物理设计的结果建立数据库 编制与调试应用程序 组织数据入库 并进行试运行 6 数据库运行和维护阶段数据库应用系统经过试运行之后 即可投入正式运行 在数据库系统运行过程中必须不断地对其进行评价 调整和修改 设计一个完善的数据库应用系统是不可能一蹴而就的 它往往是上述6个阶段的不断反复的过程 3 1数据库设计的要求和步骤 2020 3 21 11 3 2概念模型与数据模型 现实世界是存在于人脑之外的客观世界 如何使用数据来解释和认识现实世界 则需要相应手段进行描述 模型是对现实世界的模拟和抽象 船模 航模等都是对现实世界事物的一种模拟 数据模型也是一种模型 它是对现实世界问题的数据特征的描述 2020 3 21 一 三个世界 12 1 现实世界泛指存在于人们头脑之外的客观世界 其中存在着各种事物 事物间又具有不同的联系 为了用数据库系统来解决现实世界中的问题 就必须先深入实际 把要解决的问题调查清楚 分析与问题有关的事物及其联系 关键词 事物 联系2 信息世界是现实世界在人们头脑中的反映 客观事物在观念世界中称为实体 反映事物联系的是实体模型 概念模型 关键词 实体 联系 概念模型3 数据世界信息世界中的信息经数字化处理形成计算机能够处理的数据 就进入了数据世界 现实世界中的实体及其相互联系被转换成数据世界中的数据及其联系 这种联系是用数据模型描述的 关键词 数据 联系 数据模型 3 2概念模型与数据模型 2020 3 21 13 因此 客观事物系信息之源 是设计数据库的出发点 也是使用数据库的最终归宿 实体模型 概念模型 与数据模型是对客观事物及其联系的两种抽象描述 数据库的核心问题是数据模型 为了得到正确的模型 首先要充分了解客观事物 4 现实世界 信息世界 数据世界的关系 3 2概念模型与数据模型 2020 3 21 14 二 概念模型 3 2概念模型与数据模型 现实世界中的事物在人们头脑中反映的信息世界是用文字和符号记载下来的 描述事物的术语有以下几种 1 实体 Entity 客观世界中存在的并可以相互区分的事物或概念 称为实体 实体可以是具体的 如一个学生 一本书 也可以是抽象的事件 如一场足球比赛 实体的表征 实体用型 Type 和值 Value 来表征 例如 一个学生是一个实体 学生的 学号 姓名 年龄 系别 是实体的型描述 而具体的学生 021031001 王明 20 计信系 是实体值 2 属性 Attribute 实体所具有的某一特性在信息世界中称为属性 一个实体可以由若干个属性来刻画 例 一个学生有姓名 性别 年龄等属性 属性的域 属性的取值范围称为该属性的域 每个属性都有一个值域 Domain 例 性别 男 女 年龄 20 35 值域有类型 可以是整数 实数或字符型等 例姓名的类型为字符型 年龄的类型为整型 属性的表征 属性用型 Type 和值 Value 表征 例 学号 姓名 性别 年龄 是属性的型 而具体的021031001 王明 男 20则是属性值 2020 3 21 15 3 2概念模型与数据模型 3 实体型 EntityType 或实体的描述具有相同属性的实体必然具有共同的特征和性质 用实体名及其属性名集合来抽象和刻画同类实体 称为实体型 如 学生实体 其型的描述为 学生 学号 姓名 性别 年龄 是一个实体型 4 实体值是实体的具体实例 是属性值的集合 如 学生王明的实体值是 021031001 王明 男 18 属于同一实体集的实体的实体型是相同的 但实体值是不同的 5 实体集 Entityset 性质相同的同类实体的集合称为实体集 或同型实体的集合称为实体集 如 一班学生 一批书籍 6 码 键Key 能惟一标识实体集中每个实体的属性或属性组称为实体集的码 键Key 当一个实体集中包括多个码时 通常要选定其中一个码为主码 其他是候选码 实体集中不能惟一标识实体属性的叫次码 2020 3 21 16 3 2概念模型与数据模型 7 实体集联系建立实体模型的一个重要任务就是要找出实体集之间的联系 常见的实体集联系有以下3种 设A和B为两个实体集 用矩形表示实体集 菱形表示联系 一对一联系 1 1 如果A中的任一实体至多对应B中的一个实体 且B中的任一实体至多对应A中的一个实体 则称A与B是一对一联系 例 电影院观众与座位实体集之间 乘车旅客与车票之间 病人与病床之间等都是一对一联系 叫E 图 也称为E 模型 2020 3 21 17 3 2概念模型与数据模型 一对多联系 1 N 如果A中至少有一个实体对应B中一个以上实体 且B中任一实体至多对应A中一个实体 则称A对B是一对多联系 例 学校对系 班级对学生等都是一对多联系 2020 3 21 18 3 2概念模型与数据模型 多对多联系 M N 如果A中至少有一个实体对应B中一个以上实体 且B中也至少有一个实体对应A中一个以上实体 则称A与B是多对多联系 例如 学生与课程 工厂与产品 商品与顾客等都是多对多联系 2020 3 21 19 3 2概念模型与数据模型 8 E R模型E R模型是一种语义模型 又叫E R图 实体 联系模型 Entity RelationshipApproach E R模型的构成成分是实体集 属性和联系集 一对一 一对多 多对多 构成方法如下 实体集用矩形框表示 框内写上实体集名 实体的属性用圆或椭圆表示 其内写上属性名 并用无向边与其实体集相连 2020 3 21 20 3 2概念模型与数据模型 实体集间的联系用菱形框表示 联系以适当含义命名 名字写在菱形框内 用无向连线将参加相应联系的实体矩形框分别与菱形相连 并在连线上标明联系的类型 注意 1和M要写在对应实体矩形那边的连线上 不可写反 2020 3 21 21 3 2概念模型与数据模型 2020 3 21 22 3 2概念模型与数据模型 例 班级 学生实体集及其联系 实体集 学生 学号 姓名 性别 年龄 班级 班级号 班级名 人数 属性 学号 班级号 分别是学生实体集和班级实体集的码或键 故其属性名有下划线 人数 属性是派生属性 其值可以从其他相关实体或属性中派生出来 其值可以通过计算该班级学生实体的数目而获得 故用虚椭圆形框表示 联系 属于 是1对多 由于参与者 学生 在 属于 联系中是全部的 所以用双线将其与 属于 联系相连 2020 3 21 23 3 2概念模型与数据模型 例 课程 实体集 教师 实体集及相互间的联系 2020 3 21 24 其中 E mail地址 属性是一个多值属性 故用双椭圆形框表示 家庭地址 属性是一个复合属性 在其下面还有4个属性与其相连 教师号 下有一下划线 表示此属性是 教师 实体的码 键 总之 E R模型是数据库设计人员与用户进行交互的最有效工具 用E R模型来描述概念模非常接近人的思维 易被人理解 而且E R模型与具体的计算机系统无关 易被不具备计算机知识的最终用户接受 3 2概念模型与数据模型 2020 3 21 25 人们常常首先将现实世界抽象为信息世界 然后将信息世界转换为机器世界 也就是说 首先把现实世界中的客观对象抽象为某一种信息结构 这种信息结构并不依赖于具体的计算机系统 不是某一个DBMS支持的数据模型 而是概念级的模型 然后再把概念模型转换为计算机上某一DBMS支持的数据模型 3 2概念模型与数据模型 概念模型小结 2020 3 21 26 3 2概念模型与数据模型 定义 反映实体集之间联系的模型称为模念模型 又称为实体模型 它独立于计算机系统 它是按用户的观点来描述某个业务所关心的信息结构 是对现实世界的第一层抽象 数据库设计的重要任务就是建立概念 实体 模型 它是概念数据库的具体描述 在建立实体模型中 实体要逐一命名以示区别 并描述其间的各种联系 概念模型的表示 用E R图 E R模型 实体 联系模型 2020 3 21 任务2关系模型设计 2 1任务情境将任务1的 学生选课管理系统 的ER模型转换为关系模型2 2任务实现首先转换两个实体为关系 学生关系模式s sno class sname ssex birthday address tel email 课程关系模式c cno cname credit 再转换一个联系为关系 选课关系模式sc sno cno score 最后将具有相同码的关系合并 得出新的关系模型如下表3 2所示 2020 3 21 27 28 在描述现实世界的过程中 通常将模型分为两个层次 第1是概念模型 也称信息模型 实体模型 它是对现实世界的第一层抽象 是根据用户的观点对信息建模 与计算机系统无关 第2是数据模型 是对现实世界的第二层抽象 直接与DBMS有关 这类模型有严格的形式化定义 以便于在计算机系统中实现 它通常有一组严格定义的无二义性语法和语义的数据库语言 人们可以用这种语言来定义 操作数据库中的数据 定义 一般地讲 数据模型是严格定义的概念的集合 这些概念精确地描述了系统的静态特征 动态特征和完整性约束 因此 数据模型通常由数据结构 数据操作和完整性约束三部分组成 又称为数据模型的三要素 3 3数据模型 2020 3 21 29 3 3数据模型 数据模型三要素1 数据结构数据结构是所研究的对象类型的集合 它规定了如何把基本的数据项组织成较大的数据单位 以描述数据的类型 内容 性质和数据之间的相互关系 它是数据模型最基本的组成部分 规定了数据模型的静态特性 在数据库系统中通常按照数据结构的类型来命名数据模型 例如 采用层次型数据结构 网状型数据结构和关系型数据结构的数据模型分别称为层次模型 网状模型和关系模型 2020 3 21 30 3 3数据模型 2 数据操作数据操作是对数据库中各种对象 型 的实例 值 允许执行的操作的集合 包括操作及操作规则 数据库操作主要包括查询和更新 包括扦入 删除 修改 两类操作 数据模型要给出这些操作确切的含义 操作规则和实现操作的语言 因此 数据操作规定了数据模型的动态特性 3 数据约束数据约束是指一组完整性规则的集合 完整性规则是对给定的数据模型中的数据及其联系所制定的约束和依存规则 用以限定符合数据模型的数据库状态以及可容许的状态改变 以保证数据库中的数据的正确性 有效性和相容性 2020 3 21 31 3 3数据模型 完整性约束的定义对数据模型的动态特性做了进一步的描述与限定 因为在某些情况下 若只限定使用的数据结构及可在该结构上执行的操作 仍然不能确保数据的正确性 有效性和相容性 为此 每种数据模型都规定有通用和特殊的完整性约束条件 通用的完整性约束条件 通常把具有普遍性的问题归纳成一组通用的约束规则 只有在满足给定约束规则的条件下才允许对数据库进行更新操作 例如 关系模型中通用的约束规则是实体完整性和参照完整性 特殊的完整性约束条件 把能够反映某一应用所涉及的数据所必须遵守的特定的语义约束条件定义成特殊的完整性条件 例如 关系模型中特殊的约束规则是用户定义的完整性 又例如 在实行学分制的条件下 一个学籍管理数据库中学生的修业年限限定在6年之内 2020 3 21 32 3 3数据模型 常见的三种数据模型数据库系统中最常使用的数据模型是 层次模型 hierarchicalmodel 网状模型 networkmodel 关系模型 relational 不同的数据模型具有不同的数据结构形式 操作特点 层次模型 是数据库中使用得较早的一种数据模型 2020 3 21 33 3 3数据模型 2 网状模型在现实世界中事物之间的联系更多的是非层次关系 用层次模型表示非树形结构是很不直接的 网状模型则可以克服这一弊病 结构是结点的连通图 2020 3 21 34 3 关系模型关系模型是目前最重要的 应用最广泛的一种数据模型 原因 首先 关系模型是建立在严格的数学概念基础上的 有其坚实的数学基础 其次这种数据模型被实践证明是正确有效的数据模型 数据结构在用户看来 一个关系模型的逻辑结构是一张二维表 它由行和列组成 亦即 在关系数据模型中 把二维表格称为关系 Relation 3 3数据模型 2020 3 21 2020 3 21 35 36 术语 字段 Field 信息世界中的 属性 一词 在数据世界中使用 数据项 一词进行描述 从数据库的角度讲 数据项就是字段 从表格的角度讲 数据项称为列 通常使用字段这一名词比较通俗 例如 学生的学号 姓名 年龄 性别就是字段的字段名 字段和属性一样 也用 型 和 值 表征 由此可见 字段 属性 数据项 列这些术语 所描述的对象是相同的 只是在不同角度 叫法不同而已 记录 Record 字段的有序集合称为记录 在关系模型中 记录称为元组 在表中 记录称为一行 在概念模型中称为实体 即实体 记录 元组和行是从不同的角度描述同一个对象 记录也由 型 和 值 来描述 记录型是字段型的集合 记录值是字段值的集合 3 3数据模型 2020 3 21 37 例 组成一个学生行的字段如 学号 姓名 年龄 性别 是记录的型 而 021031002 王小艳 18 女 就是一条记录的值 表即关系记录是字段的集合 表是记录的集合 记录的型和值构成了关系数据库的基本单位即表 显然 表也分为型和值 表的型也称为关系模式 或称为表结构 显然是由一条列属性 字段 型组成的 关系模式一般的表示是 关系名 属性1 属性2 属性n 例 学生 学号 姓名 性别 年龄 所在系 表的值由记录的值组成 关键字 码 键 表中能唯一确定一条记录的字段或字段组 其余为次码 主码 一个表中包括有多个码时 通常选定其中一个码为主码 PrimaryKey 其他的码为侯选码 3 3数据模型 2020 3 21 38 域 字段的取值范围 关系数据库所谓关系数据库就是由若干个表组成的集合 亦即 关系数据库至少有一个表 才能称之为关系数据库 在关系模型中 实体集以及之间的联系都是用关系 表 来表示 即用二维表表示实体集及其属性 用二维表描述实体集间的联系 例如 关系模型中 学生 课程 学生与课程之间的联系表示为三个关系 学生 学号 姓名 性别 年龄 所在系 课程 课程号 课程名 先行课 选修 学号 课程号 成绩 3 3数据模型 2020 3 21 39 关系组成与性质一个关系实际上就是一个表 表是由不同的列组合而成的 例 学生 关系由型和值组成一个表 型部分由5个字段组成 每个字段有 字段名 字段类型 字段宽度 如学号字段 名 学号 类型C 字符型 宽度8 表示最大取值范围 值部分由一条一条记录值组成 即这个表是由5个字段和5条记录组成 字段的型 值 域都被一一描述在表中 3 3数据模型 2020 3 21 40 从这个关系中可以得出一些重要的结论 表中每一列元素是类型相同的数据 列不能重名 列的顺序可以任意放置 行的顺序也可以任意 表中任意两行不能完全相同 即没有重行 表中元素是不可再分的最小数据项 描述对象属性的数据 E 模型的转换 模型原主要用于数据库逻辑设计 数据库逻辑设计是由客观世界到具体DBMS所支持的数据模式的转换过程 E R模型就是插在客观世界与具体DBMS所支持的模型之间的一个层次 独立于具体的DBMS 因此在实际的数据库设计过程中必须将E 模型转换为具体DBMS所支持的数据模型 3 3数据模型 2020 3 21 41 将E R模型转换为等效的关系数据模型的基本转换规则如下 1 把E R图中所有实体集及其属性用关系模式来表示 2 把实体集间的联系及与被联系的两实体集中的有关信息也用一个关系模式表示 具体如下 若两实体集间为多对多联系 则两实体集关系的主关键字 主码 均放入联系中作为其主关键字 主码 当然联系关系中还可包括其它一些有用的附加信息 若是一对多联系 则可把表示 一 关系的主关键字放入表示 多 关系中作为其外来关键字 外码 外键 而无需再建立联系关系 3 3数据模型 2020 3 21 42 例 E R图 3 3数据模型 2020 3 21 43 按规则转换为如下4个关系 课程 课程号 课程名 学分 周学时 学生 学号 姓名 年龄 性别 教师号 教师 教师号 姓名 性别 职称 课程号 选课 学号 课程号 成绩 这样就得到一个关系数据模型 关系模型要求关系必须是规范化的 即要求关系模式必须满足一定的规范条件 这些规范条件中最基本的一条就是 关系的每一个分量 字段 必须是一个不可分的数据项 也就是说 不允许表中还有表 下面表不符合要求 3 3数据模型 2020 3 21 44 数据操作关系模型中常用的数据操作包括两大部分 查询操作 主要部分 选择 投影 连接 除 并 交 差等 更新操作 有插入 删除和修改 操作特点 关系模型中的数据操作特点是 集合操作 方式 即操作的对象和结果都是集合 即又一个关系 这种操作方式也称为一次一集合的方式 相应地 非关系数据模型的数据操作方式则为一次一记录的方式 完整性约束 关系模型中关系的数据操作必须满足关系的完整性约束条件 关系的完整性约束条件包括三大类 实体完整性 参照完整性 用户定义的完整性 是应用领域需要遵循的约束条件 体现了具体领域中的语义约束 3 3数据模型 2020 3 21 45 3 3数据模型 1 实体完整性 entityintegrity 规则1 实体完整性规则 若属性A是基本关系R的主属性 则属性A不能取空值 例 学生关系中 学号 属性是主属性 则 学号 值不能为空 学生关系的其他属性不是主属性 可以是空值 实体完整性规则是基本关系的所有主属性都不能取空值 而不仅是主码整体不能取空值 例 学生选课关系 选修 学号 课程号 成绩 中 学号 课程号 为主码 则学号和课程号两属性都不能取空值 2020 3 21 46 2 参照完整性 referentialintegrity 现实世界中的实体之间往往存在某种联系 在关系模型中实体及实体间的联系都是用关系来描述的 这样就自然存在着关系与关系间的引用 定义 设F是基本关系R的一个或一组属性 但不是关系R的码 如果F与基本关系S的主码Ks相对应 则称F是基本关系R的外码 Foreignkey 并称基本关系R为参照关系 referencingrelation 基本关系S为被参照关系 referencedrelation 3 3数据模型 2020 3 21 47 3 3数据模型 例1 专业实体集和学生实体集可以用下面的关系表示 其中主码用下划线标识 外码用下划线标识 专业 专业号 专业名 学生 学号 姓名 性别 年龄 专业号 这两个关系之间存在着属性的引用 即学生关系引用了专业关系的主码 专业号 显然 学生关系中专业号值必须是确实存在的 专业 的专业号 即专业关系中有该专业的记录 这也就是说 学生关系中的某个属性的取值需要参照专业关系的属性取值 学生关系的 专业号 属性与专业关系的主码 专业号 相对应 因此 专业号 属性是学生关系的外码 专业关系为被参照关系 学生关系为参照关系 2020 3 21 48 3 3数据模型 例2 学生 课程 学生与课程之间的多对多联系的3个关系 学生 学号 姓名 性别 专业号 年龄 课程 课程号 课程名 学分 选修 学号 课程号 成绩 选修关系引用了学生的主码 学号 和课程关系的主码 课程号 同样 选修关系中的学号值必须是确实存在的学生的学号 选修关系中课程号值也必须是确实存在的课程的课程号 换句话说 选修关系中某些属性的取值需要参照其他关系的属性取值 2020 3 21 49 参照完整性规则就是定义外码与主码之间的引用规则 参照完整性规则 若属性 或属性组 F是基本关系R的外码 它与基本关系S的主码KS相对应 则对于R中每个元组在F上的值必须为 或者取空值 F的每个属性值均为空值 或者等于S中某个元组的主码值 例如 对于例1 学生关系中每个元组的专业号属性只能取下面两类值 空值 表示尚未给该学生分配专业 非空值 这时该值必须是专业关系中某个元组的专业号值 表示该学生不可能分配到一个不存在的专业中 即被参照关系 专业 中一定存在一个元组 它的主码值等于该参照关系 学生 中的外码值 对于例2 按照参照完整性规则 学号和课程号属性也可以取两类值 空值或目标关系中已经存在的值 但由于学号和课程号是选修关系中的主属性 按照实体完整性规则 他们均不能取空值 所以选修关系中的学号和课程号属性实际上只能取相应被参照关系中已经存在的主码值 3 3数据模型 2020 3 21 任务3数据库规范化设计 略 3 1任务情境对于关系模型R sno cno score tno ttel 的属性分别表示学生学号 选修课程的编号 成绩 任课教师编号和教师电话 约定 一门课程只能由一个教师带 试判断R是否属于2NF范式 如果不是 请将该关系规范化至3NF范式 3 2任务实现由 一门课程只能由一个教师带 可知 候选码为 sno cno 即为关系的主属性对非主属性tno ttel有cno tno ttel 则 sno cno tno ttel 为局部依赖 非主属性tno ttel局部依赖于主属性 sno cno 因此 关系R不属于2NF 消除有关系R中的局部依赖 所以 将关系R分解为 R1 sno cno score 和R2 cno tno ttel 消除了局部依赖 sno cno tno ttel 且R1和R2都属于2NF 消除R2中的传递依赖 tno依赖于cno 而ttel依赖于tno 所以 ttel传递依赖于cno 于是将R2分解为R21 cno tno R22 tno ttel 且R21 R22都属于3NF 最终 将非2NF范式的R sno cno score tno ttel 分解为3NF范式 R1 sno cno score R21 cno tno R22 tno ttel 2020 3 21 50 3 3 1函数依赖与关系规范化 1 函数依赖函数依赖是用于说明一个关系中属性间的联系 包括完全函数依赖 部分函数依赖和传递函数依赖三种 设关系R中 X Y是R的两个属性 若对于每个X值都有一个Y值与之相对应 则称Y函数依赖于X 也称属性X惟一确定属性Y 记作XY X称为决定因子 若XY YX 则记作XY 这种依赖称为函数依赖FD2 范式2 范式来自于英文normalfrom简称为NF 要想设计一个好的关系 必须使关系满足一定约束条件 此约束条件已经形成了规范 分成几个等级 一级比一级要求要严格 满足最低要求的关系称它属于第一范式的 在此基础上又满足了某种条件 2020 3 21 51 达到第二范式标准 则称它属于第二范式的关系 如此等等 直到第五范式 一般情况下 1NF和2NF的关系存在许多缺点 实际的关系数据库一般使用3NF以上的关系 3 范式的判定条件与规范化第1范式 1NF 在任何一个关系数据库中 第一范式 1NF 是对关系模式的基本要求 不满足第一范式 1NF 的数据库就不是关系数据库 如果一个关系的所有属性都是不可再分的数据项 则称该关系属于第一范式 第2范式 2NF 若某一关系属于1NF 且它的每一非主属性都完全依赖于主键 则称该关系属于第二范式关系 第3范式 3NF 若某一关系R属于2NF 且它的每一非主属性都不传递依赖于关键字 则称该关系属于第三范式 解决办法 分解关系 3 3 1函数依赖与关系规范化 2020 3 21 52 3 3 2分解关系的基本原则 分解必须是无损的 即分解后不应丢失信息 分解后的关系要相互独立 避免对一个关系的修改波及另一个关系 其规范化过程如图3 13所示 图3 13规范化过程 2020 3 21 53 54 例如 要求设计一个教学管理数据库 希望从该数据库中得到学生学号 姓名 年龄 性别 系别 系主任姓名 学生学习的课程和该课程的成绩信息 若将此信息要求设计为一个关系 则关系模式为 教学 学号 姓名 年龄 性别 系名 系主任 课程名 成绩 可以推出此关系模式的主码为 学号 课程名 仅从关系模式上看 该关系已经包括了需要的信息 如果按此关系模式建立关系 并对它进行深入分析 就会发现其中的问题所在 3 3 3关系规范化举例 2020 3 21 55 3 3 3关系规范化举例 不规范关系的实例 教学关系 2020 3 21 56 3 3 3关系规范化举例 该关系存在着如下问题 1 数据冗余大每一个系名和系主任的名字存贮的次数等于该系的学生人数乘以每个学生选修的课程门数 学生的信息也重复出现课程门数次 2 插入异常一个新系没有招生时 系名和系主任名无法插入到数据库中 因为在这个关系模式中 主码是 学号 课程名 而这时因没有学生而使得学号无值 所以没有主属性值 关系数据库无法操作 因此引起插入异常 3 删除异常当一个系的学生都毕业了而又没招新生时 删除了全部学生记录 随之也删除了系名和系主任名 这个系依然存在 而在数据库中却无法找到该系的信息 即出现了删除异常 4 更新异常若某系更换主任 数据库中该系的学生记录应全部修改 如有不慎 某些记录漏改了 则造成数据的不一致出错 即出现了更新异常 由上述可见 教学关系尽管看起来很简单 但存在的问题比较多 它不是一个合理的关系模式 2020 3 21 57 3 3 3关系规范化举例 解决方法 关系模式分解 对于有问题的关系模式 可以通过模式分解的方发法使之规范化 例如 关系模式 教学 按 一事一地 的原则分解成 教学系 学生 和 选课系 3个关系 其关系模式为 教学系 系名 系主任 学生 学号 姓名 年龄 性别 系名 选课 学号 课程名 成绩 教学系关系 学生关系 2020 3 21 58 3 3 3关系规范化举例 选课关系 2020 3 21 3 3 3对关系规范化时应考虑的问题 确定关系的各个属性中 哪些是主属性 哪些是非主属性确定所有的候选关键字选定主键 找出属性间的函数依赖必要时 可采用图示法直接在关键模式上表示函数依赖关系 根据应用特点 确定规范化到第几范式 分解必须是无损的 不得丢失信息 2020 3 21 59 60 为计信系学生成绩管理系统设计数据库 3 4数据库设计举例 需求分析主要任务 对数据库应用系统所

温馨提示

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

评论

0/150

提交评论