3_第六章 形式化关系查询语言.ppt

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

第六章 形式化关系查询语言 关系代数 元组关系演算 域关系演算 关系代数 一种过程化查询语言 具有6个基本运算: 选择:  投影:  并:  集合差: – 笛卡尔积: x 更名:  选择运算 符号:  p(r) p 是选择谓词 定义: p(r) = {t | t  r Λ p(t)} 其中,p是一个由多个条件组成的命题演算公式,而这些条件是由  (and),  (or),  (not)连接起来的。 每个条件都是: 属性/常量 op 属性 /常量 其中, op 是: = ,  , ,  , 和 的其中一种 例:  dept_name=“Physics”(instructor) 符号: 其中,A1, A2 …是属性名, r 是关系名. 操作结果是通过去除未列出的列,获得的一个 k 列的关系。 由于关系是一个集合,所以所有重复行均被去除。 例: 去除instructor 的dept_name 属性 ID, name, salary (instructor) 投影运算 并运算 符号: r  s 定义: r  s = {t | t  r  t  s} 要使r  s 有意义,我们要求以下两个条件同时成立: 1. 关系r和s必须同元,即它们的属性数目必须相同 。 2. 属性域必须兼容。 例:找出开设在2009年秋季学期或者2010年春季学期的所有课程编号的集合。 course_id ( semester=“Fall” Λ year=2009 (section))  course_id ( semester=“Spring” Λ year=2010 (section)) 集合差运算 符号: r – s 定义: r – s = {t | t  r Λ t  s} 集合差必须保证集合差运算在相容的关系间进行。 r 和s必须是同元的 r和s的属性域必须兼容 例: 找出所有开设在2009年秋季学期但是在2010年春季学期不开的课程的编号: course_id ( semester=“Fall” Λ year=2009 (section)) − course_id ( semester=“Spring” Λ year=2010 (section)) 笛卡尔积运算 符号: r x s 定义: r x s = {t ,q | t  r Λ q  s} 假设r(R) 和s(S)的属性是不相交的。 (即 R  S = ). 由于相同的属性名可能同时出现在r(R) 和 s(S) 中,所以需要重命名来区别这些属性。 运算的组合 可以使用多种运算构建表达式 例A=C(r x s) r x s A=C(r x s) 更名运算 允许我们命名,并且可以用这个新的名字来引用关系代数表达式的结果。 通过一个以上的名称来指代一个关系。 例:  x (E) 返回表达式E的结果,并把名字 X赋给它。 假设关系代数表达式E是n元的,则表达式 返回表达式E的结果,并赋给它名字x,同时将各属性更名为 A1 , A2 , …., An 。 查询举例 找出大学里的最高工资 步骤 1: 在关系instructor中还存在比它更高的工资(即非最高工资) 将instructor的副本更名为d instructor.salary ( instructor.salary d.salary (instructor x d (instructor))) 步骤2:查找大学里最高工资的查询 salary (instructor) – instructor.salary ( instructor.salary d.salary (instructor x d (instructor))) 查询举例 找出物理系所有教师,以及他们教授的所有课程。 查询1 instructor.ID,course_id (dept_name=“Physics” (  instructor.ID=teaches.ID (instructor x teaches))) 查询2 instructor.ID,course_id (instructor.ID=teaches.ID (  dept_

文档评论(0)

yurixiang1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档