SlideShare a Scribd company logo
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

Rig spares used new-surplus_inventory
Rig spares   used new-surplus_inventoryRig spares   used new-surplus_inventory
Rig spares used new-surplus_inventory
Project Sales Corp
 
Fatigue Limit of SPD.pdf
Fatigue Limit of SPD.pdfFatigue Limit of SPD.pdf
Fatigue Limit of SPD.pdf
VictoriawanMuhammad
 
Daniel - Portfolio - Digital Copy
Daniel - Portfolio - Digital CopyDaniel - Portfolio - Digital Copy
Daniel - Portfolio - Digital Copy
Daniel Lipinski
 
Metrology.pdf
Metrology.pdfMetrology.pdf
Metrology.pdf
AmitPandey468934
 
Harmonic drive ultra flat_component_specsheet
Harmonic drive ultra  flat_component_specsheetHarmonic drive ultra  flat_component_specsheet
Harmonic drive ultra flat_component_specsheet
Electromate
 
Hidraulic jack
Hidraulic jackHidraulic jack
Hidraulic jack
Komariyanto Abu Alfit
 
Autodesk inventor practice part drawings
Autodesk inventor practice part drawingsAutodesk inventor practice part drawings
Autodesk inventor practice part drawings
Goldi 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.pdf
KreyMayer
 
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
Andrej 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 BEAMS
IRJET 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 logo
DRP Joint
 
Thomson BSA Accessories
Thomson BSA AccessoriesThomson BSA Accessories
Thomson BSA Accessories
Electromate
 
Thomson bsa accessoriestechnicalinfo_catalog
Thomson bsa accessoriestechnicalinfo_catalogThomson bsa accessoriestechnicalinfo_catalog
Thomson bsa accessoriestechnicalinfo_catalog
Electromate
 
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
 
Wear Parts for Sugarcane Shredder.pptx
Wear Parts for Sugarcane Shredder.pptxWear Parts for Sugarcane Shredder.pptx
Wear Parts for Sugarcane Shredder.pptx
SUNWILL MACHINERY CO.,LTD
 
Updated WT Tower Drawings
Updated WT Tower DrawingsUpdated WT Tower Drawings
Updated WT Tower Drawings
Zubin Shrestha
 
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W1 Z Transformation
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W1 Z TransformationJavier Garcia - Verdugo Sanchez - Six Sigma Training - W1 Z Transformation
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W1 Z Transformation
J. García - Verdugo
 
Groz Socket & Socket Sets Catalogue
Groz Socket & Socket Sets CatalogueGroz Socket & Socket Sets Catalogue
Groz Socket & Socket Sets Catalogue
Jaison Joseph
 
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
PartCatalogs 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 manual
fjjsekmmm
 

Similar to Relational_Algebra .ppt (20)

Rig spares used new-surplus_inventory
Rig spares   used new-surplus_inventoryRig spares   used new-surplus_inventory
Rig spares used new-surplus_inventory
 
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 Accessories
Thomson BSA AccessoriesThomson BSA Accessories
Thomson BSA Accessories
 
Thomson bsa accessoriestechnicalinfo_catalog
Thomson bsa accessoriestechnicalinfo_catalogThomson bsa accessoriestechnicalinfo_catalog
Thomson bsa accessoriestechnicalinfo_catalog
 
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
 
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W1 Z Transformation
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W1 Z TransformationJavier Garcia - Verdugo Sanchez - Six Sigma Training - W1 Z Transformation
Javier Garcia - Verdugo Sanchez - Six Sigma Training - W1 Z Transformation
 
Groz Socket & Socket Sets Catalogue
Groz Socket & Socket Sets CatalogueGroz Socket & Socket Sets Catalogue
Groz Socket & Socket Sets Catalogue
 
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
 

Recently uploaded

Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Aggregage
 
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理 原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
tzu5xla
 
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
nyvan3
 
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
bopyb
 
一比一原版美国帕森斯设计学院毕业证(parsons毕业证书)如何办理
一比一原版美国帕森斯设计学院毕业证(parsons毕业证书)如何办理一比一原版美国帕森斯设计学院毕业证(parsons毕业证书)如何办理
一比一原版美国帕森斯设计学院毕业证(parsons毕业证书)如何办理
asyed10
 
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
xclpvhuk
 
University of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma TranscriptUniversity of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma Transcript
soxrziqu
 
社内勉強会資料_Hallucination of LLMs               .
社内勉強会資料_Hallucination of LLMs               .社内勉強会資料_Hallucination of LLMs               .
社内勉強会資料_Hallucination of LLMs               .
NABLAS株式会社
 
Experts live - Improving user adoption with AI
Experts live - Improving user adoption with AIExperts live - Improving user adoption with AI
Experts live - Improving user adoption with AI
jitskeb
 
writing report business partner b1+ .pdf
writing report business partner b1+ .pdfwriting report business partner b1+ .pdf
writing report business partner b1+ .pdf
VyNguyen709676
 
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
ywqeos
 
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
hqfek
 
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
z6osjkqvd
 
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
nuttdpt
 
Sample Devops SRE Product Companies .pdf
Sample Devops SRE  Product Companies .pdfSample Devops SRE  Product Companies .pdf
Sample Devops SRE Product Companies .pdf
Vineet
 
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
mkkikqvo
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
aqzctr7x
 
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
aguty
 
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docxDATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
SaffaIbrahim1
 
Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024
ElizabethGarrettChri
 

Recently uploaded (20)

Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
Beyond the Basics of A/B Tests: Highly Innovative Experimentation Tactics You...
 
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理 原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
原版一比一爱尔兰都柏林大学毕业证(UCD毕业证书)如何办理
 
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
 
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
一比一原版(GWU,GW文凭证书)乔治·华盛顿大学毕业证如何办理
 
一比一原版美国帕森斯设计学院毕业证(parsons毕业证书)如何办理
一比一原版美国帕森斯设计学院毕业证(parsons毕业证书)如何办理一比一原版美国帕森斯设计学院毕业证(parsons毕业证书)如何办理
一比一原版美国帕森斯设计学院毕业证(parsons毕业证书)如何办理
 
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
一比一原版(Unimelb毕业证书)墨尔本大学毕业证如何办理
 
University of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma TranscriptUniversity of New South Wales degree offer diploma Transcript
University of New South Wales degree offer diploma Transcript
 
社内勉強会資料_Hallucination of LLMs               .
社内勉強会資料_Hallucination of LLMs               .社内勉強会資料_Hallucination of LLMs               .
社内勉強会資料_Hallucination of LLMs               .
 
Experts live - Improving user adoption with AI
Experts live - Improving user adoption with AIExperts live - Improving user adoption with AI
Experts live - Improving user adoption with AI
 
writing report business partner b1+ .pdf
writing report business partner b1+ .pdfwriting report business partner b1+ .pdf
writing report business partner b1+ .pdf
 
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
 
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
 
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
一比一原版英属哥伦比亚大学毕业证(UBC毕业证书)学历如何办理
 
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
一比一原版(UCSB文凭证书)圣芭芭拉分校毕业证如何办理
 
Sample Devops SRE Product Companies .pdf
Sample Devops SRE  Product Companies .pdfSample Devops SRE  Product Companies .pdf
Sample Devops SRE Product Companies .pdf
 
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
原版一比一多伦多大学毕业证(UofT毕业证书)如何办理
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
 
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
 
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docxDATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
DATA COMMS-NETWORKS YR2 lecture 08 NAT & CLOUD.docx
 
Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024Open Source Contributions to Postgres: The Basics POSETTE 2024
Open Source Contributions to Postgres: The Basics POSETTE 2024
 

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