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

摘要:
在关系代数中,一元运算符包括select、project和rename remane。其余的包括并集、集差、笛卡尔积等。接下来,了解它们的基本用法。b) 集合差值集合差值的正负号-,r-s是一个存在于r中但不存在于s中的元组。

关系代数 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-选择、投影等关系运算》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇php插入数据含有特殊符号的处理方法Linq排序,获取前5条数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

汇编语言中的数据类型

目录 一、数制及相互转换 1. N 进制数转换为十进制数 2. 十进制数转换为 N 进制数 3. 二进制数转换为八进制数或十六进制数 4. 八进制数或十六进制数转换为二进制数 二、计算机中数和字符的表示 (一)计算机中数的表示方法 1. 原码表示法 2. 补码表示法 (二)二进制编码 1. 十进制数的二进制编码(BCD 码) 2. 字...

高级语言基本特性

要素:数据+运算: 简单组合+负责组合。 组合即为联系。   数据的组合:结构体、集合、类; 运算的组合:表达式、语句、函数。     自定义高级语言基本特性: (1)类型:支持int、char、void基本类型和复杂的string类型。 (2)表达式:支持四则运算,简单关系运算和字符串连接运算。 (3)语句:赋值、while循环、if-else条件分支、...

数字图像处理_图像基本运算

图像基本运算 1点运算  线性点运算是指输入图像的灰度级与输出图像呈线性关系。s=ar+b  (r为输入灰度值,s为相应点的输出灰度值)。  当a=1,b=0时,新图像与原图像相同;  当a=1,b≠0时,新图像是原图像所有像素的灰度值上移或下移,是整个图像在显示时更亮或更暗;  当a>1时,新图像对比度增加;  当a<1时,新图像对比度降低;  当a<0...

汇编效率优化:指令处理机制

大多数情况下,编写程序都不会使用汇编语言而是使用高级语言,原因大致有以下几点: 花费更多时间。高级语言的一行相当于汇编语言的几行、几十行甚至更多。 不够安全。比如说在进行函数调用时PUSH与POP必须成对出现,高级语言中的函数调用会自动为你执行PUSH与POP的操作,但是汇编语言中就必须由程序员自己保证PUSH与POP一致,否则会导致栈错乱,使得程序出现...

无废话JavaScript(下)

无废话JavaScript(下)上一篇在这里,在这里,在这里……五、函数式这个可不是JavaScript的发明,它的发明人已经死了,而他的这个发明还在困扰着我们……如同爱迪生的灯泡还在照耀着我们。其实函数式语言很简单,它就是一种与命令式语言同样“完备”的语言实现方案。由于它的基础思想与命令式——如果你不想用这个难于理解的名词,那就把它换成C,或者Delph...

算法>并行算法

并行算法 一、并行算法 什么是并行算法? 它可理解为: 适合于在某类并行计算机上求解问题和处理数据的算法, 是一些可同时执行的诸进程的集合, 这些进程相互作用和协调作用, 从而达到对给定问题的求解。 二、并行计算机 并行处理就是把一个传统串行处理的任务分解开来, 并将其分配给多个处理器同时处理, 即在同一时间间隔内增加计算机的操作数量。为并行处理所设计的计算...