Download presentation
Presentation is loading. Please wait.
Published byEverett Daniels Modified over 8 years ago
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
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
37
TRSTRS
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
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
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.