SlideShare a Scribd company logo
1
Relational Algebra
Basic Operations
Algebra of Bags
2
What is an “Algebra”
Mathematical system consisting of:
Operands --- variables or values from
which new values can be constructed.
Operators --- symbols denoting procedures
that construct new values from given
values.
3
What is Relational Algebra?
An algebra whose operands are
relations or variables that represent
relations.
Operators are designed to do the most
common things that we need to do with
relations in a database.
The result is an algebra that can be used
as a query language for relations.
4
Core Relational Algebra
Union, intersection, and difference.
Usual set operations, but both operands
must have the same relation schema.
Selection: picking certain rows.
Projection: picking certain columns.
Products and joins: compositions of
relations.
Renaming of relations and attributes.
5
Selection
R1 := σC (R2)
C is a condition (as in “if” statements) that
refers to attributes of R2.
R1 is all those tuples of R2 that satisfy C.
6
Example: Selection
Relation Sells:
bar beer price
Joe’s Bud 2.50
Joe’s Miller 2.75
Sue’s Bud 2.50
Sue’s Miller 3.00
JoeMenu := σbar=“Joe’s”(Sells):
bar beer price
Joe’s Bud 2.50
Joe’s Miller 2.75
7
Projection
R1 := πL (R2)
L is a list of attributes from the schema of
R2.
R1 is constructed by looking at each tuple
of R2, extracting the attributes on list L, in
the order specified, and creating from
those components a tuple for R1.
Eliminate duplicate tuples, if any.
8
Example: Projection
Relation Sells:
bar beer price
Joe’s Bud 2.50
Joe’s Miller 2.75
Sue’s Bud 2.50
Sue’s Miller 3.00
Prices := πbeer,price(Sells):
beer price
Bud 2.50
Miller 2.75
Miller 3.00
9
Extended Projection
Using the same πL operator, we allow
the list L to contain arbitrary
expressions involving attributes:
1. Arithmetic on attributes, e.g., A+B->C.
2. Duplicate occurrences of the same
attribute.
10
Example: Extended Projection
R = ( A B )
1 2
3 4
πA+B->C,A,A (R) = C A1 A2
3 1 1
7 3 3
11
Product
R3 := R1 Χ R2
Pair each tuple t1 of R1 with each tuple t2 of
R2.
Concatenation t1t2 is a tuple of R3.
Schema of R3 is the attributes of R1 and then
R2, in order.
But beware attribute A of the same name in
R1 and R2: use R1.A and R2.A.
12
Example: R3 := R1 Χ R2
R1( A, B )
1 2
3 4
R2( B, C )
5 6
7 8
9 10
R3( A, R1.B, R2.B, C )
1 2 5 6
1 2 7 8
1 2 9 10
3 4 5 6
3 4 7 8
3 4 9 10
13
Theta-Join
R3 := R1 C R2
Take the product R1 Χ R2.
Then apply σC to the result.
As for σ, C can be any boolean-valued
condition.
Historic versions of this operator allowed
only A θ B, where θ is =, <, etc.; hence
the name “theta-join.”
14
Example: Theta Join
Sells( bar, beer, price ) Bars( name, addr )
Joe’s Bud 2.50 Joe’s Maple St.
Joe’s Miller 2.75 Sue’s River Rd.
Sue’s Bud 2.50
Sue’s Coors 3.00
BarInfo := Sells Sells.bar = Bars.name Bars
BarInfo( bar, beer, price, name, addr )
Joe’s Bud 2.50 Joe’s Maple St.
Joe’s Miller 2.75 Joe’s Maple St.
Sue’s Bud 2.50 Sue’s River Rd.
Sue’s Coors 3.00 Sue’s River Rd.
15
Natural Join
A useful join variant (natural join)
connects two relations by:
Equating attributes of the same name, and
Projecting out one copy of each pair of
equated attributes.
Denoted R3 := R1 R2.
16
Example: Natural Join
Sells( bar, beer, price ) Bars( bar, addr )
Joe’s Bud 2.50 Joe’s Maple St.
Joe’s Miller 2.75 Sue’s River Rd.
Sue’s Bud 2.50
Sue’s Coors 3.00
BarInfo := Sells Bars
Note: Bars.name has become Bars.bar to make the natural
join “work.”
BarInfo( bar, beer, price, addr )
Joe’s Bud 2.50 Maple St.
Joe’s Milller 2.75 Maple St.
Sue’s Bud 2.50 River Rd.
Sue’s Coors 3.00 River Rd.
17
Renaming
The ρ operator gives a new schema to a
relation.
R1 := ρR1(A1,…,An)(R2) makes R1 be a
relation with attributes A1,…,An and the
same tuples as R2.
Simplified notation: R1(A1,…,An) := R2.
18
Example: Renaming
Bars( name, addr )
Joe’s Maple St.
Sue’s River Rd.
R( bar, addr )
Joe’s Maple St.
Sue’s River Rd.
R(bar, addr) := Bars
19
Building Complex Expressions
Combine operators with parentheses
and precedence rules.
Three notations, just as in arithmetic:
1. Sequences of assignment statements.
2. Expressions with several operators.
3. Expression trees.
20
Sequences of Assignments
Create temporary relation names.
Renaming can be implied by giving
relations a list of attributes.
Example: R3 := R1 C R2 can be
written:
R4 := R1 Χ R2
R3 := σC (R4)
21
Expressions in a Single Assignment
Example: the theta-join R3 := R1 C R2
can be written: R3 := σC (R1 Χ R2)
Precedence of relational operators:
1. [σ, π, ρ] (highest).
2. [Χ, ].
3. ∩.
4. [∪, —]
22
Expression Trees
Leaves are operands --- either variables
standing for relations or particular,
constant relations.
Interior nodes are operators, applied to
their child or children.
23
Example: Tree for a Query
Using the relations Bars(name, addr)
and Sells(bar, beer, price), find the
names of all the bars that are either on
Maple St. or sell Bud for less than $3.
24
As a Tree:
Bars Sells
σaddr = “Maple St.” σprice<3 AND beer=“Bud”
πname
ρR(name)
πbar
∪
25
Example: Self-Join
Using Sells(bar, beer, price), find the
bars that sell two different beers at the
same price.
Strategy: by renaming, define a copy of
Sells, called S(bar, beer1, price). The
natural join of Sells and S consists of
quadruples (bar, beer, beer1, price) such
that the bar sells both beers at this price.
26
The Tree
Sells Sells
ρS(bar, beer1, price)
πbar
σbeer != beer1
27
Schemas for Results
Union, intersection, and difference: the
schemas of the two operands must be
the same, so use that schema for the
result.
Selection: schema of the result is the
same as the schema of the operand.
Projection: list of attributes tells us the
schema.
28
Schemas for Results --- (2)
Product: schema is the attributes of both
relations.
Use R.A, etc., to distinguish two attributes
named A.
Theta-join: same as product.
Natural join: union of the attributes of
the two relations.
Renaming: the operator tells the schema.
29
Relational Algebra on Bags
A bag (or multiset ) is like a set, but an
element may appear more than once.
Example: {1,2,1,3} is a bag.
Example: {1,2,3} is also a bag that
happens to be a set.
30
Why Bags?
SQL, the most important query
language for relational databases, is
actually a bag language.
Some operations, like projection, are
more efficient on bags than sets.
31
Operations on Bags
Selection applies to each tuple, so its
effect on bags is like its effect on sets.
Projection also applies to each tuple,
but as a bag operator, we do not
eliminate duplicates.
Products and joins are done on each
pair of tuples, so duplicates in bags
have no effect on how we operate.
32
Example: Bag Selection
R( A, B )
1 2
5 6
1 2
σA+B < 5 (R) = A B
1 2
1 2
33
Example: Bag Projection
R( A, B )
1 2
5 6
1 2
πA (R) = A
1
5
1
34
Example: Bag Product
R( A, B ) S( B, C )
1 2 3 4
5 6 7 8
1 2
R Χ S = A R.B S.B C
1 2 3 4
1 2 7 8
5 6 3 4
5 6 7 8
1 2 3 4
1 2 7 8
35
Example: Bag Theta-Join
R( A, B ) S( B, C )
1 2 3 4
5 6 7 8
1 2
R R.B<S.B S = A R.B S.B C
1 2 3 4
1 2 7 8
5 6 7 8
1 2 3 4
1 2 7 8
36
Bag Union
An element appears in the union of two
bags the sum of the number of times it
appears in each bag.
Example: {1,2,1} ∪ {1,1,2,3,1} =
{1,1,1,1,1,2,2,3}
37
Bag Intersection
An element appears in the intersection
of two bags the minimum of the
number of times it appears in either.
Example: {1,2,1,1} ∩ {1,2,1,3} =
{1,1,2}.
38
Bag Difference
An element appears in the difference
A – B of bags as many times as it
appears in A, minus the number of
times it appears in B.
But never less than 0 times.
Example: {1,2,1,1} – {1,2,3} = {1,1}.
39
Beware: Bag Laws != Set Laws
Some, but not all algebraic laws that
hold for sets also hold for bags.
Example: the commutative law for
union (R ∪S = S ∪R ) does hold for
bags.
Since addition is commutative, adding the
number of times x appears in R and S
doesn’t depend on the order of R and S.
40
Example: A Law That Fails
Set union is idempotent, meaning that
S ∪S = S.
However, for bags, if x appears n
times in S, then it appears 2n times in
S ∪S.
Thus S ∪S != S in general.
e.g., {1} ∪ {1} = {1,1} != {1}.

More Related Content

DOCX
Relational Algebra Ch6 (Navathe 4th edition)/ Ch7 (Navathe 3rd edition)
PPT
Relational Algebra
PPT
operations on sets
PPT
relational algebra
PDF
Query optimization in database
DOC
Excel tips
PPT
Relational algebra in dbms
DOCX
Week 5 ( basic concept of relation )
Relational Algebra Ch6 (Navathe 4th edition)/ Ch7 (Navathe 3rd edition)
Relational Algebra
operations on sets
relational algebra
Query optimization in database
Excel tips
Relational algebra in dbms
Week 5 ( basic concept of relation )

Similar to Relational Algebra Various Operations (20)

PPTX
3_1-_Chapterehehhsbsbsbsbdbdbdbdbdbdbdndndndndnđbbđnnd_2_-_Relational_Model_O...
PDF
Chapter – 5 Relational Algebra.pdf
PDF
Introduction to Relational Algebra
PPT
PPT-uuuuuuueu-Basis-Data-Pertemuan-2.ppt
PDF
Cs501 rel algebra
PPT
relalgebraasssssssssssssssssssssssss.ppt
PPTX
Relational algebra ppt
PPT
Relational Algebra1.ppt
PPT
Relational Algebra
PPTX
Lecture-3 Relational Algebra I.pptx
PPTX
Relational Algebra Introduction
PPT
Relational Algebra(Part1) (1) in Maths.ppt
PDF
Relational algebra in dbms
PPTX
uniT 4 (1).pptx
PPTX
Relation model part 1
PPT
Relation algebra (1).ppt
PPTX
Slide For Database Management System Relational Model.pptx
PPT
relational model in Database Management.ppt.ppt
3_1-_Chapterehehhsbsbsbsbdbdbdbdbdbdbdndndndndnđbbđnnd_2_-_Relational_Model_O...
Chapter – 5 Relational Algebra.pdf
Introduction to Relational Algebra
PPT-uuuuuuueu-Basis-Data-Pertemuan-2.ppt
Cs501 rel algebra
relalgebraasssssssssssssssssssssssss.ppt
Relational algebra ppt
Relational Algebra1.ppt
Relational Algebra
Lecture-3 Relational Algebra I.pptx
Relational Algebra Introduction
Relational Algebra(Part1) (1) in Maths.ppt
Relational algebra in dbms
uniT 4 (1).pptx
Relation model part 1
Relation algebra (1).ppt
Slide For Database Management System Relational Model.pptx
relational model in Database Management.ppt.ppt
Ad

Recently uploaded (20)

PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
PPTX
Sustainable Sites - Green Building Construction
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
Categorization of Factors Affecting Classification Algorithms Selection
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
UNIT 4 Total Quality Management .pptx
PDF
737-MAX_SRG.pdf student reference guides
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPT
Project quality management in manufacturing
PPT
Mechanical Engineering MATERIALS Selection
PPTX
additive manufacturing of ss316l using mig welding
PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
PPTX
Current and future trends in Computer Vision.pptx
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Infosys Presentation by1.Riyan Bagwan 2.Samadhan Naiknavare 3.Gaurav Shinde 4...
Sustainable Sites - Green Building Construction
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
Internet of Things (IOT) - A guide to understanding
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Categorization of Factors Affecting Classification Algorithms Selection
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
CYBER-CRIMES AND SECURITY A guide to understanding
UNIT 4 Total Quality Management .pptx
737-MAX_SRG.pdf student reference guides
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Project quality management in manufacturing
Mechanical Engineering MATERIALS Selection
additive manufacturing of ss316l using mig welding
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
Current and future trends in Computer Vision.pptx
UNIT-1 - COAL BASED THERMAL POWER PLANTS
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Ad

Relational Algebra Various Operations

  • 2. 2 What is an “Algebra” Mathematical system consisting of: Operands --- variables or values from which new values can be constructed. Operators --- symbols denoting procedures that construct new values from given values.
  • 3. 3 What is Relational Algebra? An algebra whose operands are relations or variables that represent relations. Operators are designed to do the most common things that we need to do with relations in a database. The result is an algebra that can be used as a query language for relations.
  • 4. 4 Core Relational Algebra Union, intersection, and difference. Usual set operations, but both operands must have the same relation schema. Selection: picking certain rows. Projection: picking certain columns. Products and joins: compositions of relations. Renaming of relations and attributes.
  • 5. 5 Selection R1 := σC (R2) C is a condition (as in “if” statements) that refers to attributes of R2. R1 is all those tuples of R2 that satisfy C.
  • 6. 6 Example: Selection Relation Sells: bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 Sue’s Bud 2.50 Sue’s Miller 3.00 JoeMenu := σbar=“Joe’s”(Sells): bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75
  • 7. 7 Projection R1 := πL (R2) L is a list of attributes from the schema of R2. R1 is constructed by looking at each tuple of R2, extracting the attributes on list L, in the order specified, and creating from those components a tuple for R1. Eliminate duplicate tuples, if any.
  • 8. 8 Example: Projection Relation Sells: bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 Sue’s Bud 2.50 Sue’s Miller 3.00 Prices := πbeer,price(Sells): beer price Bud 2.50 Miller 2.75 Miller 3.00
  • 9. 9 Extended Projection Using the same πL operator, we allow the list L to contain arbitrary expressions involving attributes: 1. Arithmetic on attributes, e.g., A+B->C. 2. Duplicate occurrences of the same attribute.
  • 10. 10 Example: Extended Projection R = ( A B ) 1 2 3 4 πA+B->C,A,A (R) = C A1 A2 3 1 1 7 3 3
  • 11. 11 Product R3 := R1 Χ R2 Pair each tuple t1 of R1 with each tuple t2 of R2. Concatenation t1t2 is a tuple of R3. Schema of R3 is the attributes of R1 and then R2, in order. But beware attribute A of the same name in R1 and R2: use R1.A and R2.A.
  • 12. 12 Example: R3 := R1 Χ R2 R1( A, B ) 1 2 3 4 R2( B, C ) 5 6 7 8 9 10 R3( A, R1.B, R2.B, C ) 1 2 5 6 1 2 7 8 1 2 9 10 3 4 5 6 3 4 7 8 3 4 9 10
  • 13. 13 Theta-Join R3 := R1 C R2 Take the product R1 Χ R2. Then apply σC to the result. As for σ, C can be any boolean-valued condition. Historic versions of this operator allowed only A θ B, where θ is =, <, etc.; hence the name “theta-join.”
  • 14. 14 Example: Theta Join Sells( bar, beer, price ) Bars( name, addr ) Joe’s Bud 2.50 Joe’s Maple St. Joe’s Miller 2.75 Sue’s River Rd. Sue’s Bud 2.50 Sue’s Coors 3.00 BarInfo := Sells Sells.bar = Bars.name Bars BarInfo( bar, beer, price, name, addr ) Joe’s Bud 2.50 Joe’s Maple St. Joe’s Miller 2.75 Joe’s Maple St. Sue’s Bud 2.50 Sue’s River Rd. Sue’s Coors 3.00 Sue’s River Rd.
  • 15. 15 Natural Join A useful join variant (natural join) connects two relations by: Equating attributes of the same name, and Projecting out one copy of each pair of equated attributes. Denoted R3 := R1 R2.
  • 16. 16 Example: Natural Join Sells( bar, beer, price ) Bars( bar, addr ) Joe’s Bud 2.50 Joe’s Maple St. Joe’s Miller 2.75 Sue’s River Rd. Sue’s Bud 2.50 Sue’s Coors 3.00 BarInfo := Sells Bars Note: Bars.name has become Bars.bar to make the natural join “work.” BarInfo( bar, beer, price, addr ) Joe’s Bud 2.50 Maple St. Joe’s Milller 2.75 Maple St. Sue’s Bud 2.50 River Rd. Sue’s Coors 3.00 River Rd.
  • 17. 17 Renaming The ρ operator gives a new schema to a relation. R1 := ρR1(A1,…,An)(R2) makes R1 be a relation with attributes A1,…,An and the same tuples as R2. Simplified notation: R1(A1,…,An) := R2.
  • 18. 18 Example: Renaming Bars( name, addr ) Joe’s Maple St. Sue’s River Rd. R( bar, addr ) Joe’s Maple St. Sue’s River Rd. R(bar, addr) := Bars
  • 19. 19 Building Complex Expressions Combine operators with parentheses and precedence rules. Three notations, just as in arithmetic: 1. Sequences of assignment statements. 2. Expressions with several operators. 3. Expression trees.
  • 20. 20 Sequences of Assignments Create temporary relation names. Renaming can be implied by giving relations a list of attributes. Example: R3 := R1 C R2 can be written: R4 := R1 Χ R2 R3 := σC (R4)
  • 21. 21 Expressions in a Single Assignment Example: the theta-join R3 := R1 C R2 can be written: R3 := σC (R1 Χ R2) Precedence of relational operators: 1. [σ, π, ρ] (highest). 2. [Χ, ]. 3. ∩. 4. [∪, —]
  • 22. 22 Expression Trees Leaves are operands --- either variables standing for relations or particular, constant relations. Interior nodes are operators, applied to their child or children.
  • 23. 23 Example: Tree for a Query Using the relations Bars(name, addr) and Sells(bar, beer, price), find the names of all the bars that are either on Maple St. or sell Bud for less than $3.
  • 24. 24 As a Tree: Bars Sells σaddr = “Maple St.” σprice<3 AND beer=“Bud” πname ρR(name) πbar ∪
  • 25. 25 Example: Self-Join Using Sells(bar, beer, price), find the bars that sell two different beers at the same price. Strategy: by renaming, define a copy of Sells, called S(bar, beer1, price). The natural join of Sells and S consists of quadruples (bar, beer, beer1, price) such that the bar sells both beers at this price.
  • 26. 26 The Tree Sells Sells ρS(bar, beer1, price) πbar σbeer != beer1
  • 27. 27 Schemas for Results Union, intersection, and difference: the schemas of the two operands must be the same, so use that schema for the result. Selection: schema of the result is the same as the schema of the operand. Projection: list of attributes tells us the schema.
  • 28. 28 Schemas for Results --- (2) Product: schema is the attributes of both relations. Use R.A, etc., to distinguish two attributes named A. Theta-join: same as product. Natural join: union of the attributes of the two relations. Renaming: the operator tells the schema.
  • 29. 29 Relational Algebra on Bags A bag (or multiset ) is like a set, but an element may appear more than once. Example: {1,2,1,3} is a bag. Example: {1,2,3} is also a bag that happens to be a set.
  • 30. 30 Why Bags? SQL, the most important query language for relational databases, is actually a bag language. Some operations, like projection, are more efficient on bags than sets.
  • 31. 31 Operations on Bags Selection applies to each tuple, so its effect on bags is like its effect on sets. Projection also applies to each tuple, but as a bag operator, we do not eliminate duplicates. Products and joins are done on each pair of tuples, so duplicates in bags have no effect on how we operate.
  • 32. 32 Example: Bag Selection R( A, B ) 1 2 5 6 1 2 σA+B < 5 (R) = A B 1 2 1 2
  • 33. 33 Example: Bag Projection R( A, B ) 1 2 5 6 1 2 πA (R) = A 1 5 1
  • 34. 34 Example: Bag Product R( A, B ) S( B, C ) 1 2 3 4 5 6 7 8 1 2 R Χ S = A R.B S.B C 1 2 3 4 1 2 7 8 5 6 3 4 5 6 7 8 1 2 3 4 1 2 7 8
  • 35. 35 Example: Bag Theta-Join R( A, B ) S( B, C ) 1 2 3 4 5 6 7 8 1 2 R R.B<S.B S = A R.B S.B C 1 2 3 4 1 2 7 8 5 6 7 8 1 2 3 4 1 2 7 8
  • 36. 36 Bag Union An element appears in the union of two bags the sum of the number of times it appears in each bag. Example: {1,2,1} ∪ {1,1,2,3,1} = {1,1,1,1,1,2,2,3}
  • 37. 37 Bag Intersection An element appears in the intersection of two bags the minimum of the number of times it appears in either. Example: {1,2,1,1} ∩ {1,2,1,3} = {1,1,2}.
  • 38. 38 Bag Difference An element appears in the difference A – B of bags as many times as it appears in A, minus the number of times it appears in B. But never less than 0 times. Example: {1,2,1,1} – {1,2,3} = {1,1}.
  • 39. 39 Beware: Bag Laws != Set Laws Some, but not all algebraic laws that hold for sets also hold for bags. Example: the commutative law for union (R ∪S = S ∪R ) does hold for bags. Since addition is commutative, adding the number of times x appears in R and S doesn’t depend on the order of R and S.
  • 40. 40 Example: A Law That Fails Set union is idempotent, meaning that S ∪S = S. However, for bags, if x appears n times in S, then it appears 2n times in S ∪S. Thus S ∪S != S in general. e.g., {1} ∪ {1} = {1,1} != {1}.