数据库——关系代数

1.关系代数中的操作可以分为两类:

传统的集合操作:并、差、交、笛卡儿积

扩充的关系操作:投影、选择、连接、除法

2.关系代数的五个基本操作

并、差、笛卡儿积、投影、选择

3.关系代数的四个组合操作:

交、连接、自然连接、除法

五个基本操作

1.并(Union)

设关系R和S具有相同的关系模式,R和S的并是由属于R或属于S的元组构成的集合,记为R∪S。形式定义如下: R∪S≡{t | t∈R ∨ t∈S},t是元组变量,R和S的元数相同。

2.差(Difference)

设关系R和S具有相同的关系模式,R和S的差是由属于R但不属于S的元组构成的集合,记为R-S。形式定义如下: R-S≡{ t | t∈R ∧ tS},R和S的元数相同。

3.笛卡儿积(Cartesian Product)

设关系R和S的元数分别为r和s,定义R和S的笛卡儿积是一个(r+s)元的元组的集合,每个元组的前r个分量(属性值)来自R的一个元组,后s个分量来自S的一个元组,记为R×S。形式定义如下:  R×S≡{t | t=<tr,ts>∧tr∈R∧ts∈S} 若R中有m个元组,S中有n个元组,则R×S有m×n个元组。

4.投影(Projection)

这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序。   设关系R是k元关系,R在其分量Ai1,…,Aim(m≤k,i1,…,im为1到k间的整数)上的投影用πi1,…,im(R)表示,它是一个m元元组集合,形式定义如下:           πi1,…,im(R)≡{t|t=<ti1,…,tim>∧<t1,…,tk>∈R}     例如,π3,1(R)表示关系R中取第1、3列,组成新的关系,新关系中第1列为R的第3列,新关系的第2列为R的第1列。如果R的每列标上属性名,那么操作符π的下标处也可以用属性名表示。例如,关系R(A,B,C),那么πC,A(R)与π3,1(R)是等价的。

5.选择(Selection)  

选择操作是根据某些条件对关系做水平分割,即选取符合条件的元组。条件可用命题公式(即计算机语言中的条件表达式)F表示。F中有两种成分:运算对象:常数,元组分量     运算符:算术比较运算符和逻辑运算符 关系R关于公式F的选择操作,用σF(R)表示,形式定义如下: σF(R)={ t | t∈R ∧ F(t)= true } σ为选择运算符,σF(R)表示从R中挑选满足公式F为真的元组所构成的关系。 例如,σ2>ˊ3ˊ(R)表示从R中挑选第2个分量值大于3的元组所构成的关系。书写时,为了与属性序号区别起见,常量用引号括起来,而属性序号或属性名不要用引号括起来。

四个组合操作

1.交(intersection)

关系R和S的交是由属于R又属于S的元组构成的集合,记为R∩S,这里要求R和S定义在相同的关系模式上。形式定义如下:              R∩S≡{t︱t∈R ∧ t∈S},R和S的元数相同。 由于R∩S = R-(R-S),或R∩S = S-(S-R),因此交操作不是一个独立的操作。    在上例中,R∩S的结果是只有一个元组(d,a,f)。

2.连接(join)

连接有两种:θ连接和F连接(这里θ是算术比较符,F是公式)。 ① θ连接       R ⋈ S≡{t︱ t=<tr,ts> ∧ tr∈R ∧ ts∈S ∧triθtsj }   等价于R ⋈ S≡ σiθ(r+j)(R×S) ② F连接       F连接是从关系R和S的笛卡儿积中选取属性间满足某一公式F的元组, 这里F是形为F1∧F2∧…∧Fn的公式,每个FP是形为iθj的式子,而i和j分别为关系R和S的第i、第j个分量的序号。

3.自然连接(natural join)  

两个关系R和S的自然连接操作具体计算过程如下:  ① 计算R×S ;  ② 设R和S的公共属性是A1,…,Ak,挑选R×S中满足R.A1=S.A1,…,R.Ak=S.Ak的那些元组;   ③去掉S.A1 ,…, S.Ak 这些列。 定义:  R ⋈ S≡πi1,…,im (σR.A1=S.A1∧... ∧R.Ak=S.Ak(R×S)),其中i1,…,im为R和S的全部属性,但公共属性只出现一次。

4.除法(division)  

设关系R和S的元数分别为r和s(设r>s>0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系:其中每个元组t与S中每个元组u组成的新元组<t,u>必在关系R中。 定义如下: R÷S≡π1,2,…,r-s(R)-π1,2,…,r-s((π1,2,…,r-s(R)×S)-R)。

重点掌握笛卡尔积自然连接即可,其余重要级要小一些。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

用编程写诗

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

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

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

打赏作者

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

抵扣说明:

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

余额充值