Presentation is loading. Please wait.

Presentation is loading. Please wait.

Database Systems 主講人 : 陳建源 日期 :99/11/30 研究室 : 法 401 Chapter 6 The Relational Algebra.

Similar presentations


Presentation on theme: "Database Systems 主講人 : 陳建源 日期 :99/11/30 研究室 : 法 401 Chapter 6 The Relational Algebra."— Presentation transcript:

1 Database Systems 主講人 : 陳建源 日期 :99/11/30 研究室 : 法 401 Email: cychen07@nuk.edu.tw Chapter 6 The Relational Algebra

2 1. Relational Algebra Overview 2. Unary Relational Operations 3. Set Operations 4. Binary Relational Operations 5. Complete Set of Relational Algebra 6. Additional Relational Operations 7. Examples Queries 8. Relational calculus 9. Summary Outline

3 1. 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

4 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) 1. Relational Algebra Overview

5 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 2. Unary Relational Operations

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

7 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 2. Unary Relational Operations

8  FNAME,LNAME,SALARY (EMPLOYEE)  SEX,SALARY (EMPLOYEE) 2. Unary Relational Operations

9 RENAME operation  (rho) General form:  S (B 1, B 2, …, B n ) (R) changes both: the relation name to S, and the column (attribute) names to B 1, B 2, …..B n  S (R) changes: the relation name only to S  (B 1, B 2, …, B n ) (R) changes: the column (attribute) names only to B 1, B 2, …..B n 2. Unary Relational Operations

10 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)) 2. Unary Relational Operations

11 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) 2. Unary Relational Operations

12

13 Operations from set theory Binary operations from mathematical set theory UNION: R 1  R 2 INTERSECTION: R 1  R 2 SET DIFFERENCE: R 1 - R 2 CARTESIAN PRODUCT: R 1  R 2 3. Set Operations

14 Union compatibility For , , -, the operand relations R 1 (A 1, A 2,..., A n ) and R 2 (B 1, B 2,..., B n ) 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 R 1 (by convention) 3. Set Operations

15 The Relational Algebra (cont.) 

16 3. Set Operations

17 Cartesian product (cross product, cross join) R(A 1, A 2,..., A m, B 1, B 2,..., B n )  R 1 (A 1, A 2,..., A m )  R 2 (B 1, B 2,..., B n ) A tuple t exists in R for each combination of tuples t 1 from R 1 and t 2 from R 2 such that t[A 1, A 2,..., A m ]=t 1 and t[B 1, B 2,..., B n ]=t 2 If R 1 has n 1 tuples and R 2 has n 2 tuples, then R will have n 1 *n 2 tuples 3. Set Operations

18 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

19 3. Set Operations 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)

20 The Relational Algebra (cont.)

21 3. Set Operations

22 JOIN Operations THETA JOIN R(A 1, A 2,..., A m, B 1, B 2,..., B n )  R 1 (A 1, A 2,..., A m ) c R 2 (B 1, B 2,..., B n ) The condition c is called a join condition of the form AND AND... AND Each condition is of the form A i  B j, A i and B j have the same domain  is one of the comparison operators {=,, ,  } 4. Binary Relational Operations

23 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) 4. Binary Relational Operations

24 EQUIJOIN The join condition c involves only equality comparisons (A i =B j ) AND... AND (A h =B k ); 1<i,h<m, 1<j,k<n A i,..., A h are called the join attributes of R 1 B j,..., B k are called the join attributes of R 2 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 4. Binary Relational Operations

25 NATURAL JOIN (*) R  R 1 * (join attributes of R1),(join attributes of R2) R 2 In a NATURAL JOIN, the redundant join attributes of R 2 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) 4. Binary Relational Operations

26 If the join attributes have the same names in both relations, they need not be specified and we can write R  R 1 * R 2 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) 4. Binary Relational Operations

27 Note: In the original definition of NATURAL JOIN, the join attributes were required to have the same names in both relations 4. Binary Relational Operations

28 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=DNUMBER DEPARTMENT) MGRSSN=SSN EMPLOYEE) 4. Binary Relational Operations

29 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 4. Binary Relational Operations

30 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=SSSN SUPERVISOR RESULT   FNAME,LNAME,SFN,SLN (T) 4. Binary Relational Operations

31 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) 4. Binary Relational Operations

32 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 4. Binary Relational Operations

33 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 4. Binary Relational Operations

34 SMITH   FNAME=’John’ AND LNAME=’Smith’ (EMPLOYEE) SMITH_PNOS   PNO (WORKS_ON ESSN=SSN SMITH) SSN_PNOS   ESSN,PNO (WORKS_ON) SSNS(SSN)  SSN_PNOS ÷ SMITH_PNOS RESULT   FNAME, LNAME (SSNS * EMPLOYEE) 4. Binary Relational Operations

35

36

37 TRSTRS

38 The DIVISION operator can be expressed as a sequence of , , and - operations as follows: T 1   Y (R) T 2   Y ((S  T 1 ) - R) T  T 1 - T 2 4. Binary Relational Operations

39 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 5. Complete Set of Relational Algebra

40 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 5. Complete Set of Relational Algebra

41

42

43  Query tree  Represents the input relations of query as leaf nodes of the tree  Represents the relational algebra operations as internal nodes

44 5. Complete Set of Relational Algebra ((( (PROJECT)) (DEPARTMENT)) (EMPLOYEE))

45 Generalized projection A useful operation for developing reports with computed values output as columns Form of operation  F 1, F 2, …, F n (R) F 1, F 2, …, F n are functions over attributes in R 6. Additional Relational Operations

46 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)) SSNNet_salaryBonusTax 6. Additional Relational Operations

47 Aggregate functions Functions such as SUM, COUNT, AVERAGE, MIN, MAX are often applied to sets of values or sets of tuples in database applications  (R) The grouping attributes are optional is a list of ( ) pairs 6. Additional Relational Operations

48 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) 6. Additional Relational Operations

49 The resulting attributes nam are in the form _ 6. Additional Relational Operations

50 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 6. Additional Relational Operations

51 OUTER JOIN In a regular EQUIJOIN or NATURAL JOIN operation, tuples in R 1 or R 2 that do not have matching tuples in the other relation do not appear in the result Some queries require all tuples in R 1 (or R 2 or both) to appear in the result When no matching tuples are found, nulls are placed for the missing attributes 6. Additional Relational Operations

52 LEFT OUTER JOIN R 1 R 2 Lets every tuple in R 1 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) 6. Additional Relational Operations

53

54 RIGHT OUTER JOIN R 1 R 2 Lets every tuple in R 2 appear in the result FULL OUTER JOIN R 1 R 2 Lets every tuple in R 1 or R 2 appear in the result 6. Additional Relational Operations

55 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 FACULTY(Name, SSN, Department, Rank). The resulting relation R(Name, SSN, Department, Advisor, Rank) 6. Additional Relational Operations

56 Query 1 Retrieve the name and address of all employees who work for the ‘Research’ department: RESEARCH_DEPT   DNAME=’Research’ (DEPARTMENT) RESEARCH_EMPS  (RESEARCH_DEPT DNUMBER=DNO EMPLOYEE) RESULT   FNAME, LNAME, ADDRESS (RESEARCH_EMPS) 7. Example Queries

57 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) 7. Example Queries

58 8. Relational Calculus  Declarative expression  Specify a retrieval request nonprocedural language  Any retrieval that can be specified in basic relational algebra  Can also be specified in relational calculus

59 8. Relational Calculus  Tuple variables  Ranges over a particular database relation  Satisfy COND(t):  Specify:  Range relation R of t  Select particular combinations of tuples  Set of attributes to be retrieved (requested attributes)

60 8. Relational Calculus  General expression of tuple relational calculus is of the form:  Truth value of an atom  Evaluates to either TRUE or FALSE for a specific combination of tuples  Formula (Boolean condition)  Made up of one or more atoms connected via logical operators AND, OR, and NOT

61 8. Relational Calculus  Universal quantifier ( ∀ )  Existential quantifier ( ∃ )  Define a tuple variable in a formula as free or bound

62 8. Relational Calculus

63

64  Transform one type of quantifier into other with negation (preceded by NOT)  AND and OR replace one another  Negated formula becomes unnegated  Unnegated formula becomes negated

65 8. Relational Calculus

66  Guaranteed to yield a finite number of tuples as its result  Otherwise expression is called unsafe  Expression is safe  If all values in its result are from the domain of the expression

67 8. Relational Calculus  Differs from tuple calculus in type of variables used in formulas  Variables range over single values from domains of attributes  Formula is made up of atoms  Evaluate to either TRUE or FALSE for a specific set of values Called the truth values of the atoms

68 8. Relational Calculus  QBE language  Based on domain relational calculus

69 9. Summary Relational Algebra Unary Relational Operations Relational Algebra Operations From Set Theory Binary Relational Operations Additional Relational Operations Examples of Queries in Relational Algebra  Relational calculus  Based predicate calculus


Download ppt "Database Systems 主講人 : 陳建源 日期 :99/11/30 研究室 : 法 401 Chapter 6 The Relational Algebra."

Similar presentations


Ads by Google