Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Database Systems 1 Relational Algebra Relational Model: Topic 3.

Similar presentations


Presentation on theme: "Introduction to Database Systems 1 Relational Algebra Relational Model: Topic 3."— Presentation transcript:

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


Download ppt "Introduction to Database Systems 1 Relational Algebra Relational Model: Topic 3."

Similar presentations


Ads by Google