Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Relational Algebra I

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

ECS-165A WQ’11 43

3.2 Relational Algebra


Query Languages

• A query language (QL) is a language that allows users to


manipulate and retrieve data from a database.
• The relational model supports simple, powerful QLs (having
strong formal foundation based on logics, allow for much
optimization)
• Query Language != Programming Language
– QLs are not expected to be Turing-complete, not intended
to be used for complex applications/computations
– QLs support easy access to large data sets
• Categories of QLs: procedural versus declarative
• Two (mathematical) query languages form the basis for “real”
languages (e.g., SQL) and for implementation
– Relational Algebra: procedural, very useful for representing
query execution plans, and query optimization techniques.
– Relational Calculus: declarative, logic based language
• Understanding algebra (and calculus) is the key to
understanding SQL, query processing and optimization.

Dept. of Computer Science UC Davis 3. Relational Model and Relational Algebra


ECS-165A WQ’11 44

Relational Algebra

• Procedural language

• Queries in relational algebra are applied to relation instances,


result of a query is again a relation instance

• Six basic operators in relational algebra:


select σ selects a subset of tuples from reln
project π deletes unwanted columns from reln
Cartesian Product × allows to combine two relations
Set-difference − tuples in reln. 1, but not in reln. 2
Union ∪ tuples in reln 1 plus tuples in reln 2
Rename ρ renames attribute(s) and relation

• The operators take one or two relations as input and give a


new relation as a result (relational algebra is “closed”).

Dept. of Computer Science UC Davis 3. Relational Model and Relational Algebra


ECS-165A WQ’11 45

Select Operation
• Notation: σP (r)
Defined as
σP (r) := {t | t ∈ r and P (t)}
where
– r is a relation (name),
– P is a formula in propositional calculus, composed of
conditions of the form
<attribute> = <attribute> or <constant>
Instead of “=” any other comparison predicate is allowed
(6=, <, > etc).
Conditions can be composed through ∧ (and), ∨ (or), ¬ (not)

• Example: given the relation r

A B C D
α α 1 7
α β 5 7
β β 12 3
β β 23 10

σA=B∧D>5(r)
A B C D
α α 1 7
β β 23 10

Dept. of Computer Science UC Davis 3. Relational Model and Relational Algebra


ECS-165A WQ’11 46

Project Operation

• Notation: πA1,A2,...,Ak (r)


where A1, . . . , Ak are attribute names and
r is a relation (name).

• The result of the projection operation is defined as the relation


that has k columns obtained by erasing all columns from r
that are not listed.

• Duplicate rows are removed from result because relations are


sets.

• Example: given the relations r

r πA,C (r)
A B C A C
α 10 2 α 2
α 20 2 β 2
β 30 2 β 4
β 40 4

Dept. of Computer Science UC Davis 3. Relational Model and Relational Algebra


ECS-165A WQ’11 47

Cartesian Product

• Notation: r × s where both r and s are relations


Defined as r × s := {tq | t ∈ r and q ∈ s}

• Assume that attributes of r(R) and s(S) are disjoint, i.e.,


R ∩ S = ∅.
If attributes of r(R) and s(S) are not disjoint, then the
rename operation must be applied first.
• Example: relations r, s:

r s
A B C D E
α 1 α 10 +
β 2 β 10 +
β 20 −
γ 10 −

r×s
A B C D E
α 1 α 10 +
α 1 β 10 +
α 1 β 20 −
α 1 γ 10 −
β 2 α 10 +
β 2 β 10 +
β 2 β 20 −
β 2 γ 10 −

Dept. of Computer Science UC Davis 3. Relational Model and Relational Algebra


ECS-165A WQ’11 48

Union Operator

• Notation: r ∪ s where both r and s are relations


Defined as r ∪ s := {t | t ∈ r or t ∈ s}

• For r ∪ s to be applicable,
1. r, s must have the same number of attributes
2. Attribute domains must be compatible (e.g., 3rd column
of r has a data type matching the data type of the 3rd
column of s)

• Example: given the relations r and s


r s
A B A B
α 1 α 2
α 2 β 3
β 1

r∪s
A B
α 1
α 2
β 1
β 3

Dept. of Computer Science UC Davis 3. Relational Model and Relational Algebra


ECS-165A WQ’11 49

Set Difference Operator

• Notation: r − s where both r and s are relations


Defined as r − s := {t | t ∈ r and t 6∈ s}

• For r − s to be applicable,
1. r and s must have the same arity
2. Attribute domains must be compatible

• Example: given the relations r and s

r s
A B A B
α 1 α 2
α 2 β 3
β 1

r−s
A B
α 1
β 1

Dept. of Computer Science UC Davis 3. Relational Model and Relational Algebra


ECS-165A WQ’11 50

Rename Operation

• Allows to name and therefore to refer to the result of relational


algebra expression.

• Allows to refer to a relation by more than one name (e.g., if the


same relation is used twice in a relational algebra expression).

• Example:
ρx(E)
returns the relational algebra expression E under the name x
If a relational algebra expression E (which is a relation) has
the arity k, then
ρx(A1,A2,...,Ak )(E)
returns the expression E under the name x, and with the
attribute names A1, A2, . . . , Ak .

Dept. of Computer Science UC Davis 3. Relational Model and Relational Algebra


ECS-165A WQ’11 51

Composition of Operations

• It is possible to build relational algebra expressions using


multiple operators similar to the use of arithmetic operators
(nesting of operators)

• Example: σA=C (r × s)

r×s
A B C D E
α 1 α 10 +
α 1 β 10 +
α 1 β 20 −
α 1 γ 10 −
β 2 α 10 +
β 2 β 10 +
β 2 β 20 −
β 2 γ 10 −

σA=C (r × s)
A B C D E
α 1 α 10 +
β 2 β 10 +
β 2 β 20 −

Dept. of Computer Science UC Davis 3. Relational Model and Relational Algebra

You might also like