除法运算的定义:
![关系代数中的除法运算(转载)](https://i-blog.csdnimg.cn/blog_migrate/f5c3152ab922a662a1b66f21e2385658.png)
这个概念的描述的非常抽象,刚开始学习的同学完全不知所云。这里通过一个实例来说明除法运算的求解过程
设有关系R、S 如图所示,求R÷S 的结果
![关系代数中的除法运算(转载)](https://i-blog.csdnimg.cn/blog_migrate/0684bc3c5580e0fe891fe0e0828f4453.png)
求解步骤过程:
第一步:找出关系R和关系S中相同的属性,即Y属性。在关系S中对Y做投影(即将Y列取出);所得结果如下
![关系代数中的除法运算(转载)](https://i-blog.csdnimg.cn/blog_migrate/a6001cbdfc497e80a24b4595ea6f5697.png)
第二步:被除关系R中与S中不相同的属性列是X ,关系R在属性(X)上做取消重复值的投影为{X1,X2};
第三步:求关系R中X属性对应的像集Y
//像集:同数学集合论概念,属性A,B且a属于A,b属于B,a对应b,则所有b构成的集合叫a的象集
根据关系R的记录,可以得到与X1值有关的记录,如图3所示;与X2有关的记录,如图4所示![关系代数中的除法运算(转载)](https://i-blog.csdnimg.cn/blog_migrate/71c9205771b48c91ebc751152917dd68.png)
第四步:判断包含关系
R÷S其实就是判断关系R中X各个值的像集Y是否包含关系S中属性Y的所有值。对比即可发现:
X1的像集只有Y1,不能包含关系S中属性Y的所有值,所以排除掉X1;
而X2的像集包含了关系S中属性Y的所有值,所以R÷S的最终结果就是X2 ,
![关系代数中的除法运算(转载)](https://i-blog.csdnimg.cn/blog_migrate/27d43d1db36629cf3aaff5dfe5e6e05f.png)
也许你现在有点明白除法运算是如何操作的了,下面我们来引申一下,除法运算可以解决什么问题呢?
看下面一个小例子:
设有关系R,S以及RS,如图所示,求RS÷S的结果
![关系代数中的除法运算(转载)](https://i-blog.csdnimg.cn/blog_migrate/456d5bc7c743627e7509e1ce03731834.png)
![关系代数中的除法运算(转载)](https://i-blog.csdnimg.cn/blog_migrate/1aead4c0c0846eb7d7d17aac60d7373e.png)
![关系代数中的除法运算(转载)](https://i-blog.csdnimg.cn/blog_migrate/85c2f7088f011d4f437e72b92009b8f7.png)
很容易求得结果为:{ 张三 }
所以你很容易看出来RS÷S 在这里解决的问题就是:“得到选修了所有课程的学生”
RS÷S的意义就是:“在R和S的联系RS中,找出与S中所有的元组有关系的R元组”(RS中其能够包含S且S以外的属性值就是结果)。