- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)