Chapter - 5 Algebra
Chapter - 5 Algebra
Overview
Carnegie Mellon Univ.
School of Computer Science • history
15-415/615 - DB Applications • concepts
• Formal query languages
– relational algebra
C. Faloutsos & A. Pavlo
– rel. tuple calculus
Lecture #4: Relational Algebra – rel. domain calculus
Faloutsos - Pavlo CMU SCS 15-415/615 #3 Faloutsos - Pavlo CMU SCS 15-415/615 #4
1
Faloutsos - Pavlo CMU SCS 15-415/615
Faloutsos - Pavlo CMU SCS 15-415/615 #5 Faloutsos - Pavlo CMU SCS 15-415/615 #6
instance instance
Faloutsos - Pavlo CMU SCS 15-415/615 #7 Faloutsos - Pavlo CMU SCS 15-415/615 #8
2
Faloutsos - Pavlo CMU SCS 15-415/615
Faloutsos - Pavlo CMU SCS 15-415/615 #9 Faloutsos - Pavlo CMU SCS 15-415/615 #10
Faloutsos - Pavlo CMU SCS 15-415/615 #11 Faloutsos - Pavlo CMU SCS 15-415/615 #12
3
Faloutsos - Pavlo CMU SCS 15-415/615
Observations: Observations:
• two tables are ‘union compatible’ if they • A: redundant:
have the same attributes (‘domains’) • STUDENT intersection STAFF =
U
• Q: how about intersection
STUDENT STAFF
Faloutsos - Pavlo CMU SCS 15-415/615 #13 Faloutsos - Pavlo CMU SCS 15-415/615 #14
Observations: Observations:
• A: redundant: • A: redundant:
• STUDENT intersection STAFF = • STUDENT intersection STAFF =
STUDENT - (STUDENT - STAFF)
Faloutsos - Pavlo CMU SCS 15-415/615 #15 Faloutsos - Pavlo CMU SCS 15-415/615 #16
4
Faloutsos - Pavlo CMU SCS 15-415/615
Faloutsos - Pavlo CMU SCS 15-415/615 #17 Faloutsos - Pavlo CMU SCS 15-415/615 #18
Faloutsos - Pavlo CMU SCS 15-415/615 #19 Faloutsos - Pavlo CMU SCS 15-415/615 #20
5
Faloutsos - Pavlo CMU SCS 15-415/615
Faloutsos - Pavlo CMU SCS 15-415/615 #21 Faloutsos - Pavlo CMU SCS 15-415/615 #22
Faloutsos - Pavlo CMU SCS 15-415/615 #23 Faloutsos - Pavlo CMU SCS 15-415/615 #24
6
Faloutsos - Pavlo CMU SCS 15-415/615
Faloutsos - Pavlo CMU SCS 15-415/615 #25 Faloutsos - Pavlo CMU SCS 15-415/615 #26
Faloutsos - Pavlo CMU SCS 15-415/615 #27 Faloutsos - Pavlo CMU SCS 15-415/615 #28
7
Faloutsos - Pavlo CMU SCS 15-415/615
x =
Faloutsos - Pavlo CMU SCS 15-415/615 #29 Faloutsos - Pavlo CMU SCS 15-415/615 #30
Faloutsos - Pavlo CMU SCS 15-415/615 #31 Faloutsos - Pavlo CMU SCS 15-415/615 #32
8
Faloutsos - Pavlo CMU SCS 15-415/615
FUNDAMENTAL
Relational operators
• selection
• projection
• cartesian product MALE x FEMALE
• set union RUS
• set difference R- S
Faloutsos - Pavlo CMU SCS 15-415/615 #33 Faloutsos - Pavlo CMU SCS 15-415/615 #34
Faloutsos - Pavlo CMU SCS 15-415/615 #35 Faloutsos - Pavlo CMU SCS 15-415/615 #36
9
Faloutsos - Pavlo CMU SCS 15-415/615
Faloutsos - Pavlo CMU SCS 15-415/615 #37 Faloutsos - Pavlo CMU SCS 15-415/615 #38
Joins Joins
• very popular: natural join: R S • nat. join has 5 attributes
• like equi-join, but it drops duplicate
columns:
STUDENT (ssn, name, address)
TAKES (ssn, cid, grade)
equi-join: 6
Faloutsos - Pavlo CMU SCS 15-415/615 #39 Faloutsos - Pavlo CMU SCS 15-415/615 #40
10
Faloutsos - Pavlo CMU SCS 15-415/615
Faloutsos - Pavlo CMU SCS 15-415/615 #41 Faloutsos - Pavlo CMU SCS 15-415/615 #42
Faloutsos - Pavlo CMU SCS 15-415/615 #43 Faloutsos - Pavlo CMU SCS 15-415/615 #44
11
Faloutsos - Pavlo CMU SCS 15-415/615
Faloutsos - Pavlo CMU SCS 15-415/615 #45 Faloutsos - Pavlo CMU SCS 15-415/615 #46
Faloutsos - Pavlo CMU SCS 15-415/615 #47 Faloutsos - Pavlo CMU SCS 15-415/615 #48
12
Faloutsos - Pavlo CMU SCS 15-415/615
Division Division
• Observations: ~reverse of cartesian product
• It can be derived from the 5 fundamental
operators (!!)
• How?
Faloutsos - Pavlo CMU SCS 15-415/615 #49 Faloutsos - Pavlo CMU SCS 15-415/615 #50
Division Division
• Answer: • Answer:
• Observation: find ‘good’ suppliers, and • Observation: find ‘good’ suppliers, and
subtract! (double negation) subtract! (double negation)
Faloutsos - Pavlo CMU SCS 15-415/615 #51 Faloutsos - Pavlo CMU SCS 15-415/615 #52
13
Faloutsos - Pavlo CMU SCS 15-415/615
Division Division
• Answer: • Answer:
All suppliers
all possible
All bad parts suspicious shipments
Faloutsos - Pavlo CMU SCS 15-415/615 #53 Faloutsos - Pavlo CMU SCS 15-415/615 #54
Division Division
• Answer: • Answer:
all possible
all suppliers who missed
suspicious shipments
at least one suspicious shipment,
that didn’t happen
i.e.: ‘good’ suppliers
Faloutsos - Pavlo CMU SCS 15-415/615 #55 Faloutsos - Pavlo CMU SCS 15-415/615 #56
14
Faloutsos - Pavlo CMU SCS 15-415/615
Faloutsos - Pavlo CMU SCS 15-415/615 #57 Faloutsos - Pavlo CMU SCS 15-415/615 #58
Examples Examples
• find names of students that take 15-415 • find names of students that take 15-415
Faloutsos - Pavlo CMU SCS 15-415/615 #59 Faloutsos - Pavlo CMU SCS 15-415/615 #60
15
Faloutsos - Pavlo CMU SCS 15-415/615
Faloutsos - Pavlo CMU SCS 15-415/615 #61 Faloutsos - Pavlo CMU SCS 15-415/615 #62
Examples Examples
• find ssn of ‘overworked’ students, ie., that • find ssn of ‘overworked’ students, ie., that
take 412, 413, 415 take 412, 413, 415: almost correct answer:
Faloutsos - Pavlo CMU SCS 15-415/615 #63 Faloutsos - Pavlo CMU SCS 15-415/615 #64
16
Faloutsos - Pavlo CMU SCS 15-415/615
Examples Examples
• find ssn of ‘overworked’ students, ie., that • find ssn of students that work at least as
take 412, 413, 415 - Correct answer: hard as ssn=123, ie., they take all the
courses of ssn=123, and maybe more
c-name=413
c-name=415
Faloutsos - Pavlo CMU SCS 15-415/615 #65 Faloutsos - Pavlo CMU SCS 15-415/615 #66
Faloutsos - Pavlo CMU SCS 15-415/615 #67 Faloutsos - Pavlo CMU SCS 15-415/615 #68
17
Faloutsos - Pavlo CMU SCS 15-415/615
CMU SCS
Conclusions
• Relational model: only tables (‘relations’)
• relational algebra: powerful, minimal: 5
operators can handle almost any query!
18