CS 186 Spring 2006, Lecture 8 R & G, Chapter 4 By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental power of the race. -- Alfred North Whitehead (1861 - 1947)
Administrivia
Midterm 1 Tues 2/21, in class Covers all material up to and including Th 2/16 Closed book can bring 1 8.5x11 sheet of notes No calculators no cell phones Midterm 2 Th 3/21, in class Focuses on material after MT 1 Same rules as above. Homework 1 2/14 Homework 2 Out after MT 1, Due 3/14
Preliminaries
A query is applied to relation instances, and the result of a query is also a relation instance. Schemas of input relations for a query are fixed (but query will run over any legal instance) The schema for the result of a given query is also fixed. It is determined by the definitions of the query language constructs. Positional vs. named-field notation: Positional notation easier for formal definitions, named-field notation more readable. Both used in SQL
Example Instances
R1
sid bid day 22 101 10/10/96 58 103 11/12/96 sname rating age dustin 7 45.0 lubber 8 55.5 rusty 10 35.0 sname rating age yuppy 9 35.0 lubber 8 55.5 guppy 5 35.0 rusty 10 35.0
S1 sid
22 31 58
S2
Boats
sid 28 31 44 58
Projection
Examples: T age(S2) ; T sname, rating(S2) Retains only attributes that are in the projection list . Schema of result: exactly the fields in the projection list, with the same names that they had in the input relation. Projection operator has to eliminate duplicates (How do they arise? Why remove them?) Note: real systems typically don t do duplicate elimination unless the user explicitly asks for it. (Why not?)
sname
rating 9 8 5 10
Projection
sid 28 31 44 58
sname rating age yuppy 9 35.0 lubber 8 55.5 guppy 5 35.0 rusty 10 35.0
S2
T sname,rating (S 2)
age 35.0 55.5
T age(S2)
Selection (W)
Selects rows that satisfy selection condition. Result is a relation. Schema of result is same as that of the input relation. Do we need to do duplicate elimination?
sid 28 31 44 58
sname rating age yuppy 9 35.0 lubber 8 55.5 guppy 5 35.0 rusty 10 35.0
s a e r st
rati 9 10
W rating "8(S2)
Union
sid 22 31 58 sid 28 31 44 58 sname rating age dustin 7 45.0 lubber 8 55.5 rusty 10 35.0
S1
sid s a e 22 31 58 44 28 d sti l er r st
rati 7 8 10 5 9
sname rating age yuppy 9 35.0 lubber 8 55.5 guppy 5 35.0 rusty 10 35.0
S2
S1 S 2
Set Difference
sid 22 31 58 sid 28 31 44 58 sname rating age dustin 7 45.0 lubber 8 55.5 rusty 10 35.0
S1
sid 22
s a e d sti
rati 7
a e 45.0
S1 S2
sname rating age yuppy 9 35.0 lubber 8 55.5 guppy 5 35.0 rusty 10 35.0
S2
S2 S1
Cross-Product
S1 x R1: Each row of S1 paired with each row of R1. Q: How many rows in the result? Result schema has one field per field of S1 and R1, with field names `inherited if possible. May have a naming conflict: Both S1 and R1 have a field with the same name. In this case, can use the renaming operator: V (C(1p sid1, 5 p sid 2), S1v R1)
sid 22 31 58
R1 X S1 =
22 31 31 58 58
R S = R (R S)
Intersection
sid 22 31 58 sid 28 31 44 58 sname rating age dustin 7 45.0 lubber 8 55.5 rusty 10 35.0
S1
si 31 58
rating 8 10
sname rating age yuppy 9 35.0 lubber 8 55.5 guppy 5 35.0 rusty 10 35.0
S2
S1 S 2
Note: Usually done much more efficiently than this. Useful for putting normalized relations back together.
sid 22 31 58
R1
sid 22 58
S1 =
sname rating age bid day dustin 7 45.0 101 10/10/96 rusty 10 35.0 103 11/12/96
R cS !
c ( R v S)
Result schema same as that of cross-product. May have fewer tuples than cross-product.
sid 22 31 58
S1 ><
R1 = S1.sid R1.sid
s e r ti sti l er e . . (si ) i
(si )
A B
_x
y B ( x, y A )a
A/B contains all x tuples such that for every y tuple in B, there is an xy tuple in A.
pno p2
B1
no 1 2
pno p2 p
B2
pno p1 p2 p
B3
no 1
no 1
A/B1
A/B2
A/B3
T x ((T x ( ) v ) )
Disq alified x val es
A/B:
T x ( A)
Examples
sid bid day Reserves 22 101 10/10/96 58 103 11/12/96 sid Sailors 22 31 58 sname rating age dustin 7 45.0 lubber 8 55.5 rusty 10 35.0 color lue Red Green Red
Boats
T sname((W
T sname (
bid !103
Reserves) Sailors)
(Re serves Sailors))
bid !103
re efficie t (???) s l ti
sid ((T bid (W color !'red '
T sname (T
V (Tempboats, (W
Boats))
V (Tempred, T
sid
((W
Boats) Re serves))
V (Tempgreen, T
sid
((W
Boats) Re serves))
V (Tempsids, (T
sid, bid
Re serves) / (T
bid
Boats))
/T
bid
(W
Boats)