of 57
7/28/2019 ENACh06final Sham
1/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe
Chapter 6The Relational Algebra
7/28/2019 ENACh06final Sham
2/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 2
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)
7/28/2019 ENACh06final Sham
3/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 3
Relational Algebra Overview
Relational algebra is the basic set of operationsfor the relational model
These operations enable a user to specify basic
retrieval requests (orqueries) The result of an operation is a new relation, which
may have been formed from one or more inputrelations
This property makes the algebra closed (all
objects in relational algebra are relations)
7/28/2019 ENACh06final Sham
4/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 4
Relational Algebra Overview (continued)
The algebra operations thus produce newrelations
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 arelation that represents the result of a databasequery (or retrieval request)
7/28/2019 ENACh06final Sham
5/57
Copyright 2007 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)
Additional Relational Operations OUTER JOINS AGGREGATE FUNCTIONS (These compute summary of
information: for example, SUM, COUNT, AVG, MIN, MAX)
7/28/2019 ENACh06final Sham
6/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 6
Database State for COMPANY
All examples discussed below refer to the COMPANY databaseshown here.
7/28/2019 ENACh06final Sham
7/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 7
Unary Relational Operations: SELECT
The SELECT operation (denoted by (sigma)) is used to select asubsetof 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 selectedwhereas theother 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)
7/28/2019 ENACh06final Sham
8/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 8
Unary Relational Operations: SELECT
In general, the selectoperation is denoted by
(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
7/28/2019 ENACh06final Sham
9/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 9
Unary Relational Operations: SELECT(contd.)
SELECT Operation Properties The SELECT operation (R) produces a relation
S that has the same schema (same attributes) as R SELECT is commutative:
(< condition2> (R)) = (< condition1> (R)) Because of commutativity property, a cascade (sequence) of
SELECT operations may be applied in any order: ( ( (R)) = ( ( ( R)))
A cascade of SELECT operations may be replaced by a singleselection with a conjunction of all the conditions:
(< cond2> ((R)) = AND < cond2> AND (R)))
The number of tuples in the result of a SELECT is less than(or equal to) the number of tuples in the input relation R
7/28/2019 ENACh06final Sham
10/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 10
The following query results refer to thisdatabase state
7/28/2019 ENACh06final Sham
11/57Copyright 2007 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 employees first and lastname and salary, the following is used:
LNAME, FNAME,SALARY(EMPLOYEE)
7/28/2019 ENACh06final Sham
12/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 12
Unary Relational Operations: PROJECT(cont.)
The general form of theprojectoperation is:(R)
(pi) is the symbol used to represent theprojectoperation is the desired list of attributes from
relation R.
The project operation removes any duplicate
tuples This is because the result of theprojectoperation
must be a set of tuples Mathematical sets do not allowduplicate elements.
7/28/2019 ENACh06final Sham
13/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 13
Unary Relational Operations: PROJECT(contd.)
PROJECT Operation Properties
The number of tuples in the result of projection(R) is always less or equal to the number of
tuples in R If the list of attributes includes a keyof R, then the
number of tuples in the result of PROJECT is equalto the number of tuples in R
PROJECT is notcommutative ( (R) ) = (R) as long as
contains the attributes in
7/28/2019 ENACh06final Sham
14/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 14
Examples of applying SELECT andPROJECT operations
7/28/2019 ENACh06final Sham
15/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 15
Relational Algebra Expressions
We may want to apply several relational algebraoperations one after the other
Either we can write the operations as a single
relational algebra expression by nesting theoperations, or
We can apply one operation at a time and createintermediate result relations.
In the latter case, we must give names to therelations that hold the intermediate results.
7/28/2019 ENACh06final Sham
16/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 16
Single expression versus sequence ofrelational operations (Example)
To retrieve the first name, last name, and salary of allemployees who work in department number 5, we mustapply a select and a project operation
We can write a single relational algebra expression asfollows:
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)
7/28/2019 ENACh06final Sham
17/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 17
Unary Relational Operations: RENAME
The RENAME operator is denoted by (rho)
In some cases, we may want to rename theattributes of a relation or the relation name or
both Useful when a query requires multiple
operations
Necessary in some cases (see JOIN operationlater)
7/28/2019 ENACh06final Sham
18/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 18
Unary Relational Operations: RENAME(contd.)
The general RENAME operation can beexpressed by any of the following forms:
S (B1, B2, , Bn )(R) changes both:
the relation name to S, and the column (attribute) names to B1, B1, ..Bn
S(R) changes:
the relation name only to S
(B1, B2, , Bn )(R) changes:
the column (attribute) namesonly to B1, B1, ..Bn
7/28/2019 ENACh06final Sham
19/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 19
Example of applying multiple operationsand RENAME
7/28/2019 ENACh06final Sham
20/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 20
Relational Algebra Operations fromSet 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 andS
Duplicate tuples are eliminated
The two operand relations R and S must be typecompatible (or UNION compatible) R and S must have the same number of attributes
Each pair of corresponding attributes must be typecompatible (have same or compatible domains)
7/28/2019 ENACh06final Sham
21/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 21
Relational Algebra Operations fromSet Theory: UNION
Example: To retrieve the social security numbers of all employees who
eitherwork in department 5(RESULT1 below) ordirectlysupervise an employee who works in department 5(RESULT2below)
We can use the UNION operation as follows:DEP5_EMPS DNO=5 (EMPLOYEE)
RESULT1 SSN(DEP5_EMPS)RESULT2(SSN) SUPERSSN(DEP5_EMPS)
RESULT RESULT1 RESULT2 The union operation produces the tuples that are in either
RESULT1 or RESULT2 or both
7/28/2019 ENACh06final Sham
22/57Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 22
Example of the result of a UNIONoperation
UNION Example
7/28/2019 ENACh06final Sham
23/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 23
Relational Algebra Operations fromSet Theory
Type Compatibility of operands is required for the binaryset operation UNION , (also for INTERSECTION , andSET DIFFERENCE, see next slides)
R1(A1, A2, ..., An) and R2(B1, B2, ..., Bn) are typecompatible if:
they have the same number of attributes, and
the domains of corresponding attributes are type compatible(i.e. dom(Ai)=dom(Bi) for i=1, 2, ..., n).
The resulting relation for R1R2 (also for R1R2, or R1R2, see next slides) has the same attribute names as thefirstoperand relation R1 (by convention)
7/28/2019 ENACh06final Sham
24/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 24
Relational Algebra Operations from SetTheory: INTERSECTION
INTERSECTION is denoted by
The result of the operation R S, is arelation that includes all tuples that are inboth R and S
The attribute names in the result will be thesame as the attribute names in R
The two operand relations R and S must betype compatible
7/28/2019 ENACh06final Sham
25/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 25
Relational Algebra Operations from SetTheory: SET DIFFERENCE (cont.)
SET DIFFERENCE (also called MINUS orEXCEPT) 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 betype compatible
7/28/2019 ENACh06final Sham
26/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 26
Example to illustrate the result of UNION,INTERSECT, and DIFFERENCE
7/28/2019 ENACh06final Sham
27/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 27
Some properties of UNION, INTERSECT,and DIFFERENCE
Notice that both union and intersection are commutativeoperations; that is
R S = S R, and R S = S R
Both union and intersection can be treated as n-aryoperations applicable to any number of relations as bothare associative operations; that is
R (S T) = (R S) T
(R S) T = R (S T)
The minus operation is not commutative; that is, ingeneral
RS S R
7/28/2019 ENACh06final Sham
28/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 28
Relational Algebra Operations from SetTheory: CARTESIAN PRODUCT
CARTESIAN (or CROSS) PRODUCT Operation
This operation is used to combine tuples from two relationsin 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 eachcombination of tuplesone from R and one from S.
Hence, if R has nR tuples (denoted as |R| = nR ), and S hasnS tuples, then R x S will have nR * nS tuples.
The two operands do NOT have to be "type compatible
7/28/2019 ENACh06final Sham
29/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 29
Relational Algebra Operations from SetTheory: CARTESIAN PRODUCT (cont.)
Generally, CARTESIAM PRODUCT is not ameaningful operation Can become meaningful when followed by other
operations
Example (not meaningful): FEMALE_EMPS SEX=F(EMPLOYEE) EMPNAMES FNAME, LNAME, SSN (FEMALE_EMPS) EMP_DEPENDENTS EMPNAMES x DEPENDENT
EMP_DEPENDENTS will contain every combination ofEMPNAMES and DEPENDENT whether or not they are actually related
7/28/2019 ENACh06final Sham
30/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 30
Relational Algebra Operations from SetTheory: CARTESIAN PRODUCT (cont.)
To keep only combinations where theDEPENDENT is related to the EMPLOYEE, weadd 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 employeesand their dependents
7/28/2019 ENACh06final Sham
31/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 31
Example of applying CARTESIANPRODUCT
7/28/2019 ENACh06final Sham
32/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 32
Binary Relational Operations: JOIN
JOIN Operation (denoted by ) The sequence of CARTESIAN PRODUCT followed by
SELECT is used quite commonly to identify and selectrelated 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 uscombine 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 S where R and S can be any relations that result from general
relational algebra expressions.
7/28/2019 ENACh06final Sham
33/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 33
Binary Relational Operations: JOIN (cont.)
Example: Suppose that we want to retrieve the name of themanager of each department. To get the managers name, we need to combine each
DEPARTMENT tuple with the EMPLOYEE tuple whose SSNvalue 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
7/28/2019 ENACh06final Sham
34/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 34
Example of applying the JOIN operation
DEPT_MGR DEPARTMENT MGRSSN=SSN EMPLOYEE
7/28/2019 ENACh06final Sham
35/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 35
Some properties of JOIN
Consider the following JOIN operation:
R(A1, A2, . . ., An) S(B1, B2, . . ., Bm)
R.Ai=S.Bj
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 eachcombination of tuplesr from R and s from S, but only ifthey satisfy the join condition r[Ai]=s[Bj]
Hence, if R has nR tuples, and S has nS tuples, then the joinresult will generally have less than nR * nS tuples.
Only related tuples (based on the join condition) will appearin the result
7/28/2019 ENACh06final Sham
36/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 36
Some properties of JOIN
The general case of JOIN operation is called aTheta-join: R S
theta
The join condition is called theta Theta can be any general boolean expression on
the attributes of R and S; for example: R.Ai
7/28/2019 ENACh06final Sham
37/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 37
Binary Relational Operations: EQUIJOIN
EQUIJOIN Operation
The most common use of join involves joinconditions with equality comparisons only
Such a join, where the only comparison operatorused is =, is called an EQUIJOIN.
In the result of an EQUIJOIN we always have oneor more pairs of attributes (whose names need notbe identical) that have identical values in everytuple.
The JOIN seen in the previous example was anEQUIJOIN.
7/28/2019 ENACh06final Sham
38/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 38
Binary Relational Operations:NATURAL JOIN Operation
NATURAL JOIN Operation
Another variation of JOIN called NATURAL JOIN denoted by * was created to get rid of the second(superfluous) attribute in an EQUIJOIN condition.
because one of each pair of attributes with identical values issuperfluous
The standard definition of natural join requires that the twojoin attributes, or each pair of corresponding join attributes,have the same name in both relations
If this is not the case, a renaming operation is applied first.
Bi R l ti l O ti
7/28/2019 ENACh06final Sham
39/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 39
Binary Relational OperationsNATURAL JOIN (contd.)
Example: To apply a natural join on the DNUMBER attributes ofDEPARTMENT and DEPT_LOCATIONS, it is sufficient to write:
DEPT_LOCS DEPARTMENT * DEPT_LOCATIONS
Only attribute with the same name is DNUMBER
An implicit join condition is created based on this attribute:
DEPARTMENT.DNUMBER=DEPT_LOCATIONS.DNUMBER
Another example: Q R(A,B,C,D) * S(C,D,E)
The implicit join condition includes each pairof attributes with thesame name, ANDed together: R.C=S.C AND R.D=S.D
Result keeps only one attribute of each such pair: Q(A,B,C,D,E)
7/28/2019 ENACh06final Sham
40/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 40
Example of NATURAL JOIN operation
7/28/2019 ENACh06final Sham
41/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 41
Complete Set of Relational Operations
The set of operations including SELECT ,PROJECT , UNION , DIFFERENCE - ,RENAME , and CARTESIAN PRODUCT X is
called a complete setbecause any otherrelational algebra expression can be expressedby a combination of these five operations.
For example:
R S = (R S ) ((R - S) (S - R))
R S = (R X S)
7/28/2019 ENACh06final Sham
42/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 42
Recap of Relational Algebra Operations
7/28/2019 ENACh06final Sham
43/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 43
Additional Relational Operations:Aggregate Functions and Grouping
A type of request that cannot be expressed in the basicrelational algebra is to specify mathematical aggregatefunctions on collections of values from the database.
Examples of such functions include retrieving the averageor total salary of all employees or the total number of
employee tuples. These functions are used in simple statistical queries that
summarize information from the database tuples.
Common functions applied to collections of numericvalues include SUM, AVERAGE, MAXIMUM, and MINIMUM.
The COUNT function is used for counting tuples orvalues.
7/28/2019 ENACh06final Sham
44/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 44
Aggregate Function Operation
Use of the Aggregate Functional operation
MAX Salary (EMPLOYEE) retrieves the maximum salary valuefrom the EMPLOYEE relation
MIN Salary (EMPLOYEE) retrieves the minimum Salary value
from the EMPLOYEE relation SUM Salary (EMPLOYEE) retrieves the sum of the Salary
from the EMPLOYEE relation
COUNT SSN, AVERAGE Salary (EMPLOYEE) computes the count
(number) of employees and their average salary Note: count just counts the number of rows, without removing
duplicates
7/28/2019 ENACh06final Sham
45/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 45
Using Grouping with Aggregation
The previous examples all summarized one or moreattributes for a set of tuples Maximum Salary or Count (number of) Ssn
Grouping can be combined with Aggregate Functions Example: For each department, retrieve the DNO,
COUNT SSN, and AVERAGE SALARY A variation of aggregate operation allows this:
Grouping attribute placed to left of symbol Aggregate functions to right of symbol
DNO
COUNT SSN, AVERAGE Salary (EMPLOYEE) Above operation groups employees by DNO (department
number) and computes the count of employees andaverage salary per department
f f
7/28/2019 ENACh06final Sham
46/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 46
Examples of applying aggregate functionsand grouping
Ill i f i d
7/28/2019 ENACh06final Sham
47/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 47
Illustrating aggregate functions andgrouping
7/28/2019 ENACh06final Sham
48/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 48
Additional Relational Operations (cont.)
Recursive Closure Operations Another type of operation that, in general,
cannot be specified in the basic originalrelational algebra is recursive closure. This operation is applied to a recursive
relationship.
An example of a recursive operation is toretrieve all SUPERVISEES of an EMPLOYEEe at all levels that is, all EMPLOYEE edirectly supervised by e; all employees edirectly supervised by each employee e; allemployees e directly supervised by eachemployee e; and so on.
7/28/2019 ENACh06final Sham
49/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 49
Additional Relational Operations (cont.)
Although it is possible to retrieve employees ateach level and then take their union, we cannot,in general, specify a query such as retrieve the
supervisees of James Borg at all levels withoututilizing a looping mechanism.
The SQL3 standard includes syntax for recursiveclosure.
7/28/2019 ENACh06final Sham
50/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 50
Additional Relational Operations (cont.)
7/28/2019 ENACh06final Sham
51/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 51
Additional Relational Operations (cont.)
The OUTER JOIN Operation
In NATURAL JOIN and EQUIJOIN, tuples without amatching(orrelated) tuple are eliminated from the joinresult
Tuples with null in the join attributes are also eliminated This amounts to loss of information.
A set of operations, called OUTER joins, can be used whenwe want to keep all the tuples in R, or all those in S, or allthose in both relations in the result of the join, regardless ofwhether or not they have matching tuples in the otherrelation.
7/28/2019 ENACh06final Sham
52/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 52
Additional Relational Operations (cont.)
The left outer join operation keeps every tuple inthe first or left relation R in R S; if no matchingtuple is found in S, then the attributes of S in the
join result are filled or padded with null values.
A similar operation, right outer join, keeps everytuple in the second or right relation S in the resultof R S.
A third operation, full outer join, denoted bykeeps all tuples in both the left and the rightrelations when no matching tuples are found,padding them with null values as needed.
7/28/2019 ENACh06final Sham
53/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 53
Additional Relational Operations (cont.)
E l f Q i i R l ti l
7/28/2019 ENACh06final Sham
54/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 54
Examples of Queries in RelationalAlgebra : Procedural Form
Q1: Retrieve the name and address of all employees who work for the
Research department.
RESEARCH_DEPTDNAME=Research (DEPARTMENT)RESEARCH_EMPS (RESEARCH_DEPT DNUMBER= DNOEMPLOYEEEMPLOYEE)
RESULT FNAME, LNAME, ADDRESS (RESEARCH_EMPS)
Q6: Retrieve the names of employees who have no dependents.
ALL_EMPS SSN(EMPLOYEE)
EMPS_WITH_DEPS(SSN) ESSN(DEPENDENT)
EMPS_WITHOUT_DEPS (ALL_EMPS - EMPS_WITH_DEPS)
RESULT LNAME, FNAME (EMPS_WITHOUT_DEPS * EMPLOYEE)
E l f Q i i R l ti l
7/28/2019 ENACh06final Sham
55/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 55
Examples of Queries in RelationalAlgebra Single expressions
As a single expression, these queries become: Q1: Retrieve the name and address of all employees who work for the
Research department.
Fname, Lname, Address( Dname= Research
(DEPARTMENT Dnumber=Dno(EMPLOYEE))
Q6: Retrieve the names of employees who have no dependents.
Lname, Fname((Ssn(EMPLOYEE) Ssn (Essn
(DEPENDENT))) EMPLOYEE)
7/28/2019 ENACh06final Sham
56/57
Copyright 2007 Ramez Elmasri and Shamkant B. Navathe Slide 6- 56
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
7/28/2019 ENACh06final Sham
57/57