除运算
设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,则T的原则与S的元组的所有组合都在R中。用象集来定义除法:给定关系R(X,Y)和S(Y,Z)。其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上的分量值x的象集Yx包含S在Y上的投影的集合。记作:R➗S={tr[X]|tr∈R∧ ΠY(S)⊆Yx },其中Yx为x在R中的象集,x=tr[X]
除操作是同时从行和列角度进行运算。
例1:
设关系R、S分别为图一中的(a)和(b),R÷S的结果为图二。在关系R中,A可以取4个值{a1,a2,a3,a4}
如图所示,其分析结果如下图所示
显然,只有a1的象集(B,C)a1包含了S在(B,C)属性组上的投影,所以R÷S={a1}
除数和被除数都为关系,因此做除运算之后的结果也是关系,即R÷S={a1},结果也可以使用表格的形式写出来。
例2查询至少选秀1号课程和3号课程的学生号码(以P52学生-课程数据库为例)
1.首先建立一个临时关系K:
201215121的象集为{1,2,3}
201215122的象集为{2,3}
K在(Sno,Cno)201215121的投影为:{1,3}
故,结果为{201215121}。