Download presentation
1
Advanced Relational Algebra & SQL (Part1 )
Chapter 1 Advanced Relational Algebra & SQL (Part1 ) Department of Computer Science, Umm Al-Qura University University year: 1435/1436 Advanced Database System
2
Outline Relational Algebra Relational Calculus
Unary Relational Operations Relational Algebra Operations From Set Theory Binary Relational Operations Additional Relational Operations Examples of Queries in Relational Algebra Relational Calculus Tuple Relational Calculus Domain Relational Calculus Advanced Database System
3
Relational Algebra Overview
Relational algebra is the basic set of operations for the relational model These operations enable a user to specify basic retrieval requests (or queries) The result of an operation is a new relation, which may have been formed from one or more input relations This property makes the algebra “closed” (all objects in relational algebra are relations) Advanced Database System
4
Relational Algebra Overview (continued)
The algebra operations thus produce new relations 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 a relation that represents the result of a database query (or retrieval request) Advanced Database System
5
Operators Basic operations: Additional operations:
Selection ( (sigma)) Selects a subset of rows from relation. Projection ( (pi)) Deletes unwanted columns from relation. Cross-product ( (Cartesian product)) Allows us to combine two relations. Set-difference ( (minus)) Tuples in relation.1, but not in relation.2 Union ( ) Tuples in relation.1 and in relation. 2. Additional operations: Intersection ( ) Join ( ) division, renaming Since each operation returns a relation, operations can be composed. Advanced Database System
6
Unary Relational Operations: SELECT
In general, the select operation is denoted by <selection condition>(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 Advanced Database System
7
Unary Relational Operations: SELECT
The SELECT operation (denoted by ) is used to select a subset of the tuples from a relation based on a selection condition. 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) Advanced Database System
8
Unary Relational Operations: PROJECT
The general form of the project operation is: <attribute list>(R) (pi) is the symbol used to represent the project operation <attribute list> is the desired list of attributes from relation R. The project operation removes any duplicate tuples This is because the result of the project operation must be a set of tuples Mathematical sets do not allow duplicate elements. Advanced Database System
9
Unary Relational Operations: PROJECT (cont)
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 employee’s first and last name and salary, the following is used: LNAME, FNAME,SALARY(EMPLOYEE Advanced Database System
10
Examples of applying SELECT and PROJECT operations
Advanced Database System
11
Binary Relational Operations: JOIN
JOIN Operation (denoted by ) The sequence of CARTESIAN PRODECT followed by SELECT is used quite commonly to identify and select related 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 us combine 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 <join condition>S where R and S can be any relations that result from general relational algebra expressions. Advanced Database System
12
Binary Relational Operations: JOIN (cont.)
Example: Suppose that we want to retrieve the name of the manager of each department. To get the manager’s name, we need to combine each DEPARTMENT tuple with the EMPLOYEE tuple whose SSN value 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 Advanced Database System
13
Example of applying the JOIN operation
Advanced Database System
14
Natural Join Operator Natural join is a dyadic operator that is written as R S where R and S are relations. The result of the natural join is the set of all combinations of tuples in R and S that are equal on their common attribute names. Advanced Database System
15
Natural Join Example For an example, consider the tables Employee and Dept and their natural join: Advanced Database System
16
Renaming In relational algebra, a rename is a unary operation written as ρ a / b (R) where: a and b are attribute names R is a relation Examples: 1) ρemployee(Emp): Changes the name of Emp table to employee. 2) Renaming and Union Advanced Database System
17
Cartesian Product In mathematics, it is a set of all pairs of elements (x, y) such that x belongs to X and y to Y. It defines a relation that is the concatenation of every tuple of relation R with every tuple of relation S. Example: Advanced Database System
18
Theta (θ) join Theta joins combines tuples from different relations provided they satisfy the theta condition. A Cartesian product with a condition applied: R1 ⋈θ R2 Example: Advanced Database System
19
Semi join Operator The semi join is joining similar to the natural join and written as R S where R and S are relations. The result of the semi join is only the set of all tuples in R for which there is a tuple in S that is equal on their common attribute names. Example: consider the tables Employee and Dept and their semi join: Advanced Database System
20
Outer join Operator Left outer join
R <R.primary_key = S.foreign_key> S All rows from R are retained and unmatched rows of S are padded with NULL Right outer join R <R.primary_key = S.foreign_key> S All rows from S are retained and unmatched rows of R are padded with NULL Advanced Database System
21
Right Outerjoin Example
For an example consider the tables Students and Courses and their right outer join: Advanced Database System
22
Left Outer join Example
For an example consider the tables Students and Courses and their left outer join: Advanced Database System
23
Union Takes the set of rows in each table and combines them, eliminating duplicates Participating relations must be compatible, ie have the same number of columns, and the same column names, domains, and data types Advanced Database System
24
Set Operations-Union Takes the set of rows in each table and combines them, eliminating duplicates Participating relations must be compatible, ie have the same number of columns, and the same column names, domains, and data types R ᴜ S R S A B a1 b1 a2 b2 a3 b3 A B a1 b1 a2 b2 A B a2 b2 a3 b3 Advanced Database System
25
Intersection Takes the set of rows that are common to each relation
Participating relations must be compatible S R R ∩ S A B a1 b1 a2 b2 A B a2 b2 a3 b3 A B a2 b2 Advanced Database System
26
Difference Takes the set of rows in the first relation but not the second Participating relations must be compatible R S R - S A B a1 b1 a2 b2 A B a2 b2 a3 b3 A B a1 b1 Advanced Database System
27
Set vs Bag semantic A bag (or multiset ) is like a set, but an element may appear more than once. Example1: {1,2,1,3} is a bag. Example2: {1,2,3} is also a bag that happens to be a set. The multi-set {1, 2, 1, 3} is different to multi-set {1, 2, 3}. Advanced Database System
28
The relational algebra on multi-sets: examples
Advanced Database System
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.