0% found this document useful (0 votes)
87 views9 pages

Relational Algebra I

The document discusses relational algebra, which is a procedural query language for retrieving and manipulating data from relational databases. It describes six basic operators in relational algebra: select, project, Cartesian product, set difference, union, and rename. These operators take relations as inputs and produce new relations as outputs. The document provides examples and explanations of how each operator works. Relational algebra forms the basis for more complex query languages like SQL.

Uploaded by

shahzaibali39390
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views9 pages

Relational Algebra I

The document discusses relational algebra, which is a procedural query language for retrieving and manipulating data from relational databases. It describes six basic operators in relational algebra: select, project, Cartesian product, set difference, union, and rename. These operators take relations as inputs and produce new relations as outputs. The document provides examples and explanations of how each operator works. Relational algebra forms the basis for more complex query languages like SQL.

Uploaded by

shahzaibali39390
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 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