# COMP 5138 Relational Database Management Systems Semester 2, 2007 Lecture 5A Relational Algebra.

## Presentation on theme: "COMP 5138 Relational Database Management Systems Semester 2, 2007 Lecture 5A Relational Algebra."— Presentation transcript:

COMP 5138 Relational Database Management Systems Semester 2, 2007 Lecture 5A Relational Algebra

22 L3 Relational Data Model Overview There are many tasks that can be understood as calculating some relation by combining the information in one or more relation instances Relational algebra defines some operators that can be used to express a calculation like that A central insight: a query that extracts information can be seen as calculating a relation from the current state of the database

33 L3 Relational Data Model Relational Algebra Users request information from a database using a query language Six basic and several additional operators Basic operations: Selection ( ) Selects a subset of rows from relation. Projection ( ) Extracts only desired 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 or in reln. 2. Rename ( ) Allows us to rename one field to another name. Additional operations: Intersection, join, division: Not essential, but (very!) useful. The operators take one or more relations as inputs and give a new relation as result X _

44 L3 Relational Data Model Running Example Instance R1 of reserves Instance S1 of sailors “Sailors” and “Reserves” relations for our examples. Instance S2 of sailors

55 L3 Relational Data Model Projection sname, rating (S2) age Deletes attributes that are not in projection list. Schema of result contains exactly the fields in the projection list, with the same names that they had in the (only) input relation. (S2)

66 L3 Relational Data Model Selection Selects rows that satisfy selection condition. rating > 8 (S2) Result relation can be the input for another relational algebra operation! (Operator composition.) sname, rating ( ) rating > 8 (S2)

77 L3 Relational Data Model Set Operation All of these operations take two input relations Same number of fields. `Corresponding’ fields have the same type. Set Union R  S Definition: R U S = { t | t  R  t  S } Set Intersection R  S Definition: R  S = { t | t  R  t  S } Set Difference R - S Definition: R - S = { t | t  R  t  S } (S1) (S2) (S1) (S2) (S1) (S2) _

88 L3 Relational Data Model Cross-Product Each row of S1 is paired with each row of R1. Result schema has one field per field of S1 and R1, with field names `inherited’ if possible. Conflict: Both S1 and R1 have a field called sid. Sometimes called Cartesian product

99 L3 Relational Data Model Renaming Allows us to name, and therefore to refer to, the results of relational-algebra expressions. Allows us to refer to a relation by more than one name. Notation 1:  x (E) returns the expression E under the name X Notation 2:  x (A1, A2, …, An) (E) returns the result of expression E under the name X, and with the attributes renamed to A 1, A2, …., An. (assumes that the relational-algebra expression E has arity n) Example C( 1  sid1, 5  sid2) ( S1XR1)

1010 L3 Relational Data Model Joins Condition Join : Result schema same as that of cross-product. Fewer tuples than cross-product, might be able to compute more efficiently Sometimes called a theta-join.

1111 L3 Relational Data Model Joins Equi-Join: A special case of condition join where the condition c contains only equalities. Result schema similar to cross-product, but only one copy of fields for which equality is specified. Natural Join: Equijoin on all common fields.  1241212412  aababaabab 1312313123 aaabbaaabb  ABCD R BDE S = ABCD R S E  1111211112  aaaabaaaab   

1212 L3 Relational Data Model Division Not supported as a primitive operator, but useful for expressing queries like: Find sailors who have served on all boats. 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. 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.

1313 L3 Relational Data Model Examples of Division A/B A B1 B2 B3 A/B1 A/B2 A/B3

1414 L3 Relational Data Model Equivalence Rules The following equivalence rules hold: Commutation rules 1.π A (  p ( R ) )   p ( π A ( R ) ) 2.R S  S R Association rule 1. R (S T)  (R S) T Idempotence rules 1. π A ( π B ( R ) )  π A ( R ) if A  B 2.  p1 (  p2 ( R ))   p1  p2 ( R ) Distribution rules 1. π A ( R  S )  π A ( R )  π A ( S ) 2.  P ( R  S )   P ( R )   P ( S ) 3.  P ( R S )   P (R) S if P only references R 4. π A,B (R S )  π A ( R ) π B ( S ) if join-attr. in (A  B) 5. R ( S  T )  ( R S )  ( R T ) These rules are the basis for the automatic optimisation of relational algebra expressions

Download ppt "COMP 5138 Relational Database Management Systems Semester 2, 2007 Lecture 5A Relational Algebra."

Similar presentations