From Relational Algebra to SQL

Download Report

Transcript From Relational Algebra to SQL

From Relational
Algebra to SQL
CS 157B
Enrique Tang
Topics

Relational Algebra Definition

Operations

Translation to SQL
Relational Algebra Defined:
Tuple

An ordered set of data values.
{ a1 , a2 , a3 , …, an }
Relational Algebra Defined:
Relation

A set of tuples.
{ { a1, a2, a3, … , an },
{ b1, b2, b3, … , bn },
{ c1, c2, c3 , … , cn },
………….
………….
}
Relational Algebra Defined:
Algebra




Any formal mathematical system consisting
of a set of objects and operations on those
objects.
Based on operators and a domain of values
Operators map arguments from domain into
another domain value
Example: x = 3.5 * y
Relational Algebra Defined:
Relational Algebra



An algebra whose objects are relations and
whose operators transform relations into
other relations.
Domain: set of relations, i.e., result is another
relation
Basic operators: select, project, union, set
difference, Cartesian product (or cross
product)
Relational Algebra Defined:
Where is it in DBMS?
Relational
algebra
expression
SQL
Optimized
Relational
algebra
expression
Query
execution
plan
Executable
code
Code
generator
parser
Query optimizer
DBMS
Operations (Unary):
Selection, Projection
Selection:

<condition(s)>
(<relation>)
Picks tuples from the relation
Projection:


 <attribute-list> (<relation>)
Picks columns from the relation
Operations (Set):
Union, Set Difference
Union:

(<relation>) U (<relation>)
New relation contains all tuples from both
relations, duplicate tuples eliminated.
Set Difference: R – S

Produces a relation with tuples that are in R
but NOT in S.
Operations (Set):
Cartesian Product, Intersect
Cartesian Product: R x S


Produces a relation that is concatenation of
every tuple of R with every tuple of S
The Above operations are the 5 fundamental
operations of relational algebra.
Intersection:

R
S
All tuples that are in both R and S
Operations (Join):
Theta Join, Natural Join
Theta Join: R


F
S =  F (R x S)
Select all tuples from the Cartesian product
of the two relations, matching condition F
When F contains only equality “=“, it is
called Equijoin

Natural Join: R
S

Equijoin with common attributes eliminated
Operations:
Outer Join, Semi Join
(left) Outer Join: R

Natural join relations while preserving all
tuples from the “outer” side -> NULL values
incurred.
Semi Join: R


S
F
S = A (R
F
S)
Join two relations and only keeps the
attributes seem in relation R
There are Semi-Theta Join, Semi-Equijoin
and Semi-Natural Join
Operations:
Division





Division: R ÷ S
Produce a relation consist of the set of tuples
from R that matches the combination of every
tuple in S
R
S
R÷S
T1 ← c (R)
T2 ← c ((SxT1)–R)
T ← T1 – T2
Translation to SQL


FROM clause produces Cartesian product (x) of
listed tables
WHERE clause assigns rows to C in sequence
and produces table containing only rows
satisfying condition ( sort of like  )

SELECT clause retains listed columns ( )
Translation to SQL (Cont.)








SELECT C.CrsName
FROM Course C, Teaching T
WHERE C.CrsCode=T.CrsCode AND T.Sem=‘F2003’
List CS courses taught in F2003
Tuple variables clarify meaning.
Join condition “C.CrsCode=T.CrsCode”

eliminates garbage
Selection condition “ T.Sem=‘F2003’ ”

eliminates irrelevant rows
Equivalent (using natural join) to:
CrsName(Course
Sem=‘F2003’ (Teaching) )
CrsName (Sem=‘F2003’ (Course
Teaching) )