【数据库CS751】关系代数总结(包括一元关系,二元关系与聚合关系)

目录

一、一元关系

1.SELECT σ (sigma)

(1)语法结构:

(2)例子:

(3)性质:

2.PROJECT π (pi)

(1)语法结构:

(2)例子:

(3)性质:

3.RENAME ρ(rho)

(1)语法结构:

(2)例子:

(3) 性质:

二、二元关系

1.UNION ∪

(1)运算含义:

(2)例子:

 2.INTERSECTION ∩

(1)运算含义:

(2)例子:

 3.SET DIFFERENCE (也叫 MINUS 或者 EXCEPT) -

(1)运算含义:

(2)例子:

 三、针对集合的代数运算

1.CARTESIAN PRODUCT(笛卡尔积)或者CROSS JOIN

(1)运算含义:

(2)提醒:

四、二元运算

 1.JOIN  ▷◁ 

(1)运算含义:

(2)基本形式:

(3)JOIN的特殊形式THETA JOIN

 (4)THETA JOIN 的特殊形式EQUIJOIN

2.NATURAL JOIN *

(1)运算要求:自然连接的标准定义要求两个连接属性,或每一对对应的连接属性,在两个关系中具有相同的名称。

(2)例子:

 3.DIVISION 除法 ÷

(1)计算含义:除法运算对于一种特殊的查询很有用,并不是很常用

(2)计算步骤:

(3)看不懂步骤没关系,来跟着做一遍:既然写了博客,那我必把你教会,这是责任。

五、到目前的一元、集合、二元的总结:(英文版)

 六、查询树

七、分组运算

ℑ (script F):

(1)应用:

(2)例子:

 八、其他的很偏门的代数运算

OUTER JOIN :

(1)左outer:​

 (2)右outer:​

 (3)全outer:​


一、一元关系

1.SELECT σ (sigma)

(1)语法结构:

σ <选择条件>(目标表)

(2)例子:

σ SALARY > 30,000 (EMPLOYEE):从EMPLOYEE表中选择薪水SALARY大于30000的人

σ DNO =4 (EMPLOYEE) :从EMPLOYEE表中选择工号是4的人

(3)性质:

<1> 交换律:

<2> 结合律:

<3> 合并律:

2.PROJECT π (pi)

(1)语法结构:

π<属性列表>(目标表)

(2)例子:

π(LNAME, FNAME,SALARY)(EMPLOYEE):将EMPLOYEE表中的LNAME,FNAME,SALARY展示出来

(3)性质:

<1> 结果中元组的个数总是小于或等于目标表中的元组的个数

<2> π运算不满足交换律

3.RENAME ρ(rho)

(1)语法结构:

ρS (B1, B2, …, Bn ) (目标表)

(2)例子:

:从DEP5_EMPS表中选择Fname,Lname,Salary三列,重命名为RESULT表,每一列分别重命名为F,L,SAL

(3) 性质:

二、二元关系

1.UNION ∪

(1)运算含义:

R∪S的结果是一个关系,它包含R或者S或者R和S中同时存在的所有元组

就是并集概念,按照并集理解

(2)例子:

 2.INTERSECTION ∩

(1)运算含义:

操作R ∩ S的结果是一个关系,它包含R和S中所有的元组。

等同于交运算。

(2)例子:

交运算:

 3.SET DIFFERENCE (也叫 MINUS 或者 EXCEPT) -

(1)运算含义:

R - S的结果,是一个关系,它包含了所有在R中但不在S中的元组

(2)例子:

(d) STUDENT - INSTRUCTOR.   (e) INSTRUCTOR - STUDENT.

 三、针对集合的代数运算

1.CARTESIAN PRODUCT(笛卡尔积)或者CROSS JOIN

(1)运算含义:

R(A1, A2, . . ., An) x S(B1, B2, . . ., Bm)是将两个集合每一条记录依次组合,所以计算之后的集合拥有n*m个元素。尽管有的元素并不存在现实中的关系。

(2)提醒:

一般来说,单独应用CROSS PRODUCT操作是没有意义的,因为这会产生大量的无意义的交叉数据,但是当后面跟着其他操作时,比如匹配来自组件关系的属性值的选择,就会变得有意义。

例如:

 这个操作并没有任何意义。

但是:

 我们加上select语句和显示语句,这个笛卡尔积就具备了意义。因为我们将这个笛卡尔积作为一个工具而不是结果来使用。

我们来详细展示一下,这些操作的结果是什么:

四、二元运算

 1.JOIN  ▷◁ 

 (写的时候连起来,这个符号打不出来)

(1)运算含义:

 很显然,将笛卡尔积和select结合在一起就是JOIN操作。

(2)基本形式:

R ▷◁<join condition> S

其中R和S可以是由一般关系代数表达式产生的任何关系。

(3)JOIN的特殊形式THETA JOIN

 其中:θ是以下关系的任何一个

 例如:condition可以写成:

 (4)THETA JOIN 的特殊形式EQUIJOIN

 顾名思义:当θ是=的时候,就为EQUIJOIN。

2.NATURAL JOIN *

(1)运算要求:自然连接的标准定义要求两个连接属性,或每一对对应的连接属性,在两个关系中具有相同的名称。

(2)例子:

隐式连接条件: R.C=S.C AND R.D=S.D

并且结果每个这样的对的一个属性: 结果为:Q(A,B,C,D,E)

表例子:原始表

         (a) proj_dept = project * dept.     (b) dept_locs = department * dept_locations.

 3.DIVISION 除法 ÷

(1)计算含义:除法运算对于一种特殊的查询很有用,并不是很常用

(2)计算步骤:

R ÷ S:

<1> 找到R与S相同的属性,对S上的相同属性做投影

<2> 对R上的不同属性做消除重复的投影

<3>找到所有R元素的集合

<4>找到那些包含S的 行,答案就是这些行对应的属性。

(3)看不懂步骤没关系,来跟着做一遍:既然写了博客,那我必把你教会,这是责任。

例子1: T = R÷S

 <1>找R与S相同属性,那就是A属性,做投影则为{a1,a2,a3}

 <2>对R中不同的属性做消除重复的投影:R不同与S的属性是B

投影并消除重复:{b1,b2,b3,b4}

 <3>找R的所有元素的集合

b1 = >{a1,a2,a3,a4}

b2 = >{a1,a3}

b3=>{a2,a3,a4}

b4=>{a1,a2,a3}

而S的投影为{a1,a2,a3},只由b1和b4对应的集合包括S的投影,所以答案就是{b1,b4}

例子2:

SSNS = SSN_PNOS ÷SMITH_PNOS

自己做一遍吧。

五、到目前的一元、集合、二元的总结:(英文版)

 六、查询树

 这个图,自下向上的还原。

七、分组运算

(script F):分组属性放置在符号的左边

(1)应用:

MAX Salary (EMPLOYEE):从EMPLOYEE表中选择SALARY的最大值

MIN Salary (EMPLOYEE):从EMPLOYEE表中选择SALARY的最小值
SUM Salary (EMPLOYEE):从EMPLOYEE表中选择SALARY的和
COUNT Ssn, AVERAGE Salary (EMPLOYEE):从EMPLOYEE表中选择SALARY的平均值和 数量。
注意::::数量包括所有的行,包括重复的项。

(2)例子:

如果需要去重的话:参考https://www.jianshu.com/p/f7f9440e30a5

 

 八、其他的很偏门的代数运算

OUTER JOIN :

(1)左outer:

 例子:

 (2)右outer:

 (3)全outer:

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旋转跳跃我闭着眼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值