数据库-——关系代数的除法运算及易错示例
除法运算
大概数据库中关系运算复杂点的也就是除法运算了,这也可能是很多入门新手数据库学习中遇到的第一个障碍。
接着我们来理清一下。
除法//话不多说,直接开莽
我们先创建两个表格,一个学生表,一个S1表。
学生表:
**
S1:
R÷S1=学生表中年龄为19的学生信息的新表格,但这个新表格中的字段不包括年龄。
答案如下:
懂了没?是不是很清晰!
不懂?没事我们再来举例!
依旧是这个学生表,但我们S1换成一个具有两个字段的S2
S2:
那结果就是在学生表中,/同时/满足S2所有条件的学生信息,但没有S2中的字段的新表。如下图:
学生÷S2
现在让我们来理解一下书中的定义。
书中的定义
这个式子我一开始看的时候也是脑壳一懵,不要慌!我们来慢慢解析。
首先tr为求象集。
于是我们引入象集的概念:
在学生表中,每个分量值都会有它的象集。
如学生表:
001的象集:{(张三,19,计算机)}
计算机的象集:{(001,张三,19),(002,李冰,21),(004,王华,21)}
所以,象集的本质是一次选择运算和一次投影运算。
S2:
所以学生表上学号和姓名的分量的象集为:
(001,张三)象集为(19,计算机)
(002,李四)象集为(20,管理)
(003,李冰)象集为(21,计算机)
(004,王华)象集为(21,计算机)
年龄和系名在S2上的投影为:
(21,计算机)
显然只有(003,李冰)和(004,王华)的象集包含投影(21,计算机)
所以学生÷S2:
再结合到公式上看,应该可以理解公式了。
这应该够清楚了吧,希望对你们有所帮助!