第六章 形式化关系查询语言
6.1关系代数
基本关系运算:
-
select: σ,选择运算选出满足特定谓词的元组
例如 :
选出物理系的教职人员:
σ d e p t _ n a m e = ′ P h y s i c s ′ ( i n s t r u c t o r ) \sigma_{dept\_name='Physics'}(instructor) σdept_name=′Physics′(instructor)
选出物理系且工资大于80000的教职人员:
σ d e p t _ n a m e = ′ P h y s i c s ′ ∧ ( s a l a r y > 80000 ) ( i n s t r u c t o r ) \sigma_{dept\_name='Physics' \land (salary>80000)}(instructor) σdept_name=′Physics′∧(salary>80000)(instructor)
-
project: Π, 返回筛选属性后的集合,只显示选择的属性
例如:
选出老师的ID和name
∏ i d , n a m e ( i n s t r u c t o r ) \prod_{}{id,name}(instructor) ∏id,name(instructor)
选出物理系老师的ID name salary
∏ i d , n a m e , s a l a r y ( σ d e p t _ n a m e = ′ P h y s i c s ′ ( i n s t r u c t o r ) ) \prod_{}{id,name,salary}(\sigma_{dept\_name='Physics'}(instructor)) ∏id,name,salary(σdept_name=′Physics′(instructor))
-
union: ∪ 集合的并集运算
例子:
找出开设在2009年秋季或2010年春季或二者都开的课程:
∏ c o u r s e _ i d ( σ s e m e s t e r = ′ F a l l ′ ∧ y e a r = 2009 ( s e c t i o n ) ) ⋃ ∏ c o u r s e _ i d ( σ s e m e s t e r = ′ S p r i n g ′ ∧ y e a r = 2010 ( s e c t i o n ) ) \prod_{}{course\_id}(\sigma_{semester='Fall'\land{}year=2009}(section))\bigcup_{ }\prod_{}{course\_id}(\sigma_{semester='Spring'\land{}year=2010}(section)) ∏course_id(σsemester=′Fall′∧