对数据库关系代数中除法运算的理解

一、基本概念

1.象集

给定一个关系R(X,Z),X和Z为属性组,当t[X]=x时,x在R中的象集定义为:
Z x = { t [ Z ] ∣ t ∈ R , t [ X ] = x } Z_x=\{t[Z]|t\in R,t[X]=x\} Zx={t[Z]tR,t[X]=x}
表示R中属性组X上值为x的诸元组在Z上分量的集合。

例:
有如下表R

X取值Z取值
x 1 x_1 x1 Z 2 Z_2 Z2
x 1 x_1 x1 Z 2 Z_2 Z2
x 1 x_1 x1 Z 3 Z_3 Z3
x 2 x_2 x2 Z 2 Z_2 Z2
x 2 x_2 x2 Z 3 Z_3 Z3
x 3 x_3 x3 Z 1 Z_1 Z1
x 3 x_3 x3 Z 3 Z_3 Z3


x 1 x_1 x1在R中的象集 Z x 1 = { Z 1 , Z 2 , Z 3 } Z_{x1}=\{Z_1,Z_2,Z_3\} Zx1={Z1,Z2,Z3}
x 2 x_2 x2在R中的象集 Z x 2 = { Z 2 , Z 3 } Z_{x2}=\{Z_2,Z_3\} Zx2={Z2,Z3}
x 3 x_3 x3在R中的象集 Z x 3 = { Z 1 , Z 3 } Z_{x3}=\{Z_1,Z_3\} Zx3={Z1,Z3}

2.除法运算

R ÷ S = { t r [ X ] ∣ t r ∈ R ∧ Π Y ( S ) ⊆ Y x } \div S=\{t_r[X] |t_r\in R\wedge \Pi_Y(S)\subseteq Y_x\} ÷S={tr[X]trRΠY(S)Yx}

除运算的结果为P(X)
P是R中满足满足以下条件的元组在X属性上的投影:元组在X上分量值x的象集 Y x Y_x Yx包含S在Y上投影的集合。

这个定义看起来比较难以理解,因此下面给出几个例子。

二、除法运算的例子(通过例子更容易理解)

例一

在这里插入图片描述
R和S共有的属性为B和C,在S中(B,C)组合有三种,即 ( b 1 , c 2 ) , ( b 2 , c 1 ) , ( b 2 , c 3 ) (b_1,c_2),(b_2,c_1),(b_2,c_3) (b1,c2),(b2,c1),(b2,c3),因此接下来就要找到R中象集为这三个的元素A。
R中
a 1 a_1 a1的象集为 { ( b 1 , c 2 ) , ( b 2 , c 3 ) , ( b 2 , c 1 ) } \{(b_1,c_2),(b_2,c_3),(b_2,c_1)\} {(b1,c2),(b2c3),(b2,c1)}
a 2 a_2 a2的象集为 { ( b 3 , c 7 ) , ( b 2 , c 3 ) } \{(b_3,c_7),(b_2,c_3)\} {(b3,c7),(b2c3)}
a 3 a_3 a3的象集为 { ( b 4 , c 6 ) } \{(b_4,c_6)\} {(b4,c6)}
a 4 a_4 a4的象集为 { ( b 6 , c 6 ) } \{(b_6,c_6)\} {(b6,c6)}
由于只有 a 1 a_1 a1的象集包含了S在(B,C)属性组上的投影,所以 R ÷ S = { a 1 } R\div S=\{a_1\} R÷S={a1}

例二

假设有如下R表:

姓名性别班级年龄
A1班14
B1班15
C2班14
D2班15
E2班15

有如下S表:

性别班级
2班

R ÷ S R\div S R÷S 的结果如下:

姓名年龄
C14
D15

即我们可以将S看作是一个条件,从R中筛选出满足条件S的元组,同时,除去R中与S共有的属性(列)
例如上面一个例子就是选择出既是2班的,性别又为男的所有学生的姓名和年龄。

参考资料

1.《数据库系统概论》王珊,萨师煊
2. 数据库-——关系代数的除法运算最白话解析 by lmo星星呐

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云霄星乖乖的果冻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值