0% found this document useful (0 votes)
2 views

Chapter2-algebra

Chapter 2 discusses the relational model of data and relational algebra, which is a mathematical system for querying and manipulating relations in databases. It covers key operations such as selection, projection, joins, and renaming, along with examples to illustrate their use. The chapter also touches on the concept of bags (multisets) and how relational algebra operates on them, highlighting differences from traditional sets.

Uploaded by

Ahmad DIB
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Chapter2-algebra

Chapter 2 discusses the relational model of data and relational algebra, which is a mathematical system for querying and manipulating relations in databases. It covers key operations such as selection, projection, joins, and renaming, along with examples to illustrate their use. The chapter also touches on the concept of bags (multisets) and how relational algebra operates on them, highlighting differences from traditional sets.

Uploaded by

Ahmad DIB
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 53

Chapter 2

The relational Model of data

Relational algebra

1
Contents
 What is a data model?
 Basics of the relational model

 How to define?
 How to query?
 Constraints on relations

2
An algebraic query language
 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.
 Eg. how many students in my
classroom? E= (x+y)
3
What is Relational Algebra?
 An algebra whose operands are
relations or variables that represent
relations.
 Operators are designed to do with
relations in a database.
 The result is used as a query language
for relations.
 how many students in my classroom?
(x union y)
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 (cross join)
 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.
 If attribute A has the same name in
R1 and R2: use R1.A and R2.A.

12
Example: R3 := R1 Χ R2

R1( A, B) R3( A, R1.B, R2.B, C )


1 2 1 2 5 6
3 4 1 2 7 8
1 2 9 10
R2( B, C) 3 4 5 6
5 6 3 4 7 8
7 8 3 4 9 10
9 10

13
Theta-Join
 R3 := R1 ⋈C R2
 Take the product R1 Χ R2.
 Then apply σC to the result.
σ, 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
Example:
two or more common attributes
 R(A,B,C,D) natural join S(A,B,F)

A B C D A B F A B C D F

a1 b1 c1 d1

a1 b1 f1 = a1 b1 c1 d1 f1
a1 b1 c2 d2 a1 b2 f2 a1 b1 c2 d2 f1

If theta join on R.A=S.B and


R.B=S.B? or R product S?
A B C D A B F
a1 b1 c1 d1 a1 b1 f1
a1 b1 c2 d2 a1 b2 f2

18
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.

19
Example: Renaming

Bars( name, addr )


Joe’s Maple St.
Sue’s River Rd.

R(bar, addr) := Bars

R( bar, addr )
Joe’s Maple St.
Sue’s River Rd.

20
Building Complex Expressions

 Combine operators with parentheses


and precedence rules.
 Precedence of relational operators:
1. [σ, π, ρ] (highest).
2. [Χ, ⋈].
3. ∩.
4. [∪, —]

21
Three notations:
1.Sequences of assignment
statements. :=
2.Expressions with several
operators.
3.Expression trees

22
Example: a Query

 Bars(name, addr)
 Sells(bar, beer, price)

Query: find the names of all the bars


that are either on Maple St. or sell Bud
for less than $3.

Three notations to represent the query.


23
1. Sequences of Assignments

 Create temporary relation names.


 Renaming can be implied by giving
relations a list of attributes.

B1 := лname σCaddress=‘Maper str.’ (Bars)

B2:= лbar σ beer=‘Bud’ and price<3 (Sells)


B3:= ρ name (B2)
B4= B1 U B3
24
2. Expressions in a Single
Assignment

Bar: =
лname (σaddress=‘Maper str.’ (Bars) ) U
ρ name ( лbar (σbeer=‘Bud’ and price<3 (Sells))

25
3. Expression Trees

 Leaves are operands --- either


variables standing for relations
or particular, constant
relations.
 Interior nodes are operators,
applied to their child or
children.
26
find the names of all the
bars that are either on

As a Tree: Maple St. or sell Bud for


less than $3.


ρ R(name)

π name π bar

σaddr = ‘Maple St.’ σ


price<3 AND beer=‘Bud’

Bars Sells
27
Self Join
 Sometimes, conditions and query
results are in the same table.

 Recursion situation:
Parents (Parents, child) in DB
We want to know grandparents
information.

28
Example: Self-Join
 Using Sells(bar, beer, price), find the
bars that sell two different beers at
the same price.
Joe’s Bud 2.5
Joe’s Coors 3.0
Joe’s Miller 2.5
Sue’s Bud 2.5
Sue’s Coors 3.5
Marry’s Miller 2.5
29
Example: Self-Join (cont.)
 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.
Query: find the bars that sell
two different beers at the same
The Tree price.

π bar

σ
beer != beer1


ρ S(bar, beer1, price)

Sells Sells
31
Query expression: Пbar( σ beer <> beer1 (ρS(bar,beer1,price)(sells) ⋈ sells))
<> Change to <
Bar Beer1 price Bar Beer price
Joe’s Bud 2.5 Joe’s Bud 2.5
Joe’s Coors 3.0 Joe’s Coors 3.0
Joe’s Miller 2.5 ⋈ Joe’s Miller 2.5
Sue’s Bud 2.5 Sue’s Bud 2.5
Sue’s Coors 3.5 Sue’s Coors 3.5
Marry’s Miller 2.5
Marry’s Miller 2.5

bar beer beer1 price

= joes bud bud 2.5 bar beer beer1 price

joes bud miller 2.5 => joes bud miller 2.5

joes coors coors 3.0 Beer<>beer1 Joes miller bud 2.5

joes miller miller 2.5


Joes miller bud 2.5 If we do not want pairs
… .. .. .. appear twice? What should
we do?
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.
33
Schemas for Results (cont.)
 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.
34
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.

35
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.

36
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.
37
Example: Bag Selection

R( A B )
1 2
5 6
1 2

σA+B < 5 (R) = A B


1 2
1 2

38
Example: Bag Projection

R( A B )
1 2
5 6
1 2

πA (R) = A
1
5
1

39
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 40
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
41
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}

42
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}.

43
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}.

44
Beware: Bag Laws != Set Laws

 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.
45
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}.
46
Comparison

47
Constraints on Relations

 The ability to restrict the data that


may be stored in a database.

 Relational algebra: used as a


constraint language abstractly.

48
Two ways to express constraints

R,S: expressions of relational


algebra
1. R=0 : “there are no tuples in
the result of R” or the value of
R must be empty.
2. RS : “every tuple in the result
of R must be in the result of S”

49
For example
Beers (name, manf)
Bars (name, addr, license)
Sells (bar, beer, price)

 Legal value constrain:


σ Price <0 (Sells)=0 (empty)

Means all the price is not allowed to lower than 0


Referential Integrity Constraint

Beers (name, manf)


Bars (name, addr, license)
Sells (bar, beer, price)

 Referential Integrity constraint:


 bar (Sells)  name(Bars)
 beer (Sells)  name(Beers)
Summary of Chapter 2

 Relational Data models


1. Structure: schemas, relations, keys,
how to define structure.
2. Operations: relational algebra as a
query language (set and bag), three
notations
3. Constraints: Relational algebra as a
constraint language (two ways to
express)
52
Homework for chapter 2

 Exercise 2.3.1 (DDL)


 Exercise 2.4.1 a), f), h) (DML)
 Exercise 2.5.1 b)
Submit: electronically

ftp://public.sjtu.edu.cn to public-files/upload/chapter2
User name: fli Password: public
Name of your homework is your studentID

53

You might also like