Download presentation
Presentation is loading. Please wait.
1
Introduction to Database Systems 1 Relational Algebra Relational Model: Topic 3
2
Introduction to Database Systems 2 Preliminaries v 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 regardless of instance!) –The schema for the result of a given query is also fixed! Determined by definition of query language constructs.
3
Introduction to Database Systems 3 Example Instances R1 S1 S2 v “Sailors” and “Reserves” relations for our examples.
4
Introduction to Database Systems 4 Relational Algebra v Basic operations: – Selection ( ) Selects a subset of rows from relation. – Projection ( ) Deletes unwanted columns from relation. – Cross-product ( ) Allows us to combine two relations. – Set-difference ( ) Tuples in reln. 1, but not in reln. 2. – Union ( ) Tuples in reln. 1 and in reln. 2. v Additional operations: –Intersection, join, division, renaming: Not essential, but (very!) useful. v Operations can be composed ! (Algebra is “closed”.)
5
Introduction to Database Systems 5 Projection v Deletes attributes that are not in projection list. v Schema of result? v Duplicates !
6
Introduction to Database Systems 6 Selection v Selects rows that satisfy selection condition. v Duplicates? v Schema of result?
7
Introduction to Database Systems 7 Union, Intersection, Set-Difference v Inputs: union-compatible : –Same number/type of fields. v Schema of result? v Duplicates?
8
Introduction to Database Systems 8 Cross-Product v Each row of S1 is paired with each row of R1. v Result schema has one field per field of S1 and R1, with field names `inherited’ if possible. * Renaming operator :
9
Introduction to Database Systems 9 Joins v Condition Join : v Result schema ? v Fewer tuples than cross-product, might be able to compute more efficiently
10
Introduction to Database Systems 10 Joins v Equi-Join : A special case of condition join where the condition c contains only equalities. v Result schema similar to cross-product, but only one copy of fields for which equality is specified. v Natural Join : Equijoin on all common fields.
11
Introduction to Database Systems 11 Division v Not supported as a primitive operator, but useful for expressing queries like: Find sailors who have reserved all boats. v Let A have 2 fields, x and y ; B have only field y : – A/B = –i.e., A/B contains all x tuples (sailors) such that for every y tuple (boat) in B, there is an xy tuple in A. – Or : If the set of y values (boats) associated with an x value (sailor) in A contains all y values in B, the x value is in A/B. v In general, x and y can be any lists of fields; y is the list of fields in B, and x y is the list of fields of A.
12
Introduction to Database Systems 12 Examples of Division A/B A B1 B2 B3 A/B1 A/B2A/B3
13
Introduction to Database Systems 13 Expressing A/B Using Basic Operators v Division is not essential operator; just a useful shorthand. v Idea : For A/B, compute all x values that are not `disqualified’ by some y value in B. – x value is disqualified if by attaching y value from B, we obtain an xy tuple that is not in A. Disqualified x values: A/B: all disqualified x values
14
Introduction to Database Systems 14 Find names of sailors who’ve reserved boat #103 v Solution 1: v Solution 2 : v Solution 3 :
15
Introduction to Database Systems 15 Find names of sailors who’ve reserved a red boat v Information about boat color only available in Boats; so need an extra join: v A more efficient solution: * A query optimizer can find this
16
Introduction to Database Systems 16 Find sailors who’ve reserved a red or a green boat v Can identify all red or green boats, then find sailors who’ve reserved one of these boats: v Can also define Tempboats using union! (How?) v What happens if is replaced by in this query?
17
Introduction to Database Systems 17 Find sailors who’ve reserved a red and a green boat v Previous approach won’t work! Must identify sailors who’ve reserved red boats, sailors who’ve reserved green boats, then find the intersection (note that sid is a key for Sailors):
18
Introduction to Database Systems 18 Find the names of sailors who’ve reserved all boats v Uses division; schemas of the input relations to / must be carefully chosen: v To find sailors who’ve reserved all ‘Interlake’ boats:.....
19
Introduction to Database Systems 19 Expressive Power v Codd’s Theorem: Every Relational Algebra query can be expressed as a safe query in DRC / TRC; the converse is also true. v Relational Completeness : A “relationally complete” query language (e.g., SQL) can express every query that is expressible in relational algebra/calculus.
20
Introduction to Database Systems 20 A Limitation of the Algebra v For any particular instance of Edges, there is an R.A. expression to compute transitive closure. (What is it?) v There’s no R.A. for transitive closure of an arbitrary instance of Edges. (Why?) Edges ab cy z
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.