Download presentation
Presentation is loading. Please wait.
1
Lecture #4: Relational Algebra
Faloutsos - Pavlo CMU SCS /615 Carnegie Mellon Univ. School of Computer Science /615 - DB Applications C. Faloutsos & A. Pavlo Lecture #4: Relational Algebra
2
Overview history concepts Formal query languages relational algebra
Faloutsos - Pavlo CMU SCS /615 Overview history concepts Formal query languages relational algebra rel. tuple calculus rel. domain calculus Faloutsos - Pavlo CMU SCS /615
3
History before: records, pointers, sets etc
Faloutsos - Pavlo CMU SCS /615 History before: records, pointers, sets etc introduced by E.F. Codd in 1970 revolutionary! first systems: (System R; Ingres) Turing award in 1981 Faloutsos - Pavlo CMU SCS /615
4
Concepts - reminder Database: a set of relations (= tables)
Faloutsos - Pavlo CMU SCS /615 Concepts - reminder Database: a set of relations (= tables) rows: tuples columns: attributes (or keys) superkey, candidate key, primary key Faloutsos - Pavlo CMU SCS /615
5
Example Database: Faloutsos - Pavlo CMU SCS 15-415/615
6
Example: cont’d Database: k-th attribute (Dk domain)
Faloutsos - Pavlo CMU SCS /615 Example: cont’d k-th attribute (Dk domain) Database: rel. schema (attr+domains) tuple Faloutsos - Pavlo CMU SCS /615
7
Example: cont’d rel. schema (attr+domains) instance Faloutsos - Pavlo
CMU SCS /615 Example: cont’d rel. schema (attr+domains) instance Faloutsos - Pavlo CMU SCS /615
8
Example: cont’d Di: the domain of the i-th attribute (eg., char(10)
Faloutsos - Pavlo CMU SCS /615 Example: cont’d Di: the domain of the i-th attribute (eg., char(10) rel. schema (attr+domains) instance Faloutsos - Pavlo CMU SCS /615
9
Overview history concepts Formal query languages relational algebra
Faloutsos - Pavlo CMU SCS /615 Overview history concepts Formal query languages relational algebra rel. tuple calculus rel. domain calculus Faloutsos - Pavlo CMU SCS /615
10
Formal query languages
Faloutsos - Pavlo CMU SCS /615 Formal query languages How do we collect information? Eg., find ssn’s of people in 415 (recall: everything is a set!) One solution: Rel. algebra, ie., set operators Q1: Which ones?? Q2: what is a minimal set of operators? Faloutsos - Pavlo CMU SCS /615
11
Relational operators . set union U set difference ‘-’
Faloutsos - Pavlo CMU SCS /615 Relational operators . set union U set difference ‘-’ Faloutsos - Pavlo CMU SCS /615
12
Example: Q: find all students (part or full time)
Faloutsos - Pavlo CMU SCS /615 Example: Q: find all students (part or full time) A: PT-STUDENT union FT-STUDENT Faloutsos - Pavlo CMU SCS /615
13
Faloutsos - Pavlo CMU SCS /615 Observations: two tables are ‘union compatible’ if they have the same attributes (‘domains’) Q: how about intersection U Faloutsos - Pavlo CMU SCS /615
14
Observations: A: redundant: STUDENT intersection STAFF = STAFF STUDENT
Faloutsos - Pavlo CMU SCS /615 Observations: A: redundant: STUDENT intersection STAFF = STAFF STUDENT Faloutsos - Pavlo CMU SCS /615
15
Observations: A: redundant: STUDENT intersection STAFF = STAFF STUDENT
Faloutsos - Pavlo CMU SCS /615 Observations: A: redundant: STUDENT intersection STAFF = STAFF STUDENT Faloutsos - Pavlo CMU SCS /615
16
Observations: A: redundant: STUDENT intersection STAFF =
Faloutsos - Pavlo CMU SCS /615 Observations: A: redundant: STUDENT intersection STAFF = STUDENT - (STUDENT - STAFF) STAFF STUDENT Faloutsos - Pavlo CMU SCS /615
17
Observations: A: redundant: STUDENT intersection STAFF =
Faloutsos - Pavlo CMU SCS /615 Observations: A: redundant: STUDENT intersection STAFF = STUDENT - (STUDENT - STAFF) Double negation: We’ll see it again, later… Faloutsos - Pavlo CMU SCS /615
18
Relational operators . set union set difference ‘-’ U
Faloutsos - Pavlo CMU SCS /615 Relational operators . set union set difference ‘-’ U Faloutsos - Pavlo CMU SCS /615
19
Other operators? eg, find all students on ‘Main street’ A: ‘selection’
Faloutsos - Pavlo CMU SCS /615 Other operators? eg, find all students on ‘Main street’ A: ‘selection’ Faloutsos - Pavlo CMU SCS /615
20
Faloutsos - Pavlo CMU SCS /615 Other operators? Notice: selection (and rest of operators) expect tables, and produce tables (-> can be cascaded!!) For selection, in general: Faloutsos - Pavlo CMU SCS /615
21
Selection - examples Find all ‘Smiths’ on ‘Forbes Ave’
Faloutsos - Pavlo CMU SCS /615 Selection - examples Find all ‘Smiths’ on ‘Forbes Ave’ ‘condition’ can be any boolean combination of ‘=‘, ‘>’, ‘>=‘, ... Faloutsos - Pavlo CMU SCS /615
22
Relational operators selection . set union set difference R - S R U S
Faloutsos - Pavlo CMU SCS /615 Relational operators selection . set union set difference R - S R U S Faloutsos - Pavlo CMU SCS /615
23
Relational operators selection picks rows - how about columns?
Faloutsos - Pavlo CMU SCS /615 Relational operators selection picks rows - how about columns? A: ‘projection’ - eg.: finds all the ‘ssn’ - removing duplicates Faloutsos - Pavlo CMU SCS /615
24
Relational operators Cascading: ‘find ssn of students on ‘forbes ave’
Faloutsos - Pavlo CMU SCS /615 Relational operators Cascading: ‘find ssn of students on ‘forbes ave’ Faloutsos - Pavlo CMU SCS /615
25
Relational operators selection projection . set union
Faloutsos - Pavlo CMU SCS /615 Relational operators selection projection . set union set difference R - S R U S Faloutsos - Pavlo CMU SCS /615
26
Relational operators Are we done yet?
Faloutsos - Pavlo CMU SCS /615 Relational operators Are we done yet? Q: Give a query we can not answer yet! Faloutsos - Pavlo CMU SCS /615
27
Relational operators A: any query across two or more tables,
Faloutsos - Pavlo CMU SCS /615 Relational operators A: any query across two or more tables, eg., ‘find names of students in ’ Q: what extra operator do we need?? Faloutsos - Pavlo CMU SCS /615
28
Relational operators A: any query across two or more tables,
Faloutsos - Pavlo CMU SCS /615 Relational operators A: any query across two or more tables, eg., ‘find names of students in ’ Q: what extra operator do we need?? A: surprisingly, cartesian product is enough! Faloutsos - Pavlo CMU SCS /615
29
Cartesian product eg., dog-breeding: MALE x FEMALE
Faloutsos - Pavlo CMU SCS /615 Cartesian product eg., dog-breeding: MALE x FEMALE gives all possible couples = x Faloutsos - Pavlo CMU SCS /615
30
so what? Eg., how do we find names of students taking 415?
Faloutsos - Pavlo CMU SCS /615 so what? Eg., how do we find names of students taking 415? Faloutsos - Pavlo CMU SCS /615
31
Cartesian product A: Faloutsos - Pavlo CMU SCS 15-415/615
32
Cartesian product Faloutsos - Pavlo CMU SCS 15-415/615
33
Faloutsos - Pavlo CMU SCS /615 Faloutsos - Pavlo CMU SCS /615
34
FUNDAMENTAL Relational operators
Faloutsos - Pavlo CMU SCS /615 FUNDAMENTAL Relational operators selection projection cartesian product MALE x FEMALE set union set difference R - S R U S Faloutsos - Pavlo CMU SCS /615
35
Faloutsos - Pavlo CMU SCS /615 Relational ops Surprisingly, they are enough, to help us answer almost any query we want!! derived/convenience operators: set intersection join (theta join, equi-join, natural join) ‘rename’ operator division Faloutsos - Pavlo CMU SCS /615
36
Joins Equijoin: Faloutsos - Pavlo CMU SCS 15-415/615 Faloutsos - Pavlo
37
Cartesian product A: Faloutsos - Pavlo CMU SCS 15-415/615
38
Joins Equijoin: theta-joins:
Faloutsos - Pavlo CMU SCS /615 Joins Equijoin: theta-joins: generalization of equi-join - any condition Faloutsos - Pavlo CMU SCS /615
39
Joins very popular: natural join: R S
Faloutsos - Pavlo CMU SCS /615 Joins very popular: natural join: R S like equi-join, but it drops duplicate columns: STUDENT (ssn, name, address) TAKES (ssn, cid, grade) Faloutsos - Pavlo CMU SCS /615
40
Joins nat. join has 5 attributes equi-join: 6 Faloutsos - Pavlo
CMU SCS /615 Joins nat. join has 5 attributes equi-join: 6 Faloutsos - Pavlo CMU SCS /615
41
Natural Joins - nit-picking
Faloutsos - Pavlo CMU SCS /615 Natural Joins - nit-picking if no attributes in common between R, S: nat. join -> cartesian product Faloutsos - Pavlo CMU SCS /615
42
Overview - rel. algebra fundamental operators derived operators
Faloutsos - Pavlo CMU SCS /615 Overview - rel. algebra fundamental operators derived operators joins etc rename division examples Faloutsos - Pavlo CMU SCS /615
43
Rename op. Q: why? A: shorthand; self-joins; …
Faloutsos - Pavlo CMU SCS /615 Rename op. Q: why? A: shorthand; self-joins; … for example, find the grand-parents of ‘Tom’, given PC (parent-id, child-id) Faloutsos - Pavlo CMU SCS /615
44
Rename op. PC (parent-id, child-id) Faloutsos - Pavlo
CMU SCS /615 Rename op. PC (parent-id, child-id) Faloutsos - Pavlo CMU SCS /615
45
Rename op. first, WRONG attempt: (why? how many columns?)
Faloutsos - Pavlo CMU SCS /615 Rename op. first, WRONG attempt: (why? how many columns?) Second WRONG attempt: Faloutsos - Pavlo CMU SCS /615
46
Faloutsos - Pavlo CMU SCS /615 Rename op. we clearly need two different names for the same table - hence, the ‘rename’ op. Faloutsos - Pavlo CMU SCS /615
47
Overview - rel. algebra fundamental operators derived operators
Faloutsos - Pavlo CMU SCS /615 Overview - rel. algebra fundamental operators derived operators joins etc rename division examples Faloutsos - Pavlo CMU SCS /615
48
Division Rarely used, but powerful.
Faloutsos - Pavlo CMU SCS /615 Division Rarely used, but powerful. Example: find suspicious suppliers, ie., suppliers that supplied all the parts in A_BOMB Faloutsos - Pavlo CMU SCS /615
49
Division Faloutsos - Pavlo CMU SCS 15-415/615 Faloutsos - Pavlo
50
Division Observations: ~reverse of cartesian product
Faloutsos - Pavlo CMU SCS /615 Division Observations: ~reverse of cartesian product It can be derived from the 5 fundamental operators (!!) How? Faloutsos - Pavlo CMU SCS /615
51
Faloutsos - Pavlo CMU SCS /615 Division Answer: Observation: find ‘good’ suppliers, and subtract! (double negation) Faloutsos - Pavlo CMU SCS /615
52
Faloutsos - Pavlo CMU SCS /615 Division Answer: Observation: find ‘good’ suppliers, and subtract! (double negation) Faloutsos - Pavlo CMU SCS /615
53
Division Answer: All suppliers All bad parts Faloutsos - Pavlo
CMU SCS /615 Division Answer: All suppliers All bad parts Faloutsos - Pavlo CMU SCS /615
54
Division Answer: all possible suspicious shipments Faloutsos - Pavlo
CMU SCS /615 Division Answer: all possible suspicious shipments Faloutsos - Pavlo CMU SCS /615
55
Division Answer: all possible suspicious shipments that didn’t happen
Faloutsos - Pavlo CMU SCS /615 Division Answer: all possible suspicious shipments that didn’t happen Faloutsos - Pavlo CMU SCS /615
56
all suppliers who missed at least one suspicious shipment,
Faloutsos - Pavlo CMU SCS /615 Division Answer: all suppliers who missed at least one suspicious shipment, i.e.: ‘good’ suppliers Faloutsos - Pavlo CMU SCS /615
57
Overview - rel. algebra fundamental operators derived operators
Faloutsos - Pavlo CMU SCS /615 Overview - rel. algebra fundamental operators derived operators joins etc rename division examples Faloutsos - Pavlo CMU SCS /615
58
Sample schema find names of students that take 15-415
Faloutsos - Pavlo CMU SCS /615 Sample schema find names of students that take Faloutsos - Pavlo CMU SCS /615
59
Examples find names of students that take 15-415 Faloutsos - Pavlo
CMU SCS /615 Examples find names of students that take Faloutsos - Pavlo CMU SCS /615
60
Examples find names of students that take 15-415 Faloutsos - Pavlo
CMU SCS /615 Examples find names of students that take Faloutsos - Pavlo CMU SCS /615
61
Sample schema find course names of ‘smith’ Faloutsos - Pavlo
CMU SCS /615 Sample schema find course names of ‘smith’ Faloutsos - Pavlo CMU SCS /615
62
Examples find course names of ‘smith’ Faloutsos - Pavlo
CMU SCS /615 Examples find course names of ‘smith’ Faloutsos - Pavlo CMU SCS /615
63
Faloutsos - Pavlo CMU SCS /615 Examples find ssn of ‘overworked’ students, ie., that take 412, 413, 415 Faloutsos - Pavlo CMU SCS /615
64
Faloutsos - Pavlo CMU SCS /615 Examples find ssn of ‘overworked’ students, ie., that take 412, 413, 415: almost correct answer: Faloutsos - Pavlo CMU SCS /615
65
Faloutsos - Pavlo CMU SCS /615 Examples find ssn of ‘overworked’ students, ie., that take 412, 413, Correct answer: c-name=413 c-name=415 Faloutsos - Pavlo CMU SCS /615
66
Faloutsos - Pavlo CMU SCS /615 Examples find ssn of students that work at least as hard as ssn=123, ie., they take all the courses of ssn=123, and maybe more Faloutsos - Pavlo CMU SCS /615
67
Sample schema Faloutsos - Pavlo CMU SCS 15-415/615 Faloutsos - Pavlo
68
Faloutsos - Pavlo CMU SCS /615 Examples find ssn of students that work at least as hard as ssn=123 (ie., they take all the courses of ssn=123, and maybe more Faloutsos - Pavlo CMU SCS /615
69
Conclusions Relational model: only tables (‘relations’)
Faloutsos - Pavlo CMU SCS /615 Conclusions Relational model: only tables (‘relations’) relational algebra: powerful, minimal: 5 operators can handle almost any query! Faloutsos - Pavlo CMU SCS /615
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.