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

关系代数 Relational Algebra中,一元运算符有选择select、投影project、重命名remane,其余的包括并运算union、集合差set diffetence、笛卡尔积cartesian  product等为二元运算符。下面学习它们的基本使用。

一、一元运算符

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...

二、二元运算符

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

你可能感兴趣的:(《数据库系统概念》8-选择、投影等关系运算)