关系代数中的除法

在介绍关系代数的除法以前我们必须熟悉象集的概念

象集

给定一个关系R(X,Z),X 和Z 为属性组。当 t[X] = x 时,x 在 R 中的象集(Images Set)为:
Zx= { t[Z] | t ∈R,t[X] = x},表示R中属性组X上值为x的诸元组在属性组Z上分量的集合。
在这里插入图片描述
S在B2上的象集为上图右方的关系。

除法

R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组tr在X上分量值tr [X]的象集Ytr [X]包含S在Y上投影的集合。
R ÷ ÷ ÷S = { tr [X] | tr∈R ∧ Ytr[X] ⊆ πY (S) }
其中: Ytr[X] : tr [X]在R中的象集
在这里插入图片描述
R中a1的象集包含S在B、C上的投影,R ÷ ÷ ÷S为新关系关系模式为P(A),关系的值为{a1}

求解步骤

找出关系R和关系S中相同的属性,即Y属性。
被除关系R中与S中不相同的属性列是X ,关系R在属性(X)上做取消重复值的投影。
求关系R中X属性对应的像集Y。
判断包含关系;包含则符合,否则不符合

示例

选课关系SC如下
在这里插入图片描述
求选修了95002学生所选全部课程的学生的学号,这个时候用除法。用关系代数可以表示为:
在这里插入图片描述
πsno,cno (S)={(95001,c1),(95001,c2),(95001,c5),(95002,c2),(95002,c5)}
πcnosno=95002)={{c2},{c5}}
πsno,cno (S) ÷ ÷ ÷={95001,95002}

**用SQL语句表示为:**找出这些学生的学号,这些学生所选的课程包含了95002学生所选的全部课程。

在这里插入图片描述

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值