关系代数运算

关系代数运算

   关系运算的参与对象是关系,运算后结果也是关系。在数据库中,关系就是一张张的表。在离散数学中,关系是做为一个个的集合来进行运算的。

代数运算的分类:

传统的集合运算:并、差、交、笛卡儿积、笛卡儿积的逆运算(除)

专门的的关系运算:选择、投影、连接(等值连接、自然连接)

五种基本运算:并、差、笛卡儿积、选择、投影

五种基本操作经过有限次复合的式子称为关系代数表达式

关系运算

并:查询时使用union

RUS:R、S有相同的关系模式

R
AB
ab
S
AB
cd
ef
RUS
AB
ab
cd
ef

交: 查询时使用intersect  也可以使用笛卡尔积、选择和投影来实现

R\bigcapS:R、S有相同的关系模式

R
AB
ab
S
AB
cd
ab
RnS
AB
ab

差:查询时使用except

R-S:R、S有相同的的关系模式

S
AB
ab
R
AB
cd
ab
R-S
AB
cd

笛卡儿积

RxS
ABCD
abef

a

bgh
cdrf

c

dgh

选择:选择行(元组),查询时使用条件 where,having语句

投影:选择列(属性)

连接:

      自然连接:

U
ABC
123
678
978

 

V
BCD
234
235
7810

 

UnV
ABCD
1234
1235
67810
97810

      等值连接:

                     R.B= S.D

笛卡儿积的逆运算:

      传统的解法:

所以笛卡儿积也可以看作选择、投影、笛卡儿积的复合运算  

(1)

R
ABCD
abcd
abef
cacd

 

 

S
CD
cd
ef

 

    结果:

T
AB
ab
ab
ca

 

  (2)

TxS
ABCD
abcd
abef
abcd
abef
cdef
caef

 

W
ABCD
caef

 

  (3)

V
AB
ca

  (4)T-V并去重

AB
ab

  

  非传统的解法:

    (1)找出关系R和关系S中相同的属性,即C、D属性。在关系S中对C、D做投影(即取出C、D列),结果如下:

CD
cd
ef

  

               (2)在被除关系R中与S中不相同的属性是A、B,关系R在属性(X)上做取消重复值的投影为;

          

X
AB
ab
ca

 

       (3)求关系R中X属性对应的像集C、D;

a、b对应的像集
CD
ef
cd

 

c、d对应的像集
CD
cd

 

                   (4)判断包含关系

                       R除以S其实就是判断关系R中X各个值的像集C、D,的所有的值。对比即可发现:

                      a和b的像集包含了关系S中属性C、D的所有的值,而c和a只包含了c、d,所以排除到c和a构成的集合。所以最后的结果就是:     

最后的结果
AB
ab

 

 

较详细的讲解: https://blog.csdn.net/alexshi5/article/details/80024250

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值