ENACh06final Sham

Embed Size (px)

Citation preview

  • 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