关系模型和关系运算.ppt

  1. 1、本文档共155页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关系模型和关系运算.ppt

第3章关系模型和关系运算本章要点理解关系模型的基本概念。将用对象定义语言或实体-联系模型为数据库所建模型转换成需要的关系模型。熟练掌握关系代数语言的使用,并掌握关系演算语言和关系逻辑语言的使用。教学要求理解:关系模型的基本概念。熟练掌握:ODL设计转换为关系设计。熟练掌握:E/R图设计转换为关系设计。熟练掌握:用关系代数表达式表达查询要求。基本掌握:用关系演算表达式表达查询要求。基本掌握:用关系逻辑表达式(数据逻辑规则)表达查询要求。3.1 关系模型的基本概念关系模型用一种称为“关系”的二维表来表示数据。 属性:属性是关系的标题栏中各列的名字。属性描述了该列各数据项的含义。 模式:关系的名称和关系的属性集称为关系的“模式”。Student ( StudentNo, StudentName, Age, Dept ) 在关系模型中,数据库设计包含一个或多个关系模式,我们将所设计的关系模式的集合称为“关系数据库模式”,或者简称为“数据库模式”。 元组 除了关系的标题栏以外,其他各行统称“元组”。元组的各分量分别对应于关系的各个属性。(990011,李明,19,计算机系)。通常一个元组就表示一个对象,而元组所属的关系就表示对象所属的类。 关系的等价表示法 关系的模式和元组都是集合,而不是列表,因此它们的顺序是无关紧要的,我们可以重新排列关系的行和列,而关系并不改变。通常都为关系选择一个“标准”的属性顺序。我们把给定关系中元组的集合称为该关系的“实例”。P习题1 如果某关系的实例满足下列条件之一,要表示该实例,有多少种不同的方法(考虑元组的顺序和属性的顺序)。解:(1)(2)(3)m个属性可有m!种不同的排列顺序,n个元组可有n!种不同的排列顺序,因此共有m! * n!种不同的排列顺序。3.2 从ODL设计到关系设计 从ODL属性到关系属性 假设类的所有特性都是属性,而不是联系或者方法;并且属性都是原子类型,而不是结构、集合、数组等类型。类的每个属性对应于该关系的一个属性。 类中的非原子属性假设ODL中的属性可能是复杂的数据类型,比如结构、集合等,而关系模型要求关系的属性必须是原子类型。结构的每个域对应于关系的一个属性。如果属性是多个值的集合,可以针对每个值建立一个元组。Interface Student{attribute integer StudentNo; attribute struct Name Type{string First, string Last }Student Name; attribute integer Age; attribute string Dpat; } 单值联系的表示interface Movie { attribute string Title; attribute integer Year; relationship Set<Actor> actors inverse Actor::movies; relationship Studio ownedby inverse Studio::owns; } 单值联系的表示(续) interface Studio { attribute string Name; attribute string Address; relationship Set<Movie> owns inverse Movie::ownedby; } 只要建立相关类中构成键码的属性集就可以表示相关类的对象了。假设公司名Name是类Studio的键码,那么我们在关系Movie的模式中设计一个表示所属制片公司名的属性StudioName,关系Movie如下所示。 多值联系的表示为了表示多值联系,要结合如下两种方法:首先,和单值联系一样,要找出表示每个相关对象的键码;其次,和表示集合类型的属性一样,为相关对象集合的每个元素建立一个元组。Movie类到Actor类的联系actors是多值联系,Actor类的ODL描述如下:interface Actor { attribute string Name; attribute integer Year; relationship Set<Movie> movies inverse Movie::actors; } 联系与反向联系的表示联系及其反向联系中的任何一个都包含了另一个的全部信息,所以我们完全可以保留其中一个,删除另一个。 ODL子类的表示将ODL子类转换成关系模式:P37 习题5 设计一个适合大学选课的数据库。该数据库应包括学生、系、教师、课程,哪个学生选了哪门课,哪个教师教哪门课,学生的成绩,一个系提供哪些课程等信息。用ODL进行描述,注意为属性和联系选择适当的类型,并指出每

文档评论(0)

各行业精品文档 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档