0% found this document useful (0 votes)
19 views43 pages

CIS340 - Lecture Algebra-1

Uploaded by

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

CIS340 - Lecture Algebra-1

Uploaded by

gigesa39
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 43

Chapter 6

The
Relational
Algebra and
Relational
Calculus
‫ شرائح العرض‬: ‫تنبيه‬
‫) هي وسيلة‬Slides(
‫لتوضيح الدرس واداة من‬
.‫االدوات في ذلك‬

‫حيث المرجع االساسي‬


‫للمادة هي الكتاب المعتمد‬
‫في وصف المقرر‬

Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley


Chapter Outline
 Relational Algebra
 Unary Relational Operations
 Relational Algebra Operations From Set Theory
 Binary Relational Operations
 Additional Relational Operations
 Examples of Queries in Relational Algebra

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 2


The Relational Algebra and
Relational Calculus
 Relational algebra
 Basic set of operations for the relational model
 Relational algebra expression
 Sequence of relational algebra operations
 The result of an operation is a new relation, which
may have been formed from one or more input
relations
 Relational calculus
 Higher-level declarative language for specifying
relational queries

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 3


Relational Algebra Overview (continued)
 The algebra operations thus produce new
relations
 These can be further manipulated using
operations of the same algebra

 A sequence of relational algebra operations forms


a relational algebra expression
 The result of a relational algebra expression is also a
relation that represents the result of a database
query (or retrieval request)

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 4


Brief History of Origins of Algebra
 Muhammad ibn Musa al-Khwarizmi wrote a book titled al-
jabr about arithmetic of variables

Book was translated into Latin.

Its title (al-jabr) gave Algebra its name.

 Al-Khwarizmi called variables “shay”



“Shay” is Arabic for “thing”.

Spanish transliterated “shay” as “xay” (“x” was “sh” in Spain).

In time this word was abbreviated as x.

 Where does the word Algorithm come from?



Algorithm originates from “al-Khwarizmi"

Reference: (http://www.pbs.org/empires/islam/innoalgebra.html)

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 5


Relational Algebra Overview
 Relational Algebra consists of several groups of operations

Unary Relational Operations

SELECT (symbol:  (sigma))

PROJECT (symbol:  (pi))

RENAME (symbol:  (rho))

Relational Algebra Operations From Set Theory

UNION (  ), INTERSECTION (  ), DIFFERENCE (or MINUS, – )

CARTESIAN PRODUCT ( x )

Binary Relational Operations

JOIN (several variations of JOIN exist)

DIVISION

Additional Relational Operations

OUTER JOINS, OUTER UNION

AGGREGATE FUNCTIONS (These compute summary of information:
for example, SUM, COUNT, AVG, MIN, MAX)

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 6


Database State for COMPANY
 All examples discussed below refer to the COMPANY database
shown here.

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 7


The following query results refer to this
database state

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 8


Unary Relational Operations: SELECT

The SELECT operation (denoted by  (sigma)) is used to select a
subset of the tuples from a relation based on a selection condition.
 The selection condition acts as a filter
 Keeps only those tuples that satisfy the qualifying condition
 Tuples satisfying the condition are selected whereas the
other tuples are discarded (filtered out)
 Examples:
 Select the EMPLOYEE tuples whose department number is 4:

 DNO = 4 (EMPLOYEE)
 Select the employee tuples whose salary is greater than $30,000:
 SALARY > 30,000 (EMPLOYEE)

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 9


Unary Relational Operations: SELECT
 In general, the select operation is denoted by
 <selection condition>(R) where

the symbol  (sigma) is used to denote the select
operator

the selection condition is a Boolean (conditional)
expression specified on the attributes of relation R

tuples that make the condition true are selected
 appear in the result of the operation

tuples that make the condition false are filtered out
 discarded from the result of the operation

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 10


Unary Relational Operations

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6-11


Unary Relational Operations: PROJECT
 PROJECT Operation is denoted by  (pi)
 This operation keeps certain columns (attributes)
from a relation and discards the other columns.
 PROJECT creates a vertical partitioning

The list of specified columns (attributes) is kept in
each tuple

The other attributes in each tuple are discarded
 Example: To list each employee’s first and last
name and salary, the following is used:
LNAME, FNAME,SALARY(EMPLOYEE)

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 12


Unary Relational Operations: PROJECT
(cont.)

 The general form of the project operation is:


<attribute list>(R)

 (pi) is the symbol used to represent the project
operation

<attribute list> is the desired list of attributes from
relation R.
 The project operation removes any duplicate
tuples

This is because the result of the project operation
must be a set of tuples

Mathematical sets do not allow duplicate elements.

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 13


Unary Relational Operations

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6-14


Unary Relational Operations

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6-15


Relational Algebra Expressions
 We may want to apply several relational algebra
operations one after the other
 Either we can write the operations as a single
relational algebra expression by nesting the
operations, or
 We can apply one operation at a time and create
intermediate result relations.
 In the latter case, we must give names to the
relations that hold the intermediate results.

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 16


Single expression versus sequence of
relational operations (Example)
 To retrieve the first name, last name, and salary of all
employees who work in department number 5, we must
apply a select and a project operation
 We can write a single relational algebra expression as
follows:
 
FNAME, LNAME, SALARY( DNO=5(EMPLOYEE))
 OR We can explicitly show the sequence of operations,
giving a name to each intermediate relation:
 DEP5_EMPS  
DNO=5(EMPLOYEE)
 RESULT   FNAME, LNAME, SALARY (DEP5_EMPS)

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 17


Sequences of Operations and the
RENAME Operation
 In-line expression:

 Sequence of operations:

 Rename attributes in intermediate results


 RENAME operation

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe


Unary Relational Operations

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-19


Unary Relational Operations

DEP5_EMPS

Result

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-20


Relational Algebra Operations from
Set Theory: UNION
 UNION Operation
 Binary operation, denoted by 
 The result of R  S, is a relation that includes all
tuples that are either in R or in S or in both R and
S
 Duplicate tuples are eliminated
 The two operand relations R and S must be “type
compatible” (or UNION compatible)

R and S must have same number of attributes

Each pair of corresponding attributes must be type
compatible (have same or compatible domains)

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 21


Example of the result of a UNION
operation
 UNION Example1

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-22


Example of the result of a UNION
operation
 UNION Example1

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-23


Relational Algebra Operations from
Set Theory: UNION
 Example2:

To retrieve the social security numbers of all employees who
either work in department 5 or directly supervise an employee
who works in department 5


We can use the UNION operation as follows:
DEP5_EMPS  DNO=5 (EMPLOYEE)
RESULT1   SSN(DEP5_EMPS)
 Result1 has the SSN of all employees who work in
department 5
RESULT2(SSN)  SUPERSSN(DEP5_EMPS)
 Result 2 has the SSN of all employees who directly
supervise an employee who works in department 5
RESULT  RESULT1  RESULT2
 The union operation produces the tuples that are in either
RESULT1 or RESULT2 or both
Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 24
Example of the result of a UNION
operation
 UNION Example

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 25


Relational Algebra Operations from Set
Theory: INTERSECTION
 INTERSECTION is denoted by 
 The result of the operation R  S, is a
relation that includes all tuples that are in
both R and S
 The attribute names in the result will be the
same as the attribute names in R
 The two operand relations R and S must be
“type compatible”

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 26


Relational Algebra Operations
From Set Theory
INTERSECTION Operation Example

 The result of the intersection operation includes only


those who are both students and instructors.

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-27


Relational Algebra Operations from Set
Theory: SET DIFFERENCE (cont.)
 SET DIFFERENCE (also called MINUS or
EXCEPT) is denoted by –
 The result of R – S, is a relation that includes all
tuples that are in R but not in S
 The attribute names in the result will be the
same as the attribute names in R
 The two operand relations R and S must be
“type compatible”

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 28


Relational Algebra Operations from Set
Theory: SET DIFFERENCE (Example)
 List the names of students who are not instructors, and
the names of instructors who are not students.

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-29


Relational Algebra Operations from Set
Theory: SET DIFFERENCE (Example)

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-30


Some properties of UNION, INTERSECT,
and DIFFERENCE
 Notice that both union and intersection are commutative
operations; that is
 R  S = S  R, and R  S = S  R
 Both union and intersection can be treated as n-ary
operations applicable to any number of relations as both
are associative operations; that is
 R  (S  T) = (R  S)  T
 (R  S)  T = R  (S  T)
 The minus operation is not commutative; that is, in
general
 R–S≠S–R

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 31


Relational Algebra Operations from Set
Theory: CARTESIAN PRODUCT
 CARTESIAN (or CROSS) PRODUCT Operation
 This operation is used to combine tuples from two
relations in a combinatorial fashion.
 Denoted by R(A1, A2, . . ., An) x S(B1, B2, . . ., Bm)
 Result is a relation Q with degree n + m attributes:

Q(A1, A2, . . ., An, B1, B2, . . ., Bm), in that order.
 The resulting relation state has one tuple for each
combination of tuples—one from R and one from S.

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 32


Relational Algebra Operations from Set
Theory: CARTESIAN PRODUCT
 Hence, if R has nR tuples (denoted as |R| = nR ),
and S has nS tuples, then
| R x S | will have nR * nS tuples.
 The two operands do NOT have to be "type
compatible”

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-33


Relational Algebra Operations from Set
Theory: CARTESIAN PRODUCT (cont.)
 Generally, CROSS PRODUCT is not a
meaningful operation
 Can become meaningful when followed by other
operations
 Example (not meaningful): Retrieve list of names
of each female employee’s dependants

FEMALE_EMPS   SEX=’F’(EMPLOYEE)

EMPNAMES   FNAME, LNAME, SSN (FEMALE_EMPS)
 EMP_DEPENDENTS  EMPNAMES x DEPENDENT
 EMP_DEPENDENTS will contain every combination of
EMPNAMES and DEPENDENT
 whether or not they are actually related

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 34


Relational Algebra Operations from Set
Theory: CARTESIAN PRODUCT (cont.)

FEMALE_EMPS

EMPNAMES

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-35


Relational Algebra Operations from Set
Theory: CARTESIAN PRODUCT (cont.)

EMP_DEPENDENTS

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-36


Relational Algebra Operations from Set
Theory: CARTESIAN PRODUCT (cont.)
 To keep only combinations where the
DEPENDENT is related to the EMPLOYEE, we
add a SELECT operation as follows
 Example (meaningful):

FEMALE_EMPS   SEX=’F’(EMPLOYEE)

EMPNAMES   FNAME, LNAME, SSN (FEMALE_EMPS)
 EMP_DEPENDENTS  EMPNAMES x DEPENDENT

ACTUAL_DEPS   SSN=ESSN(EMP_DEPENDENTS)

RESULT   FNAME, LNAME, DEPENDENT_NAME (ACTUAL_DEPS)
 RESULT will now contain the name of female employees
and their dependents

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 37


Relational Algebra Operations from Set
Theory: CARTESIAN PRODUCT (cont.)

Chapt
er 6-38
Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe
Example of applying CARTESIAN
PRODUCT

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 39


Binary Relational Operations: JOIN
 JOIN Operation (denoted by )

The sequence of CARTESIAN PRODECT followed by
SELECT is used quite commonly to identify and select
related tuples from two relations

A special operation, called JOIN combines this sequence
into a single operation

This operation is very important for any relational database
with more than a single relation, because it allows us
combine related tuples from various relations

The general form of a join operation on two relations R(A1,
A2, . . ., An) and S(B1, B2, . . ., Bm) is:
R <join condition>S

where R and S can be any relations that result from general
relational algebra expressions.

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 40


Binary Relational Operations
JOIN Operation Example

R A B S C D
a 1 1 x
b 2 1 y
3 z

R S
B=C

Q A B C D
a 1 1 x
a 1 1 y
Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Chapter 6-41
Binary Relational Operations: JOIN (cont.)
 Example: Suppose that we want to retrieve the name of the
manager of each department.

To get the manager’s name, we need to combine each
DEPARTMENT tuple with the EMPLOYEE tuple whose SSN
value matches the MGRSSN value in the department tuple.

We do this by using the join operation.


DEPT_MGR  DEPARTMENT MGRSSN=SSN EMPLOYEE
 MGRSSN=SSN is the join condition

Combines each department record with the employee who
manages the department

The join condition can also be specified as
DEPARTMENT.MGRSSN= EMPLOYEE.SSN

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 42


Example of applying the JOIN operation

DNAME FNAME LNAME


Researcher Franklin Wong
Administration Jennifer Wallace
Headquarters James Borg

Copyright © 2011 Ramez Elmasri and Shamkant B. Navathe Slide 6- 43

You might also like