投影(Projection) 7 m8 t/ Q, o. m" r2 D+ o) i6 o
关系R上的投影是从R中选择出若干属性列组成新的关系。记作: $ V" Q# z0 r# g5 L
ΠA(R) = { t[A] | t∈R } # o% w) E1 k+ E
其中A为R中的属性列。 8 c* ]2 D/ X8 c( L
举例 ! ^# {3 O& M$ _; u X
例3 查询学生关系Student在学生姓名和所在系两个属性上的投影:
) M6 g# E! e- D# j; ~6 G; j: u ΠSname,Sdept(Student) 6 U- o a: @- m$ m7 S
或
4 C/ `8 D; c+ U/ ^& N Π2,5(Student) ; g0 L% V, m2 F1 W; Y- b4 ], x" t; t0 }
结果如图2-7(a)。
1 R* Q+ v, u# [ 投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。 + t$ r/ o' f& T1 M! _
例4 查询学生关系Student中都有哪些系,即查询学生关系Student在所在系属性上的投影
7 l3 b2 k. z* b( }% [+ I5 g ΠSdept(Student) 8 b% t3 V5 I$ K9 @! U: O
投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。
6 f* C( V' W3 _0 J0 K5 p9 ^ 连接(Join) 连接也称为θ连接。它是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:2 @3 B. }1 T0 a" x
4 i( I+ |% v0 K
其中A和B分别为R和S上度数相等且可比的属性组。θ是比较运算符。连接运算从R和S的笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系θ的元组。
7 R1 v* r$ \% |2 Z1 a4 O( J' t/ a! p7 d' S. h! n8 @2 i6 I# o
连接运算中有两种最为重要也最为常用的连接,一种是等值连接(equi-join),另一种是自然连接(Natural join)。 # W- [# d& b( v" \' K2 L" Q
θ为“=”的连接运算称为等值连接。它是从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组。即等值连接为:
3 {: P; S$ p- _4 Y4 q) X
& k, ]* x, V- A" P8 y 自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作:
2 P& d" ~, Y! V* [% _1 B& |* M $ L k, X0 W# V8 Q+ U
一般的连接操作是从行的角度进行运算。但自然连接还需要取消了重复列,所以是同时从行和列的角度进行运算。 7 w2 }0 k: Q; T
除(Division)
3 l, A6 Y' i3 v# q 给定关系R(X,Y)和S(Y,Z),其中X、Y、Z为属性组。R中的Y与S中的Y&127;可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:
! a1 t* f0 f. p; H
* ^( J" E; Q5 t 其中Yx为x在R中的象集,x=tr[X]。
* A" y4 g6 \( j! s3 V& C 举例 , e# a' T" R- t, r( P
例6 设关系R、S分别为图2-9中的(a)和(b),R÷S的结果为图2-9(c)。
( M% T0 u! C, C: x T( h: v 在关系R中,A可以取四个值{a1, a2, a3, a4}。其中:
) j! }* y7 L8 M, I a1的象集为{(b1,c2), (b2,c3), (b2,c1)} . J2 b" I; I1 j0 @
a2的象集为{(b3,c7), (b2,c3)}
8 N5 @; W: j" Q8 J a3的象集为{(b4,c6)}
6 Y9 |! j( B& Z" x4 I" X a4的象集为{(b6,c6)}
/ ]9 G+ E5 M. ~ S在(B,C)上的投影为{(b1,c2), (b2,c3), (b2,c1)} 显然只有a1的象集(B,C)a1包含S在(B,C)属性组上的投影,所以R÷S={a1}。+ }5 V7 A6 A6 t/ ]: g" J) ~# Z& D9 ]1 R
& W6 P7 d6 H u) u! C1 ?1 a% cR
+ P" {3 ? s# B4 }8 t& U/ ~ 8 b3 Y, e# I! Q$ p) W e& |
S
1 |9 J1 x# d. g" b 9 r$ l8 k) R9 e/ D
R÷S
. [6 K% x" Z* ^4 O& }$ c6 OA' ^( Y0 h# o, G
B+ C" e0 x4 ~6 l3 U1 v3 r! |$ v+ p
C
. r6 j0 {/ v D% N" u/ M9 rB
) T8 ~, ~2 |0 x$ k& PC. ^' p6 |/ n9 x k/ U7 S( f
D
# e+ J$ [! r7 ?2 R1 ^+ \A
+ `; R3 t" i9 _" sa1
0 f1 W( i) T* s+ n" P) W+ hb1& }. ~* Q# ^" P2 s& ~: N+ U u7 m
c2
# `% t+ ]; d! Sb1
# a$ p/ U3 ]% V4 i' J; {& jc22 s+ h: K: C. o% W1 ^0 R
d1
. M: E: p- k! d5 u$ H- p$ @a17 r" ~1 O1 F7 j" l3 A
a28 u8 M! ]" r8 w0 m8 |* P& q
b3
j% r6 s- N( w" }c7) `) |5 ~- l. [* e) C) k8 E/ g$ u
b2
: ~# g% L% Q6 Gc17 z# N; `; F2 F ?
d1) w; R$ d. q& M/ k( u" C
, `/ T5 K2 `7 x) N+ M" B. Fa3
, q, F. a7 K9 S, J, }) Nb4, s2 i2 r7 H/ l, Q
c6
* Q" t3 ]% V. L/ Y9 \b20 M+ g1 O, j) H8 Z) Y& t
c17 e, \6 q% S) x& v
d1+ S' s. V, Y5 k A) V
( A" X5 `$ a y) n; A! m& ]0 O3 aa1
2 s5 j% o2 y: i- X8 n' o3 y; z' Ab2 a3 l- A5 \- A) K3 S' |* @ s# {
c3* Y% D& q- ]- q% Y! _* s
b2
3 D! p: r& K" i9 o! f3 Z7 o2 M- {c3
$ ^9 @: }: T! Y/ R0 v+ l4 w* H; pd2% l0 K8 l3 P0 Z S0 a
7 t( {/ ?4 \8 \1 ^+ Ha4 C8 a5 u4 T3 I- E' }* T! l( Y
b6
4 g8 \+ K4 t. K" P( E. nc6
3 Q8 F" m; M; F+ ` % v* n6 b& Z' T- j
. V* p9 ]# I% ^: ^9 v" Z3 u3 m" |
2 y: g' i6 v% h# G. ~% d
5 h3 ]- ]2 X. qa2( A! A: ^% q3 P$ ]
b2
& N* E ?( X7 U0 N' P5 M3 a5 `c3
( @8 A: H" p. ~2 {1 b+ j7 ]. m9 @3 t4 u
5 ]& t& H i, [5 y3 [
- }8 |7 A+ ^. M9 n3 X& z k x; I ' A h# W1 T, X: R, M u& N
9 j C6 o! A( ?7 oa1" V" l& p" `9 m/ i1 f
b2& P" G- R w% p+ V- T7 L8 s
c1) G* ^" H! E A2 `3 j5 {
8 B+ F: w, E j1 ?" Z6 d
% A7 R5 ?( E; Y0 Y ( F5 g( e5 D' O% V) H& e
, Y6 u( u$ y- I' k5 e. K; d2 J
(a)
0 h- D/ L% s* v0 K/ p1 [- @3 C7 ?4 F(b)
! R/ p" J8 n0 m6 Y(c) |