数据库除运算怎么理解

数据库除运算怎么理解,第1张

关系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除以T时:(不区分大小写)

1..先找出R表中和T表相同的属性,这里是B和C。

2.也就是说R表中的其他属性A可以取值为{a,b,c}

3.其中, a的象集为{(b,c),(d,e)},b的象集为{(b,c),(d,e)},c的象集为{(a,b)}

4.而T在B和C上的投影为S{(b,c),(d,e)},这时候,我们在步骤三中找一个象集是包含S集合的,即a,b的象集包含了T在B,C

属性组上的投影,所以R÷T={a,b}。

R的属性是(A,B,C,D),S的属性是(C,D)

因此,R÷S的属性是(A,B),注:R÷S的属性由属于R但不属于S的属性组成

(R÷S)×S得到的元组必须是R中的元组。

S的第一个元组是(c,d),可以在R中寻找C属性为c,D属性为d的元组,结果可以发现有以下两组:

a b c d

e d c d

对应的A、B属性为以下两组

a b

e d

S的第二个元组是(e,f),可以检验R中有没有元组a b e f 和e d e f,如果没有前者将a b去掉,没有后者前e d去掉,本题2者均有,因此结果R÷S为

A B

a b

e d

有关系:R(x,y) S(y,z)

R S

A B C B C D

a1 b1 c2 b1 c2 d1

a1 b2 c3 b2 c1 d1

a1 b2 c1 b2 c3 d2

......

R÷S的结果为a1

x相当于A y 相当于B,C z相当于D

按照除运算规则,我们不必关注D

只需比较B,C当S关系中的B,C所有的组合(b1,c2)(b2,c3)(b2,c1)都出现在R关系中时,结果才为A

R÷S = {tr[X] | tr&IcircR∧πY (S) íYx }

Yx:x在R中的象集,x = tr[X]

除 *** 作是同时从行和列角度进行运算


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9608824.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存