《数据库系统概念》8-选择、投影等关系运算

关系代数 Relational Algebra中,一元运算符有选择select、投影project、重命名remane,其他的包括并运算union、集合差set diffetence、笛卡尔积cartesian  product等为二元运算符。下面学习它们的基本使用。
1、一元运算符
a)选择
选择的操做符为小写sigma(σ),好比选择物理系的教师,能够写为:
σdept_name=”Physics”(instructor)(标准的写法中dept_name=”Physics”属于σ的下标)。
还能够使用比较运算、与∧、或∨、非¬等,薪水大于90000的物理系教师:
σdept_name=”Physics”∧salary>90000(instructor)
查询部门名称与所在办公楼同名的部分:
σdept_name=building(department)
须要注意的是关系代数中的select并不与SQL中的select对应,与之对应的是SQL的where子句
b)投影
投影的操做符为大写pi(Π),能够选择性的显示关系的某些属性,SQL的select ID, name, salary from instructor 能够表示为:
ΠID, name, salary (instructor )
c)关系运算的组合
关系运算的结果仍是关系,基于这一点,能够将关系运算组合使用,好比查找表达物理系老师的姓名,能够表示为:
Πname (σdept name = “Physics” (instructor))
这儿将选择运算的结果做为了投影运算的参数
d)重命名
重命名的符号为小写rho(ρ):
ρx(E)表示将关系E重命名为x
ρx(a1,a2...)(E)则将E对应的属性也重命名为a1,a2...
2、二元运算符
a)并运算Union
并运算为二元运算符,用于合并两个相同结构的集合,以前查询过2009年秋季和2010年春季都开课的课程ID,能够表示为:
Πcourse id (semester = “Fall”∧ year=2009 (section))

Πcourse id (semester = “Spring”∧ year=2010 (section))
union运算的符号为∪,参加union运算的关系必须有相同数目的属性,并且对于合并位的属性类型必须相同。
b)集合差运算Set-Difference
集合差运算的符号位减号-,r-s的结果为存在于r中但不存在于s中的元组。集合差运算对集合的要求与union相同。
c)笛卡尔积Cartesian Product
笛卡尔积的符号为×,instructor×teaches的结果为教师与课程间全部可能的的组合状况,但这样每每没什么实用意义,除了教师与课程能对应起来的元组,这些元组能够筛选为:
σinstructor .ID = teaches.instcuctor_ID (dept name =”Physics”(instructor × teaches))


学习资料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan


学习

相关文章
相关标签/搜索