SlideShare a Scribd company logo
1 of 47
Relational
Algebra p
Souhad M. Daraghma
Relational Query Languages
 Query languages: Allow manipulation and retrieval of
data from a database.
 Relational model supports simple, powerful QLs:
 Strong formal foundation based on logic.
 Allows for much optimization.
 Query Languages != programming languages!
 QLs not intended to be used for complex calculations.
 QLs support easy, efficient access to large data sets.
Formal Relational Query Languages
Two mathematical Query Languages form the basis
for “real” languages (e.g. SQL), and for
implementation:
Relational Algebra: More operational, very useful
for representing execution plans.
Relational Calculus: Lets users describe what they
want, rather than how to compute it. (Non-
procedural, declarative.)
We will concentrate on relational algebra in this
course
* Understanding Algebra & Calculus is key to
understanding SQL, query processing!
Preliminaries
 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 over any legal instance)
 The schema for the result of a given query is also fixed.
It is determined by the definitions of the query language
constructs.
Basics of Querying
 A query is applied to relation instances, and the result of a query is
also a relation instance.
eid ename Salary age
28 Eric 90K 35
58 Kyle 100K 33
ename Salary
Eric 90K
Kyle 100K
Relational Algebra: 5 Basic Operations
 Selection ( s ) Selects a subset of rows from relation
(horizontal).
 Projection ( p ) Retains only wanted columns from
relation (vertical).
 Cross-product (  ) Allows us to combine two relations.
 Set-difference ( — ) Tuples in r1, but not in r2.
 Union (  ) Tuples in r1 or in r2.
Since each operation returns a relation, operations can be
composed! (Algebra is “closed”.)
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid sname rating age
28 yuppy 9 35.0
31 lubber 8 55.5
44 guppy 5 35.0
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
R1
S1
S2
bid bname color
101 Interlake blue
102 Interlake red
103 Clipper green
104 Marine red
Boats
Example Instances
Projection (p)
 Examples:
 Retains only attributes that are in the “projection list”.
 Schema of result:
 exactly the fields in the projection list, with the same names that they had
in the input relation.
 Projection operator has to eliminate duplicates (How do
they arise? Why remove them?)
 Note: real systems typically don’t do duplicate elimination unless the user
explicitly asks for it.
)
2
(S
age
p
psname rating
S
,
( )
2
Projection (p)
age
35.0
55.5
sid sname rating age
28 yuppy 9 35.0
31 lubber 8 55.5
44 guppy 5 35.0
58 rusty 10 35.0
S2
sname rating
yuppy 9
lubber 8
guppy 5
rusty 10
)
2
(
,
S
rating
sname
p
page S
( )
2
Selection (s)
 Selects rows that satisfy selection condition.
 Result is a relation.
Schema of result is same as that of the input relation.
 Do we need to do duplicate elimination?
srating
S
8
2
( ) p s
sname rating rating
S
,
( ( ))
8
2
sid sname rating age
28 yuppy 9 35.0
31 lubber 8 55.5
44 guppy 5 35.0
58 rusty 10 35.0
sname rating
yuppy 9
rusty 10
Union, Intersection and Set-
Difference
 Both of these operations take two input relations, which must be
union-compatible:
 Two relations R and S are union-compatible if
they have the same number of columns and
corresponding columns have the same
domains.
Example: not union-compatible
(different number of columns)
Anne
Bob
Chris
aaa
bbb
ccc
Tom
Sam
Steve
1980
1985
1986
111111
222222
333333
Example: not union-compatible
(different domains for the second
column)
Anne
Bob
Chris
aaa
bbb
ccc
Tom
Sam
Steve
1980
1985
1986
Example: union-compatible
Anne
Bob
Chris
1970
1971
1972
Tom
Sam
Steve
1980
1985
1986
Union
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
28 yuppy 9 35.0
44 guppy 5 35.0
S S
1 2

sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid sname rating age
28 yuppy 9 35.0
31 lubber 8 55.5
44 guppy 5 35.0
58 rusty 10 35.0
S1 S2
Intersection
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid sname rating age
28 yuppy 9 35.0
31 lubber 8 55.5
44 guppy 5 35.0
58 rusty 10 35.0
S1
S2
sid sname rating age
31 lubber 8 55.5
58 rusty 10 35.0

S1S2
Set Difference
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid sname rating age
28 yuppy 9 35.0
31 lubber 8 55.5
44 guppy 5 35.0
58 rusty 10 35.0
S1
S2
sid sname rating age
22 dustin 7 45.0
S2 – S1
S S
1 2

sid sname rating age
28 yuppy 9 35.0
44 guppy 5 35.0
Cross-Product
 S1 X R1
 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.
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
S1 R1
Cross-Product
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
S1 X R1
R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
S1
Cross-Product
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
S1 X R1
R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
S1
Cross-Product
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
S1 R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
S1 X R1
Cross-Product
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
S1 R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
S1 X R1
Cross-Product
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
S1 R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
S1 X R1
Cross-Product
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
S1 R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
S1 X R1
Cross-Product
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
S1 R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
S1 X R1
Cross-Product
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
sid bid day
22 101 10/10/96
58 103 11/12/96
S1 R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
S1 X R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
Both S1 and R1 have a field called sid. Which may
cause a conflict when referring to columns
S1 X R1
Cross-Product
 S1  R1: Each row of S1 paired with each row of R1.
 Q: How many rows in the result?
 Result schema has one field per field of S1 and R1,
with field names `inherited’ if possible.
 May have a naming conflict: Both S1 and R1 have a field with
the same name.
 In this case, can use the renaming operator:
 ( ( , ), )
C sid sid S R
1 1 5 2 1 1
  
Renaming Operator
 ( ( , ), )
C sid sid S R
1 1 5 2 1 1
  
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
sid1 sid2
Takes a relation schema and gives a new name to
the schema and the columns
1 2 3 4 5 6 7
S1 X R1
C
Compound Operator: Intersection
 In addition to the 5 basic operators, there are several additional
“Compound Operators”
 These add no computational power to the
language, but are useful shorthands.
 Can be expressed solely with the basic ops.
 Intersection takes two input relations, which must be union-
compatible.
 Q: How to express it using basic operators?
R  S = R  (R  S)
Compound Operator: Join
 Joins are compound operators involving cross
product, selection, and (sometimes) projection.
 Most common type of join is a “natural join” (often
just called “join”). R S conceptually is:
 Compute R  S
 Select rows where attributes that appear in both relations
have equal values
 Project all unique attributes and one copy of each of the
common ones.
Joins
 Condition Join : c
S
R 
 )
( S
R
c 
s
 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.
Equi-Join: A special case of condition join where the condition
c contains only equalities.
Joins
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 58 103 11/12/96
sid
R
sid
S
R
S
.
1
.
1
1
1



sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
S1
sid bid day
22 101 10/10/96
58 103 11/12/96
R1
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
S1 sid bid day
22 101 10/10/96
58 103 11/12/96
R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
S1 X R1
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
S1 sid bid day
22 101 10/10/96
58 103 11/12/96
R1
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 22 101 10/10/96
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 22 101 10/10/96
31 lubber 8 55.5 58 103 11/12/96
58 rusty 10 35.0 22 101 10/10/96
58 rusty 10 35.0 58 103 11/12/96
)
1
1
(
.
1
.
1
R
S
sid
R
sid
S


s
sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
S1 sid bid day
22 101 10/10/96
58 103 11/12/96
R1
)
1
1
(
.
1
.
1
R
S
sid
R
sid
S


s
(sid) sname rating age (sid) bid day
22 dustin 7 45.0 58 103 11/12/96
31 lubber 8 55.5 58 103 11/12/96
sid sname rating age bid day
22 dustin 7 45.0 101 10/10/96
58 rusty 10 35.0 103 11/12/96
S R
sid
1 1


sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
S1
sid bid day
22 101 10/10/96
58 103 11/12/96
R1
Example: Natural join
sid sname rating age bid day
22 dustin 7 45.0 101 10/10/96
58 rusty 10 35.0 103 11/12/96
S R
sid
1 1


sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
S1
sid bid day
22 101 10/10/96
58 103 11/12/96
R1
Example: Natural join
sid sname rating age bid day
22 dustin 7 45.0 101 10/10/96
58 rusty 10 35.0 103 11/12/96
S R
sid
1 1


sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
S1
sid bid day
22 101 10/10/96
58 103 11/12/96
R1
Example: Natural join
sid sname rating age bid day
22 dustin 7 45.0 101 10/10/96
58 rusty 10 35.0 103 11/12/96
S R
sid
1 1


sid sname rating age
22 dustin 7 45.0
31 lubber 8 55.5
58 rusty 10 35.0
S1
sid bid day
22 101 10/10/96
58 103 11/12/96
R1
Example: Natural join
Outer Join
 An extension of the join operation that avoids loss
of information.
 Computes the join and then adds tuples form one
relation that does not match tuples in the other
relation to the result of the join.
 Uses null values:
 null signifies that the value is unknown or does not
exist
 All comparisons involving null are (roughly speaking)
false by definition.
Outer Join – Example
 Relation loan
customer_name loan_number
Jones
Smith
Hayes
L-170
L-230
L-155
3000
4000
1700
loan_number amount
L-170
L-230
L-260
branch_name
Downtown
Redwood
Perryridge
 Relation borrower
Outer Join – Example
 Inner Join
loan Borrower
loan_number amount
L-170
L-230
3000
4000
customer_name
Jones
Smith
branch_name
Downtown
Redwood
Jones
Smith
null
loan_number amount
L-170
L-230
L-260
3000
4000
1700
customer_name
branch_name
Downtown
Redwood
Perryridge
n Left Outer Join
loan Borrower
Outer Join – Example
loan_number amount
L-170
L-230
L-155
3000
4000
null
customer_name
Jones
Smith
Hayes
branch_name
Downtown
Redwood
null
loan_number amount
L-170
L-230
L-260
L-155
3000
4000
1700
null
customer_name
Jones
Smith
null
Hayes
branch_name
Downtown
Redwood
Perryridge
null
n Full Outer Join
loan borrower
n Right Outer Join
loan borrower
Compound Operator: Division
 Useful for expressing “for all” queries like:
Find sids of sailors who have reserved all boats.
 For A/B, attributes of B must be subset of attrs of A.
 May need to “project” to make this happen.
 E.g., let A have 2 fields, x and y; B have only field y:
A/B contains all tuples (x) such that for every y tuple in B,
there is an xy tuple in A.

A B  x  y  B( x,y  A)
 
Examples of Division A/B
sno pno
s1 p1
s1 p2
s1 p3
s1 p4
s2 p1
s2 p2
s3 p2
s4 p2
s4 p4
pno
p2
pno
p2
p4
pno
p1
p2
p4
sno
s1
s2
s3
s4
sno
s1
s4
sno
s1
A
B1
B2
B3
A/B1 A/B2 A/B3
Q for intuition: What is (R/S)S?
Expressing A/B Using Basic Operators
 Division is not essential op; just a useful shorthand.
 (Also true of joins, but joins are so common that systems
implement joins specially.)
 Idea: For A(x,y)/B(y), 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: p p
x x A B A
(( ( ) ) )
 
A/B: p x A
( )  Disqualified x values

More Related Content

Similar to Relational_Algebra .ppt

Daniel - Portfolio - Digital Copy
Daniel - Portfolio - Digital CopyDaniel - Portfolio - Digital Copy
Daniel - Portfolio - Digital CopyDaniel Lipinski
 
Harmonic drive ultra flat_component_specsheet
Harmonic drive ultra  flat_component_specsheetHarmonic drive ultra  flat_component_specsheet
Harmonic drive ultra flat_component_specsheetElectromate
 
Autodesk inventor practice part drawings
Autodesk inventor practice part drawingsAutodesk inventor practice part drawings
Autodesk inventor practice part drawingsGoldi Patil
 
Racks and Pinions Gears, Drive Systems Manufacturers in India.pdf
Racks and Pinions Gears, Drive Systems Manufacturers in India.pdfRacks and Pinions Gears, Drive Systems Manufacturers in India.pdf
Racks and Pinions Gears, Drive Systems Manufacturers in India.pdfKreyMayer
 
An unconventional approach for ETL of historized data
An unconventional approach for ETL of historized dataAn unconventional approach for ETL of historized data
An unconventional approach for ETL of historized dataAndrej Pashchenko
 
THE EFFECT OF OPENINGS IN THE SLAB STIFFENED WITH SHALLOW BEAMS
THE EFFECT OF OPENINGS IN THE SLAB STIFFENED WITH SHALLOW BEAMSTHE EFFECT OF OPENINGS IN THE SLAB STIFFENED WITH SHALLOW BEAMS
THE EFFECT OF OPENINGS IN THE SLAB STIFFENED WITH SHALLOW BEAMSIRJET Journal
 
CONSTRUCTION_ENG - on home w_0 Watermar logo
CONSTRUCTION_ENG - on home w_0 Watermar logoCONSTRUCTION_ENG - on home w_0 Watermar logo
CONSTRUCTION_ENG - on home w_0 Watermar logoDRP Joint
 
Thomson bsa accessoriestechnicalinfo_catalog
Thomson bsa accessoriestechnicalinfo_catalogThomson bsa accessoriestechnicalinfo_catalog
Thomson bsa accessoriestechnicalinfo_catalogElectromate
 
Thomson BSA Accessories
Thomson BSA AccessoriesThomson BSA Accessories
Thomson BSA AccessoriesElectromate
 
Heat Shrink Cable Joints & Cable Terminations LV HV, 6.6kV 11kV 33kV - SPS Ca...
Heat Shrink Cable Joints & Cable Terminations LV HV, 6.6kV 11kV 33kV - SPS Ca...Heat Shrink Cable Joints & Cable Terminations LV HV, 6.6kV 11kV 33kV - SPS Ca...
Heat Shrink Cable Joints & Cable Terminations LV HV, 6.6kV 11kV 33kV - SPS Ca...Thorne & Derrick International
 
Updated WT Tower Drawings
Updated WT Tower DrawingsUpdated WT Tower Drawings
Updated WT Tower DrawingsZubin Shrestha
 
Groz Socket & Socket Sets Catalogue
Groz Socket & Socket Sets CatalogueGroz Socket & Socket Sets Catalogue
Groz Socket & Socket Sets CatalogueJaison Joseph
 
Bobcat 773 g series skid steer loader parts catalogue manual (sn 5190 11001 &...
Bobcat 773 g series skid steer loader parts catalogue manual (sn 5190 11001 &...Bobcat 773 g series skid steer loader parts catalogue manual (sn 5190 11001 &...
Bobcat 773 g series skid steer loader parts catalogue manual (sn 5190 11001 &...fjjkefkksem
 
Great plains parts manual nta 3510 & nta 3010 no-till air drill implement
Great plains parts manual nta 3510 & nta 3010 no-till air drill implementGreat plains parts manual nta 3510 & nta 3010 no-till air drill implement
Great plains parts manual nta 3510 & nta 3010 no-till air drill implementPartCatalogs Net
 
Mc cormick x4 series (2014 ) - rs52 - x4.50 tractor service repair manual
Mc cormick x4 series (2014  ) - rs52 - x4.50 tractor service repair manualMc cormick x4 series (2014  ) - rs52 - x4.50 tractor service repair manual
Mc cormick x4 series (2014 ) - rs52 - x4.50 tractor service repair manualfjjsekmmm
 

Similar to Relational_Algebra .ppt (20)

Fatigue Limit of SPD.pdf
Fatigue Limit of SPD.pdfFatigue Limit of SPD.pdf
Fatigue Limit of SPD.pdf
 
Daniel - Portfolio - Digital Copy
Daniel - Portfolio - Digital CopyDaniel - Portfolio - Digital Copy
Daniel - Portfolio - Digital Copy
 
Metrology.pdf
Metrology.pdfMetrology.pdf
Metrology.pdf
 
Harmonic drive ultra flat_component_specsheet
Harmonic drive ultra  flat_component_specsheetHarmonic drive ultra  flat_component_specsheet
Harmonic drive ultra flat_component_specsheet
 
Hidraulic jack
Hidraulic jackHidraulic jack
Hidraulic jack
 
Autodesk inventor practice part drawings
Autodesk inventor practice part drawingsAutodesk inventor practice part drawings
Autodesk inventor practice part drawings
 
Racks and Pinions Gears, Drive Systems Manufacturers in India.pdf
Racks and Pinions Gears, Drive Systems Manufacturers in India.pdfRacks and Pinions Gears, Drive Systems Manufacturers in India.pdf
Racks and Pinions Gears, Drive Systems Manufacturers in India.pdf
 
An unconventional approach for ETL of historized data
An unconventional approach for ETL of historized dataAn unconventional approach for ETL of historized data
An unconventional approach for ETL of historized data
 
THE EFFECT OF OPENINGS IN THE SLAB STIFFENED WITH SHALLOW BEAMS
THE EFFECT OF OPENINGS IN THE SLAB STIFFENED WITH SHALLOW BEAMSTHE EFFECT OF OPENINGS IN THE SLAB STIFFENED WITH SHALLOW BEAMS
THE EFFECT OF OPENINGS IN THE SLAB STIFFENED WITH SHALLOW BEAMS
 
CONSTRUCTION_ENG - on home w_0 Watermar logo
CONSTRUCTION_ENG - on home w_0 Watermar logoCONSTRUCTION_ENG - on home w_0 Watermar logo
CONSTRUCTION_ENG - on home w_0 Watermar logo
 
Thomson bsa accessoriestechnicalinfo_catalog
Thomson bsa accessoriestechnicalinfo_catalogThomson bsa accessoriestechnicalinfo_catalog
Thomson bsa accessoriestechnicalinfo_catalog
 
Thomson BSA Accessories
Thomson BSA AccessoriesThomson BSA Accessories
Thomson BSA Accessories
 
Heat Shrink Cable Joints & Cable Terminations LV HV, 6.6kV 11kV 33kV - SPS Ca...
Heat Shrink Cable Joints & Cable Terminations LV HV, 6.6kV 11kV 33kV - SPS Ca...Heat Shrink Cable Joints & Cable Terminations LV HV, 6.6kV 11kV 33kV - SPS Ca...
Heat Shrink Cable Joints & Cable Terminations LV HV, 6.6kV 11kV 33kV - SPS Ca...
 
Wear Parts for Sugarcane Shredder.pptx
Wear Parts for Sugarcane Shredder.pptxWear Parts for Sugarcane Shredder.pptx
Wear Parts for Sugarcane Shredder.pptx
 
Updated WT Tower Drawings
Updated WT Tower DrawingsUpdated WT Tower Drawings
Updated WT Tower Drawings
 
Groz Socket & Socket Sets Catalogue
Groz Socket & Socket Sets CatalogueGroz Socket & Socket Sets Catalogue
Groz Socket & Socket Sets Catalogue
 
Bobcat 773 g series skid steer loader parts catalogue manual (sn 5190 11001 &...
Bobcat 773 g series skid steer loader parts catalogue manual (sn 5190 11001 &...Bobcat 773 g series skid steer loader parts catalogue manual (sn 5190 11001 &...
Bobcat 773 g series skid steer loader parts catalogue manual (sn 5190 11001 &...
 
Great plains parts manual nta 3510 & nta 3010 no-till air drill implement
Great plains parts manual nta 3510 & nta 3010 no-till air drill implementGreat plains parts manual nta 3510 & nta 3010 no-till air drill implement
Great plains parts manual nta 3510 & nta 3010 no-till air drill implement
 
Mc cormick x4 series (2014 ) - rs52 - x4.50 tractor service repair manual
Mc cormick x4 series (2014  ) - rs52 - x4.50 tractor service repair manualMc cormick x4 series (2014  ) - rs52 - x4.50 tractor service repair manual
Mc cormick x4 series (2014 ) - rs52 - x4.50 tractor service repair manual
 
Gme-Spare Parts Catalogue
Gme-Spare Parts CatalogueGme-Spare Parts Catalogue
Gme-Spare Parts Catalogue
 

Recently uploaded

BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxolyaivanovalion
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxolyaivanovalion
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysismanisha194592
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...amitlee9823
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxolyaivanovalion
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...amitlee9823
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFxolyaivanovalion
 
ELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptxELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptxolyaivanovalion
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxolyaivanovalion
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxolyaivanovalion
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxolyaivanovalion
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfMarinCaroMartnezBerg
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...amitlee9823
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...amitlee9823
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxolyaivanovalion
 

Recently uploaded (20)

BabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptxBabyOno dropshipping via API with DroFx.pptx
BabyOno dropshipping via API with DroFx.pptx
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysis
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Jalahalli Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFx
 
ELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptxELKO dropshipping via API with DroFx.pptx
ELKO dropshipping via API with DroFx.pptx
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
BigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptxBigBuy dropshipping via API with DroFx.pptx
BigBuy dropshipping via API with DroFx.pptx
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptx
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdf
 
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
Junnasandra Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore...
 
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
 
Anomaly detection and data imputation within time series
Anomaly detection and data imputation within time seriesAnomaly detection and data imputation within time series
Anomaly detection and data imputation within time series
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 
Mature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptxMature dropshipping via API with DroFx.pptx
Mature dropshipping via API with DroFx.pptx
 

Relational_Algebra .ppt

  • 2. Relational Query Languages  Query languages: Allow manipulation and retrieval of data from a database.  Relational model supports simple, powerful QLs:  Strong formal foundation based on logic.  Allows for much optimization.  Query Languages != programming languages!  QLs not intended to be used for complex calculations.  QLs support easy, efficient access to large data sets.
  • 3. Formal Relational Query Languages Two mathematical Query Languages form the basis for “real” languages (e.g. SQL), and for implementation: Relational Algebra: More operational, very useful for representing execution plans. Relational Calculus: Lets users describe what they want, rather than how to compute it. (Non- procedural, declarative.) We will concentrate on relational algebra in this course * Understanding Algebra & Calculus is key to understanding SQL, query processing!
  • 4. Preliminaries  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 over any legal instance)  The schema for the result of a given query is also fixed. It is determined by the definitions of the query language constructs.
  • 5. Basics of Querying  A query is applied to relation instances, and the result of a query is also a relation instance. eid ename Salary age 28 Eric 90K 35 58 Kyle 100K 33 ename Salary Eric 90K Kyle 100K
  • 6. Relational Algebra: 5 Basic Operations  Selection ( s ) Selects a subset of rows from relation (horizontal).  Projection ( p ) Retains only wanted columns from relation (vertical).  Cross-product (  ) Allows us to combine two relations.  Set-difference ( — ) Tuples in r1, but not in r2.  Union (  ) Tuples in r1 or in r2. Since each operation returns a relation, operations can be composed! (Algebra is “closed”.)
  • 7. sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid sname rating age 28 yuppy 9 35.0 31 lubber 8 55.5 44 guppy 5 35.0 58 rusty 10 35.0 sid bid day 22 101 10/10/96 58 103 11/12/96 R1 S1 S2 bid bname color 101 Interlake blue 102 Interlake red 103 Clipper green 104 Marine red Boats Example Instances
  • 8. Projection (p)  Examples:  Retains only attributes that are in the “projection list”.  Schema of result:  exactly the fields in the projection list, with the same names that they had in the input relation.  Projection operator has to eliminate duplicates (How do they arise? Why remove them?)  Note: real systems typically don’t do duplicate elimination unless the user explicitly asks for it. ) 2 (S age p psname rating S , ( ) 2
  • 9. Projection (p) age 35.0 55.5 sid sname rating age 28 yuppy 9 35.0 31 lubber 8 55.5 44 guppy 5 35.0 58 rusty 10 35.0 S2 sname rating yuppy 9 lubber 8 guppy 5 rusty 10 ) 2 ( , S rating sname p page S ( ) 2
  • 10. Selection (s)  Selects rows that satisfy selection condition.  Result is a relation. Schema of result is same as that of the input relation.  Do we need to do duplicate elimination? srating S 8 2 ( ) p s sname rating rating S , ( ( )) 8 2 sid sname rating age 28 yuppy 9 35.0 31 lubber 8 55.5 44 guppy 5 35.0 58 rusty 10 35.0 sname rating yuppy 9 rusty 10
  • 11. Union, Intersection and Set- Difference  Both of these operations take two input relations, which must be union-compatible:  Two relations R and S are union-compatible if they have the same number of columns and corresponding columns have the same domains.
  • 12. Example: not union-compatible (different number of columns) Anne Bob Chris aaa bbb ccc Tom Sam Steve 1980 1985 1986 111111 222222 333333
  • 13. Example: not union-compatible (different domains for the second column) Anne Bob Chris aaa bbb ccc Tom Sam Steve 1980 1985 1986
  • 15. Union sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 28 yuppy 9 35.0 44 guppy 5 35.0 S S 1 2  sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid sname rating age 28 yuppy 9 35.0 31 lubber 8 55.5 44 guppy 5 35.0 58 rusty 10 35.0 S1 S2
  • 16. Intersection sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid sname rating age 28 yuppy 9 35.0 31 lubber 8 55.5 44 guppy 5 35.0 58 rusty 10 35.0 S1 S2 sid sname rating age 31 lubber 8 55.5 58 rusty 10 35.0  S1S2
  • 17. Set Difference sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid sname rating age 28 yuppy 9 35.0 31 lubber 8 55.5 44 guppy 5 35.0 58 rusty 10 35.0 S1 S2 sid sname rating age 22 dustin 7 45.0 S2 – S1 S S 1 2  sid sname rating age 28 yuppy 9 35.0 44 guppy 5 35.0
  • 18. Cross-Product  S1 X R1  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. sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid bid day 22 101 10/10/96 58 103 11/12/96 S1 R1
  • 19. Cross-Product sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid bid day 22 101 10/10/96 58 103 11/12/96 S1 X R1 R1 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 S1
  • 20. Cross-Product sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid bid day 22 101 10/10/96 58 103 11/12/96 S1 X R1 R1 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 S1
  • 21. Cross-Product sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid bid day 22 101 10/10/96 58 103 11/12/96 S1 R1 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 S1 X R1
  • 22. Cross-Product sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid bid day 22 101 10/10/96 58 103 11/12/96 S1 R1 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 S1 X R1
  • 23. Cross-Product sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid bid day 22 101 10/10/96 58 103 11/12/96 S1 R1 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 S1 X R1
  • 24. Cross-Product sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid bid day 22 101 10/10/96 58 103 11/12/96 S1 R1 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 S1 X R1
  • 25. Cross-Product sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid bid day 22 101 10/10/96 58 103 11/12/96 S1 R1 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 S1 X R1
  • 26. Cross-Product sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 sid bid day 22 101 10/10/96 58 103 11/12/96 S1 R1 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 S1 X R1
  • 27. (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 Both S1 and R1 have a field called sid. Which may cause a conflict when referring to columns S1 X R1
  • 28. Cross-Product  S1  R1: Each row of S1 paired with each row of R1.  Q: How many rows in the result?  Result schema has one field per field of S1 and R1, with field names `inherited’ if possible.  May have a naming conflict: Both S1 and R1 have a field with the same name.  In this case, can use the renaming operator:  ( ( , ), ) C sid sid S R 1 1 5 2 1 1   
  • 29. Renaming Operator  ( ( , ), ) C sid sid S R 1 1 5 2 1 1    (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 sid1 sid2 Takes a relation schema and gives a new name to the schema and the columns 1 2 3 4 5 6 7 S1 X R1 C
  • 30. Compound Operator: Intersection  In addition to the 5 basic operators, there are several additional “Compound Operators”  These add no computational power to the language, but are useful shorthands.  Can be expressed solely with the basic ops.  Intersection takes two input relations, which must be union- compatible.  Q: How to express it using basic operators? R  S = R  (R  S)
  • 31. Compound Operator: Join  Joins are compound operators involving cross product, selection, and (sometimes) projection.  Most common type of join is a “natural join” (often just called “join”). R S conceptually is:  Compute R  S  Select rows where attributes that appear in both relations have equal values  Project all unique attributes and one copy of each of the common ones.
  • 32. Joins  Condition Join : c S R   ) ( S R c  s  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. Equi-Join: A special case of condition join where the condition c contains only equalities.
  • 33. Joins (sid) sname rating age (sid) bid day 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 58 103 11/12/96 sid R sid S R S . 1 . 1 1 1    sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 S1 sid bid day 22 101 10/10/96 58 103 11/12/96 R1
  • 34. sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 S1 sid bid day 22 101 10/10/96 58 103 11/12/96 R1 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 S1 X R1
  • 35. sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 S1 sid bid day 22 101 10/10/96 58 103 11/12/96 R1 (sid) sname rating age (sid) bid day 22 dustin 7 45.0 22 101 10/10/96 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 22 101 10/10/96 31 lubber 8 55.5 58 103 11/12/96 58 rusty 10 35.0 22 101 10/10/96 58 rusty 10 35.0 58 103 11/12/96 ) 1 1 ( . 1 . 1 R S sid R sid S   s
  • 36. sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 S1 sid bid day 22 101 10/10/96 58 103 11/12/96 R1 ) 1 1 ( . 1 . 1 R S sid R sid S   s (sid) sname rating age (sid) bid day 22 dustin 7 45.0 58 103 11/12/96 31 lubber 8 55.5 58 103 11/12/96
  • 37. sid sname rating age bid day 22 dustin 7 45.0 101 10/10/96 58 rusty 10 35.0 103 11/12/96 S R sid 1 1   sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 S1 sid bid day 22 101 10/10/96 58 103 11/12/96 R1 Example: Natural join
  • 38. sid sname rating age bid day 22 dustin 7 45.0 101 10/10/96 58 rusty 10 35.0 103 11/12/96 S R sid 1 1   sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 S1 sid bid day 22 101 10/10/96 58 103 11/12/96 R1 Example: Natural join
  • 39. sid sname rating age bid day 22 dustin 7 45.0 101 10/10/96 58 rusty 10 35.0 103 11/12/96 S R sid 1 1   sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 S1 sid bid day 22 101 10/10/96 58 103 11/12/96 R1 Example: Natural join
  • 40. sid sname rating age bid day 22 dustin 7 45.0 101 10/10/96 58 rusty 10 35.0 103 11/12/96 S R sid 1 1   sid sname rating age 22 dustin 7 45.0 31 lubber 8 55.5 58 rusty 10 35.0 S1 sid bid day 22 101 10/10/96 58 103 11/12/96 R1 Example: Natural join
  • 41. Outer Join  An extension of the join operation that avoids loss of information.  Computes the join and then adds tuples form one relation that does not match tuples in the other relation to the result of the join.  Uses null values:  null signifies that the value is unknown or does not exist  All comparisons involving null are (roughly speaking) false by definition.
  • 42. Outer Join – Example  Relation loan customer_name loan_number Jones Smith Hayes L-170 L-230 L-155 3000 4000 1700 loan_number amount L-170 L-230 L-260 branch_name Downtown Redwood Perryridge  Relation borrower
  • 43. Outer Join – Example  Inner Join loan Borrower loan_number amount L-170 L-230 3000 4000 customer_name Jones Smith branch_name Downtown Redwood Jones Smith null loan_number amount L-170 L-230 L-260 3000 4000 1700 customer_name branch_name Downtown Redwood Perryridge n Left Outer Join loan Borrower
  • 44. Outer Join – Example loan_number amount L-170 L-230 L-155 3000 4000 null customer_name Jones Smith Hayes branch_name Downtown Redwood null loan_number amount L-170 L-230 L-260 L-155 3000 4000 1700 null customer_name Jones Smith null Hayes branch_name Downtown Redwood Perryridge null n Full Outer Join loan borrower n Right Outer Join loan borrower
  • 45. Compound Operator: Division  Useful for expressing “for all” queries like: Find sids of sailors who have reserved all boats.  For A/B, attributes of B must be subset of attrs of A.  May need to “project” to make this happen.  E.g., let A have 2 fields, x and y; B have only field y: A/B contains all tuples (x) such that for every y tuple in B, there is an xy tuple in A.  A B  x  y  B( x,y  A)  
  • 46. Examples of Division A/B sno pno s1 p1 s1 p2 s1 p3 s1 p4 s2 p1 s2 p2 s3 p2 s4 p2 s4 p4 pno p2 pno p2 p4 pno p1 p2 p4 sno s1 s2 s3 s4 sno s1 s4 sno s1 A B1 B2 B3 A/B1 A/B2 A/B3 Q for intuition: What is (R/S)S?
  • 47. Expressing A/B Using Basic Operators  Division is not essential op; just a useful shorthand.  (Also true of joins, but joins are so common that systems implement joins specially.)  Idea: For A(x,y)/B(y), 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: p p x x A B A (( ( ) ) )   A/B: p x A ( )  Disqualified x values