之前一直对除法的理解不好,这次找了篇不错的,收藏起来
1.关系运算的分类
(1)基本运算操作:并、差、笛卡尔积、投影和选择。
(2)组合运算操作:交、联接、自然联接和除。
另外,还有几种扩充的关系代数操作:外联接(左外联接和右外联接)、外部并和半联接。
2.除法定义的理解
设两个关系R和S的元数分别为r和s(r>s>0),那么R÷S是一个(r-s)元的元组的集合。(R÷S)是满足下列条件的最大关系,其中每个元组t与S中每个元组u组成的新元组必在关系R中。
![](https://i-blog.csdnimg.cn/blog_migrate/f22d9e1681cbb4aa1eec9e051aeb384c.png)
3.例题讲解
有很多学员对除法运算定义不是很理解,那么,我们下面用图示的方法来进行讲解。
例题1(2002年试题40)
● 关系R、S如下表所示,R÷(πAl,A2(σ1<3(S)))的结果为__(40)__。
![](https://i-blog.csdnimg.cn/blog_migrate/e36f148e549d273a019c34999f37e732.png)
(40) A.{d} B. {c,d}
C.{c,d,8} D. {(a,b),(b,a),(c,d),(d,f)}
例题1分析
首先看πAl,A2(σ1<3(S)) 得到哪些元组的一个关系表。
(1)σ1<3(S)的意思就是从关系S中选择第1列小于第3列的元组组成的关系表,如表1所示。
![](https://i-blog.csdnimg.cn/blog_migrate/fb637d34985e0b1b7ced3f81753f594d.png)
(2)πAl,A2 的意思就是对表1进行投影,对A1和A2列投影出来,如表2所示。
![](https://i-blog.csdnimg.cn/blog_migrate/373dd46473f00b18123222243fc8015d.png)
(3)表2是具有两个属性A1、A2和两个元组的关系表。
接下来是R÷X2了,首先,在R中找到A1与A2列和表2完全一致的元组。
![](https://i-blog.csdnimg.cn/blog_migrate/fcec0adc3f18f26fdc0b66ad271f2e73.png)
然后,在表3中,说明R关系内存在A1、A2列元组与表2的所有元组相同,此时关键是看R关系中其他列在这两行元组的值是否相同。只有相同时,除法的结果就为这个值,不相同,则除法的结果为空。
所以:R÷X2 = {d}
例题2(数据库系统工程师2005年5月试题44)
设有如下关系:
![](https://i-blog.csdnimg.cn/blog_migrate/4e31051b207004a93ab91c2018363906.png)
关系代数表达式R÷S的运算结果是__(44)__。
(44)
![](https://i-blog.csdnimg.cn/blog_migrate/f5536e5d6a7f0f3cd283c0ebc2e4c060.png)
例题2分析
在本题中,R的属性有A、B、C、D,而S的属性有C、D、E,因此,R÷S的属性有A、B。
求除法的简单方法是在关系R中寻找属性C和D的值同时满足关系S中属性C和D的所有元组的元组。
在关系R中,第1个元组(2,1,a,c)和第5个元组(2,1,b,d),其A和B的属性值相同,而C和D的属性值满足关系S中的C和D的所有属性值,因此(2,1)将是R÷S的元组。
![](https://i-blog.csdnimg.cn/blog_migrate/c5c1f2c427d1d3b0f1c64962300029ab.png)
关系R元组(3,2)对应C、D属性的值为(b,d)和(b、c),它不能满足关系S中属性C、D中的(a、c),因此满足要求。所以,第(44)空的正确答案是B。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26892340/viewspace-722260/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26892340/viewspace-722260/