CH3-1电子课件.ppt_第1页
CH3-1电子课件.ppt_第2页
CH3-1电子课件.ppt_第3页
CH3-1电子课件.ppt_第4页
CH3-1电子课件.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第三章关系模型和关系运算 本章要点 理解关系模型的基本概念 将用对象定义语言或实体 联系模型所建模型转换成需要的关系模型 熟练掌握关系代数语言的使用 并掌握关系演算语言和关系逻辑语言的使用 理解 关系模型的基本概念 熟练掌握 ODL设计转换为关系设计熟练掌握 E R图设计转换为关系设计熟练掌握 用关系代数表达式表达查询基本掌握 用关系演算表达式表达查询基本掌握 用关系逻辑表达式 数据逻辑规则 表达查询要求 教学要求 3 1关系模型的基本概念 关系模型用一种称为 关系 的二维表来表示数据 属性 属性是关系的标题栏中各列的名字 属性描述了该列各数据项的含义 模式 关系的名称和关系的属性集称为关系的 模式 Student StudentNo StudentName Age Dept 在关系模型中 数据库设计包含一个或多个关系模式 我们将所设计的关系模式的集合称为 关系数据库模式 或简称为 数据库模式 元组 除了关系的标题栏以外 其他各行统称 元组 元组的分量对应于关系的属性 090011 李明 19 计算机系 通常一个元组表示一个对象 元组所属的关系表示对象所属的类 域 关系模型要求每个元组的分量都是原子的 即必须属于某种基本类型 这个特定的基本类型称为 域 任何元组的每个分量都必须在对应列的域中取值 关系的等价表示法 关系的模式和元组都是集合 顺序无关紧要 可以重新排列关系的行和列 而关系并不改变 为关系选择一个标准的属性顺序 给定关系中元组的集合称为该关系的 实例 如下关系 3 2从ODL设计到关系设计 从ODL属性到关系属性假设类的所有特性都是属性 而不是联系或方法 并且属性都是原子类型 而不是结构 集合 数组 类的每个属性对应于该关系的一个属性 interfaceCourse attributeintegerCourseNo attributestringCourseName attributestringTeacher interfaceStudent attributeintegerStudentNo attributestringStudentName attributeintegerAge attributestringDept 类中的非原子属性 假设ODL中的属性是复杂的数据类型 比如结构 集合 而关系模型要求关系的属性必须是原子类型 结构的每个域对应于关系的一个属性 如下例 interfaceStudent attributeintegerStudentNo attributestructNameType stringFirst stringLast StudentName attributeintegerAge attributestringDept 如果属性是多个值的集合 可以针对每个值建立一个元组 如下例 interfaceStudent attributeintegerStudentNo attributestringStudentName attributeintegerAge attributeSetDept 如果属性是定长数组 可以在关系中用带有数组名和下标的属性来表示类中的数组类型的属性 如下例 interfaceStudent attributeintegerStudentNo attributestringStudentName attributeintegerAge attributestringDept 2 单值联系的表示 interfaceMovie attributestringTitle attributeintegerYear relationshipSetactorsinverseActor movies relationshipStudioownedbyinverseStudio owns interfaceStudio attributestringName attributestringAddress relationshipSetownsinverseMovie ownedby 只要建立相关类中构成键码的属性集就可以表示相关类的对象了 假设公司名Name是类Studio的键码 那么我们在关系Movie的模式中设计一个表示所属制片公司名的属性StudioName 关系Movie如下所示 多值联系的表示 为了表示多值联系 要结合如下两种方法 首先 和单值联系一样 要找出表示每个相关对象的键码 其次 和表示集合类型的属性一样 为相关对象集合的每个元素建立一个元组 Movie类到Actor类的联系actors是多值联系 Actor类的ODL描述如下 interfaceActor attributestringName attributeintegerYear relationshipSetmoviesinverseMovie actors 联系与反向联系的表示 联系及其反向联系中的任何一个都包含了另一个的全部信息 所以我们完全可以保留其中一个 删除另一个 ODL子类的表示 将ODL子类转换成关系模式 每个子类都对应于一个关系这个关系用相应子类的所有特性 包括从超类继承下来的全部特性 来表示 interfaceStudent attributeintegerStudentNo attributestringStudentName attributeintegerAge attributestringDept interfacePostgraduate Student attributestringTutor 导师姓名 E R图与ODL主要有以下区别 1 联系在E R图中独立存在 在ODL中作为特性嵌套在类定义中 2 属性在ODL中可能是任意的聚集类型 在E R图中 允许使用结构化的数据 而不允许使用集合或者其他聚集类型的数据 3 在E R图中 联系可以具有属性 3 3从E R图到关系设计 Course CourseNo CourseName Teacher StudentCourse Student Age StudentNo Dept StudentName Score 实体集Course对应的关系如下所示 实体集Student对应的关系如下所示 E R联系到关系的转换 E R图中的联系也可用关系表示 一 联系R所涉及到的每个实体集的键码属性 集 二 R本身的属性 如下为StudentCourse联系转换结果 多向联系转换为关系 在将联系R转换为关系的时候 只要让R的属性包括与其相关的所有实体集的键码属性 集 和它本身的属性即可 不为 isa 联系建立相应的关系 而是把 isa 联系隐含在这样的事实里 与 isa 联系有关的实体集都具有相同的键码 此时 关系Student的模式仍然为 Student StudentNo StudentName Age Dept 关系Postgraduate的模式为 Postgraduate StudentNo Tutor 属于 联系到关系的转换 3 4关系代数 关系代数是一种抽象的查询语言 通过对关系的运算来表达查询 关系代数的运算对象是关系 运算结果也是关系 1 普通的集合运算并 交 差2 删除一部分关系的运算选择运算 会删除某些行投影运算 会删除某些列 关系代数运算可以分为四类 3 合并两个关系的运算 笛卡儿积 运算把两个关系的元组以所有可能的方式组合起来 连接 运算有选择地从两个关系取出元组组合在一起4 改名运算不改变关系的元组 只改变关系的模式 改变属性名或者关系名 关系的集合运算 三种普通的集合运算 并 交和差 lR S R和S的并 是R中的元素和S中的元素共同组成的集合 lR S R和S的交 是既出现在R中又出现在S中的元素组成的集合 lR S R和S的差 是只在R中出现 不在S中出现的元素组成的集合 要想对两个关系R和S进行上述运算 R和S必须满足如下条件 lR和S的模式具有相同的属性集l在对R和S进行集合运算之前 要对R和S的属性列进行排序 保证两个关系的属性顺序相同 关系R 关系S 并集R S 交集R S 差集R S 投影 投影运算符是 该运算作用于关系R将产生一个新关系S S只具有R的某几个属性列 S A1 A2 An R S是投影运算产生的新关系 只具有R的属性A1 An所对应的列 学生关系Student的当前实例如下 StudentNo StudentName Student 选择 选择运算符是 该运算符作用于关系R将产生一个新关系S S是R的一个满足条件C的子集 S C R S的模式与R的模式完全相同 C是条件表达式 用上面的例子作如下运算 Age 18 Student 应该是 查询计算机系年龄大于18的学生资料 可以用如下表达式 Age 18ANDDept 计算机 Student 笛卡尔积 两个关系R和S的笛卡尔积记作R S 模式是R和S模式的并集 R S是把R和S的元组以所有可能的方式组合起来 因此 R S拥有的元组数量应该是R的元组数与S的元组数的乘积 假设关系R有两个属性 分别是A和B 关系S有三个属性 分别是B C和D R的当前实例有两个元组 S的当前实例有三个元组 关系R 关系S 在关系R S中 关系模式应有五个属性 A R B S B C和D R S有六个元组 自然连接 两个关系R和S的自然连接 记作RS 得到的关系模式是R和S模式的并集 RS的元组是 假设A1 A2 An是R和S的模式中的公共属性 那么如果R的元组r和S的元组s在这些属性上取值都相同 r和s组合而成的元组就归入RS中 上例中的两个关系R和S的自然连接 连接 两个关系R和S基于条件C的 连接用RcS表示 它是这样得到的 先作R和S的笛卡尔积 然后从R S的元组中选择满足条件C的元组集合 RR B S BS 其结果应该是 改名 运算 S A1 A2 An R 用来把关系R改名为关系S 同时把关系S的属性从左至右依次命名为A1 A2 An 假如只想改变关系名 不想改变关系模式中的属性名 用如下形式 S R S X C D S 改名后的笛卡尔积R S X C D S 结果如下图所示 复合运算 假定我们现在想查询计算机系年龄大于18岁

温馨提示

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

最新文档

评论

0/150

提交评论