53
IM ISU 1 Database Fundamentals of Database Systems Chapter 6 The Relational Algebra

DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

Embed Size (px)

Citation preview

Page 1: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 1Database

Fundamentals of Database Systems

Chapter 6

The Relational Algebra

Page 2: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 2Database

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

Example Database Application (COMPANY)

Page 3: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 3Database

Relational Algebra Overview

Basic concepts The relational algebra is a set of operations to

manipulate relations Used to specify retrieval requests (queries) Query result is in the form of a relation

Page 4: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 4Database

The Relational Algebra 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 ( )

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)

Page 5: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 5Database

Unary Relational Operations

SELECT operation Selects the tuples (rows) from a relation R that satisfy a certain selection condition c Form of the operation: c(R)

» The condition c is an arbitrary Boolean expression (AND, OR, NOT) on the attributes of

R Resulting relation has the same attributes as

R

Page 6: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 6Database

(DNO=4 AND SALARY>25000) OR (DNO=5 AND SALARY > 30000)

(EMPLOYEE)

Page 7: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 7Database

Unary Relational Operations (cont.)

PROJECT operation Keeps only certain attributes (columns) from a relation R specified in an attribute list L Form of operation: L(R)

Resulting relation has only those attributes of R specified in L

The PROJECT operation eliminates duplicate tuples in the resulting relation

Page 8: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 8Database

Unary Relational Operations (cont.)

FNAME,LNAME,SALARY(EMPLOYEE)

SEX,SALARY(EMPLOYEE)

Page 9: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 9Database

Unary Relational Operations (cont.)

Sequences of operations Several operations can be combined to form a

relational algebra expression (query)» e.g., retrieve the names and salaries of employees who work in department 5: FNAME,LNAME,SALARY ( DNO=5(EMPLOYEE))

Page 10: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 10Database

Unary Relational Operations (cont.)

Alternatively, we specify explicit intermediate relations for each step DEPT5_EMPS DNO=5(EMPLOYEE)

RESULT FNAME,LNAME,SALARY(DEPT5_EMPS)

Attributes can optionally be renamed in the resulting left-hand-side relation TEMP DNO=5(EMPLOYEE)

R(FIRSTNAME,LASTNAME,SALARY) FNAME,LNAME,SALARY(TEMP)

Page 11: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 11Database

Unary Relational Operations (cont.)

Page 12: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 12Database

Unary Relational Operations (cont.)

RENAME operation (rho) General form: S (B1, B2, …, Bn )(R) changes both:

» the relation name to S, and

» the column (attribute) names to B1, B2, …..Bn

S(R) changes:» the relation name only to S

(B1, B2, …, Bn )(R) changes:» the column (attribute) names only to B1, B2, …..Bn

Page 13: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 13Database

Set Operations

Operations from set theory Binary operations from mathematical set theo

ry UNION: R1 R2

INTERSECTION: R1 R2

SET DIFFERENCE: R1 R2

CARTESIAN PRODUCT: R1 R2

Page 14: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 14Database

Set Operations (cont.)

Union compatibility For , , , the operand relations R1(A1, A2,

..., An) and R2(B1, B2, ..., Bn) must have the same number of attributes, and the domains of corresponding attributes must be compatible

The resulting relation for , , , has the same attribute names as the first operand relation R1 (by convention)

Page 15: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 15Database

The Relational Algebra (cont.)

Page 16: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 16Database

Set Operations (cont.)

Page 17: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 17Database

Set Operations (cont.)

Cartesian product (cross product, cross join) R(A1, A2, ..., Am, B1, B2, ..., Bn)

R1(A1, A2, ..., Am) R2 (B1, B2, ..., Bn)

A tuple t exists in R for each combination of tuples t1 from R1 and t2 from R2 such that

t[A1, A2, ..., Am]=t1 and t[B1, B2, ..., Bn]=t2

If R1 has n1 tuples and R2 has n2 tuples, then R will have n1*n2 tuples

Page 18: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 18Database

Set Operations (cont.)

CARTESIAN PRODUCT is a meaningless operation on its own

It is useful when followed by a SELECT operation that matches values of attributes coming from the component relations

Page 19: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 19Database

Set Operations (cont.)

Example:

FEMALE_EMPS SEX=’F’(EMPLOYEE)

EMPNAMES FNAME, LNAME, SSN(FEMALE_EMPS)

EMP_DEPENDENTS EMPNAMES DEPENDENT

ACTUAL_DEPENDENTS SSN=ESSN(EMP_DEPENDENTS)

RESULT FNAME, LNAME,DEPENDENT_NAME(ACTUAL_DEPENDENTS)

Page 20: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 20Database

The Relational Algebra (cont.)

Page 21: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 21Database

Set Operations (cont.)

Page 22: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 22Database

Binary Operations

JOIN Operations THETA JOIN

» R(A1, A2, ..., Am, B1, B2, ..., Bn)

R1(A1, A2, ..., Am) c R2 (B1, B2, ..., Bn)

» The condition c is called a join condition of the form <condition> AND <condition> AND . . . AND <conditio

n>

– Each condition is of the form Ai Bj, Ai and Bj have the same domain

– is one of the comparison operators {=, <, , >, , }

Page 23: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 23Database

Binary Operations (cont.)

» Example

DEPT_MGR DEPARTMENT MGRSSN=SSN EMPLOYEE

» THETA JOIN is similar to a CARTESIAN PRODUCT followed by a SELECT, e.g.,

DEP_EMP DEPARTMENT EMPLOYEE

DEPT_MGR MGRSSN=SSN (DEP_EMP)

Page 24: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 24Database

Binary Operations (cont.)

EQUIJOIN» The join condition c involves only equality comparisons

(Ai=Bj) AND ... AND (Ah=Bk); 1<i,h<m, 1<j,k<n

» Ai, ..., Ah are called the join attributes of R1

» Bj, ..., Bk are called the join attributes of R2

» Notice that in the result of an EQUIJOIN one or more pairs of attributes have identical values in every tuple

e.g., MGRSSN and SSN in Figure 6.6

Page 25: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 25Database

Binary Operations (cont.) NATURAL JOIN (*)

R R1 *(join attributes of R1),(join attributes of R2) R2

» In a NATURAL JOIN, the redundant join attributes of R2 are eliminated from R» The equality condition is implied and need not be

specified» Example

Retrieve each EMPLOYEE's name and the name of the

DEPARTMENT he/she works for:

T EMPLOYEE *(DNO),(DNUMBER) DEPARTMENT

RESULT FNAME,LNAME,DNAME(T)

Page 26: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 26Database

Binary Operations (cont.)

» If the join attributes have the same names in both relations, they need not be specified and we can

write R R1 * R2

» Example Retrieve each EMPLOYEE's name and the name of

his/her SUPERVISOR:

SUPERVISOR(SUPERSSN,SFN,SLN) SSN,FNAME,LNAME(EMPLOYEE)

T EMPLOYEE * SUPERVISOR

RESULT FNAME,LNAME,SFN,SLN(T)

Page 27: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 27Database

Binary Operations (cont.)

» Note: In the original definition of NATURAL JOIN, the join attributes were required to have the same names in both relations

Page 28: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 28Database

Binary Operations (cont.)

The natural join or equijoin operation can also be specified among multiple tables, leading to an n-way join» For example, consider the following three-way

join:

((PROJECT DNUM=DNUMBERDEPARTMENT) MGRSSN=SSN EMPLOYEE)

Page 29: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 29Database

Binary Operations (cont.) A relation can have a set of join attributes to

join it with itself, e.g., JOIN ATTRIBUTES RELATIONSHIP

EMPLOYEE(1).SUPERSSN= EMPLOYEE(2) supervises

EMPLOYEE(2).SSN EMPLOYEE(1)

» This type of operation (called recursive closure algebra) is applied to a recursive relationship

» One can think of this as joining two distinct copies of the relation, although only one relation actually exists

» In this case, renaming can be useful

Page 30: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 30Database

Binary Operations (cont.)

» Example 1

Retrieve each EMPLOYEE's name and the name

of his/her SUPERVISOR: SUPERVISOR(SSSN,SFN,SLN) SSN,FNAME,LNAME(EMPLOYEE)

T EMPLOYEE SUPERSSN=SSSNSUPERVISOR

RESULT FNAME,LNAME,SFN,SLN(T)

Page 31: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 31Database

Binary Operations (cont.)Example 2

Retrieve all employees supervised by ‘James Borg’ at level 1:

BORG_SSN SSN(FNAME=’James’ AND LNAME=’Borg’(EMPLOYEE))

SUPERVISION(SSN1, SSN2) SSN, SUPERSSN(EMPLOYEE)

RESULT1(SSN) SSN1(SUPERVISION SSN2=SSN BORG_SSN)

Page 32: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 32Database

Binary Operations (cont.)Example 2 (cont.)

Retrieve all employees supervised by ‘James Borg’ at level 2:

RESULT2(SSN) SSN1(SUPERVISION SSN2=SSN RESULT1)

All employees supervised at levels 1 and 2 by ‘James Borg:’

RESULT RESULT2 RESULT1

Page 33: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 33Database

Binary Operations (cont.)

DIVISION Operation The DIVISION operation is applied to two relations R(Z) ÷ S(X), where X Z That is, the result of DIVISION is a relation

T(Y) = R(Z) ÷ S(X), Y = Z X Example

» Retrieve the names of employees who work on all the projects that ‘John Smith’ works on

Page 34: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 34Database

Binary Operations (cont.)

SMITH FNAME=’John’ AND LNAME=’Smith’(EMPLOYEE)

SMITH_PNOS PNO(WORKS_ONESSN=SSN SMITH)

SSN_PNOS ESSN,PNO(WORKS_ON)

SSNS(SSN) SSN_PNOS ÷ SMITH_PNOS

RESULT FNAME, LNAME(SSNS * EMPLOYEE)

Page 35: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 35Database

Binary Operations (cont.)

Page 36: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 36Database

Binary Operations (cont.)

Page 37: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 37Database

Binary Operations (cont.)

The DIVISION operator can be expressed as a sequence of , , and operations as follows:

T1 Y(R)

T2 Y((S T1) R)

T T1 T2

Page 38: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 38Database

Complete Set of Relational Algebra

Complete Set of Relational Algebra Operations All the operations discussed so far can be

described as a sequence of only the operations SELECT, PROJECT, UNION, SET DIFFERENCE, and CARTESIAN PRODUCT

Hence, the set {, } is called a complete set of relational algebra operations

Page 39: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 39Database

Complete Set of Relational Algebra (cont.)

Any query language equivalent to these operations is called relationally complete

For database applications, additional operations are needed that were not part of the original relational algebra. These include:

1. Aggregate functions and grouping

2. OUTER JOIN and OUTER UNION

Page 40: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 40Database

Additional Relational Operations

Generalized projection A useful operation for developing reports

with computed values output as columns Form of operation

F1, F2, …, Fn (R)

F1, F2, …, Fn are functions over attributes in

R

Page 41: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 41Database

Additional Relational Operations (cont.)

Example» Relation

EMPLOYEE(SSN, SALARY, DEDUCTION, YEARS_SERVICE)

» Relation expression

REPORT (Ssn, Net_salary, Bonus, Tax) (ssn, salary – deduction, 2000*years

_service, 0.25*salary (EMPLOYEE))

SSN Net_salary Bonus Tax

Page 42: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 42Database

Additional Relational Operations (cont.)

Aggregate functions Functions such as SUM, COUNT, AVERAG

E, MIN, MAX are often applied to sets of values or sets of tuples in database applications

<grouping attributes> <function list> (R)

The grouping attributes are optional <function list> is a list of (<function> <attribute>) pairs

Page 43: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 43Database

Additional Relational Operations (cont.)

Example 1

For each department, retrieve the department number, the number of employees, and the average salary (in the department):

» Attributes renaming

R(DNO,NUMEMPS,AVGSAL)

DNO COUNT SSN, AVERAGE SALARY (EMPLOYEE)

– DNO is called the grouping attribute

» No attributes renaming

DNO COUNT SSN, AVERAGE SALARY (EMPLOYEE)

Page 44: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 44Database

Additional Relational Operations (cont.)

The resulting attributes nam are in the form <function>_<attribute>

Page 45: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 45Database

Additional Relational Operations (cont.)

Example 2 -- no grouping attributes are specified Retrieve the average salary of all employees (no grouping needed)

R(AVGSAL) AVERAGE SALARY (EMPLOYEE)

– The functions are applied to the attribute values of all the tuples in the relation, so the resulting relation has a single tuple only

Page 46: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 46Database

Additional Relational Operations (cont.)

OUTER JOIN In a regular EQUIJOIN or NATURAL JOIN

operation, tuples in R1 or R2 that do not have matching tuples in the other relation do not appear in the result

Some queries require all tuples in R1 (or R2 or both) to appear in the result

When no matching tuples are found, nulls are placed for the missing attributes

Page 47: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 47Database

Additional Relational Operations (cont.)

LEFT OUTER JOIN R1 R2

»Lets every tuple in R1 appear in the result

»Example

List all employee names and also the name of the departments they manage if they happen to manage a department:

TEMP (EMPLOYEE SSN=MGRSSN DEPARTMENT)

RESULT FNAME, MINIT, LNAME, DNAME(TEMP)

Page 48: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 48Database

Additional Relational Operations (cont.)

Page 49: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 49Database

Additional Relational Operations (cont.)

RIGHT OUTER JOIN

R1 R2

»Lets every tuple in R2 appear in the result

FULL OUTER JOIN

R1 R2

»Lets every tuple in R1 or R2 appear in the result

Page 50: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 50Database

Additional Relational Operations (cont.)

OUTER UNION » It was developed to take the union of tuples from

two relations if the relations are not union compatible

» This operation will take the UNION of tuples in two relations that are partially compatible

» Example– STUDENT(Name, SSN, Department, Advisor) and F

ACULTY(Name, SSN, Department, Rank).

– The resulting relation

R(Name, SSN, Department, Advisor, Rank)

Page 51: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 51Database

Example Queries Query 1

Retrieve the name and address of all employees who work for the ‘Research’ department:

RESEARCH_DEPT DNAME=’Research’(DEPARTMENT)

RESEARCH_EMPS (RESEARCH_DEPTDNUMBER=DNO EMPLOYEE)

RESULT FNAME, LNAME, ADDRESS(RESEARCH_EMPS)

Page 52: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 52Database

Example Queries (cont.) Query 2

For every project located in ‘Stafford’, list the project number, the controlling department number, and the department manager’s last name, address, and birthdate:

STAFFORD_PROJS PLOCATION=’Stafford’(PROJECT) CONTR_DEPT

(STAFFORD_PROJS DNUM=DNUMBER DEPARTMENT) PROJ_DEPT_MGR (CONTR_DEPT MGRSSN=SSN EMPLOYEE)

RESULT PNUMBER, DNUM, LNAME, ADDRESS, BDATE(PROJ_DEPT_MGR)

Page 53: DatabaseIM ISU1 Fundamentals of Database Systems Chapter 6 The Relational Algebra

IM ISU 53Database

Chapter Summary

Relational Algebra Unary Relational Operations Relational Algebra Operations From Set

Theory Binary Relational Operations Additional Relational Operations Examples of Queries in Relational Algebra