Part3 Ch8 Relational Algebra

Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

Part3: The Relational Data Model and SQL

Chapter 8: Relational Algebra

Outline:

8.1 Introduction
8.2 Unary Relational Operations.
 Select Operator (σ)
 Project Operator (π)
 Rename Operator (ρ)
 Assignment Operator (←)

8.3 Binary Relational Operations.


 Set Operators
o Union Operator (  )
o Intersection Operator (∩)
o Set Difference or Minus Operator (-)
 Cartesian Product Operator (×)
 Join Operator
o Theta Join ( ϴ)
o Natural Join ( ) or (*)
o Outer Join

8.4 Examples of Queries in Relational Algebra.

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

1
8.1 Introduction

Relational Query Languages

 Languages for describing queries on a relational database


o Structured Query Language (SQL)
 Declarative (Nonprocedural)
o Relational Algebra
 Intermediate language used within DBMS
 Procedural
 Procedural: Relational expression specifies query by describing an algorithm (the
sequence in which operators are applied) for determining the result of an
expression

 The relational algebra was developed before the SQL language.

 The relational algebra is used as a basis for implementing and optimizing queries
in the query processing and optimization modules that are integral parts of
relational database management systems (RDBMSs)

 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
o This property makes the algebra “closed” (all objects in relational algebra
are relations)
 The algebra operations produce new relations
o These can be further manipulated using operations of the same algebra
 A sequence of relational algebra operations forms a relational algebra expression
o The result of a relational algebra expression is also a relation that
represents the result of a database query (or retrieval request)

 The fundamental operations in the relational algebra are select, project, union, set
difference, cartesian product, and rename.

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

2
8.2 Unary Relational Operations

Select Operator (σ)

 Select a subset of rows from a relation that satisfying a condition.


Syntax:
condition (R)

o The symbol  (sigma) is used to denote the select operator.


o The selection condition is a Boolean expression specified on the attributes
of relation R.
 condition (R) is equivalent to “Select * from R where <condition>;”

 Example: Consider the following relation r.


r A B C D
X X 1 8
X Y 5 7
Y Y 3 3
Y Y 12 10

1. A=B (r) = Select * from r where A=B;

A B C D
X X 1 8
Y Y 3 3
Y Y 12 10

2. D>5 (r) = Select * from r where D>5;

A B C D
X X 1 8
X Y 5 7
Y Y 12 10

 We can combine several conditions into a larger condition by using the


connectives ^ (and), ᵛ (or), and ¬ (not).
 Example:
A=B ^ D>5 (r) = Select * from r where A=B and D>5;

A B C D
X X 1 8
Y Y 12 10

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

3
 Example: Retrieve the Id, Name, Address of students who live in Amman.
Student Id Name Address
1108 Ali Amman
1453 Ahmad Salt
1002 Omar Amman
2603 Anas Zarqa

address=’Amman’ (Student) = Select * from Student where address=’Amman’;

Id Name Address
1108 Ali Amman
1002 Omar Amman

 Example: Retrieve the Id, Name, Address of student who’s name is Ahmad or
students who live in Amman.
name=’Ahmad’ ᵛ ddress=’Amman’ (Student) =
Select * from Student where name = ’Ahmad’ or address = ‘Amman’;

Id Name Address
1108 Ali Amman
1453 Ahmad Salt
1002 Omar Amman

 Select Operation Properties:


condition1 (condition2 (R)) = condition2 (condition1 (R)) = condition1^ condition2 (R)

Project Operator (π)

 Selecting a subset of the attributes of a relation by specifying the name of the


required attributes.
 The Project creates a vertical partitioning.
Syntax:
π <Attribute list> (R)

o The symbol π (pi) is used to denote the project operator.


o <Attribute list> is the desired list of attributes from the attributes of
relation R.
o π <Attribute list> (R) is equivalent to “Select Distinct Attribute_List from R;”
 The project operation removes any duplicate rows.

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

4
 Example: Consider the following relation r.
r A B C D
X X 1 8
X Y 5 7
Y Y 3 3
Y Y 12 10

π A,B (r) = Select Distinct A, B From r;

A B
X X
X Y
Y Y

 Project operation properties:


o π list1 (π list2 (r)) = π list1(r) , where list2 contains the attributes of list1
o The number of rows in the result of projection π list (r) is always less or
equal to the number of rows in r.
o If the list of attributes includes a key of r, the number of rows is equal to
the number of rows in r.

 Composition of Relational Operations (Expression)


o Relational algebra operations can be composed together into a relational
algebra expression.
o Example:
π B (C >= 3 (r)) = Select Distinct B From r Where C >= 3;

B
Y

Assignment Operator (←)

 We may want to apply several relational algebra operations one after other. Either
we can write the operations as a single relational algebra expression by nesting
the operations, or we can apply one operation at a time and create intermediate
result relations. In the latter case, we must give names to the relations that hold
the intermediate results.
 Example:
r1 ← C>=3 (r)
π B (r1)

B
Y

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

5
Rename Operator (ρ)
 Allows us to refer to a relation by more than one name.
Syntax:
1. x (R)
Returns the expression R under the name X
2. x (A1, A2, .. ,An) (R)
If a relational-algebra expression R has arity n, then returns the
result of expression R under the name X, and with the attributes
renamed to A1 , A2 , …., An .
3.  (A1, A2, .. ,An) (R)
Rename the attributes names without changing the relation name

8.3 Binary Relational Operations

Set Operators
 Relation is a set of tuples, so set operations should apply: , ,  (set difference)
 Result of combining two relations with a set operator is a relation (all its elements
must be tuples having same structure).

1. Union Operator (  )
o The result of this operation, denoted by R S, is a relation that includes all
rows that are either in R or in S or in both R and S. Duplicate rows are
eliminated.
o Example:
R S

 =

o For R S to be valid. (The two operands must be “type compatible”)


1. R, S must have the same arity (same number of attributes).
2. The attribute domains must be compatible (example: 2nd column of
R deals with the same type of values as does the 2nd column of S)

o R S is equivalent to “Select * From R Union Select * From S;”


o Example:
Tables:
Person (SSN, Name, Address, Hobby)
Professor (Id, Name, Office, Phone)
are not union compatible.
But
 Name (Person) and  Name (Professor)
are union compatible so
 Name (Person)   Name (Professor)
makes sense.

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

6
o Example:
r
A B
X 1
X 2
Y 1

s
A B
X 2
Y 3

rs = Select * From r Union Select * from s;

A B
X 1
X 2
Y 1
Y 3

o Example: retrieve the SSNs of all employees who either work in department
5 or directly supervise an employee who works in department 5.

Employee SSN EName Sal SuperSSN DNo

Dep5_Emps ← DNo=5 (Employee)


Result1 ← πSSN (Dep5_Emps)
Result2 ← πSuperSSN (Dep5_Emps)
Result ← Result1 Result2

o Example: Retrieve the SSNs and names of all employees who work in
department 10 and have a salary > 1000. (Use set operator instead of and
operator).

πSSN, Ename ((DNo=10 (Employee)) ∩ (sal>1000 (Employee)))

2. Intersection Operator (∩)


o The result of this operation, denoted by R ∩S, is a relation that includes all
rows that are in both R and S. the two operands must be “type compatible”.
o Example:

R S

∩ =

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

7
o R ∩S is equivalent to “Select * From R Intersect Select * From S;”

o Example:
r A B
X 1
X 2
Y 1

s
A B
X 2
Y 3

r∩s = Select * from r Intersect Select * from s;


A B
X 2

3. Set Difference Operator (-)


o The result of this operation, denoted by R -S, is a relation that includes all
rows that are in R but not in S. the two operands must be “type compatible”.
o Example:

R S

=
-

o R -S is equivalent to “Select * From R Minus Select * From S;”


o Example:
r
A B
X 1
X 2
Y 1

s
A B
X 2
Y 3

r – s = Select * from r Minus Select * from s;

A B
X 1
Y 1

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

8
s-r
A B
Y 3

 Set Operators Properties:


o The union and the intersection are commutative operations
R S = S R, and R ∩S = S ∩R

o The union and the intersection are associative operations


R S T R  S)  T, and R ∩S ∩T R ∩ S) ∩ T

o The set difference operation is not commutative operation


R – S ≠ S – R and (R – S) – T ≠ R – (S – T)

 Example: consider the following relations


R1={X, Y, Z, W}
R2={X, A, B, C}
R3={X, Y, A, S, D}
Proof that (R – S) – T ≠ R – (S – T)

Cartesian (or Cross Product) Operator (×)

 If R and S are two relations, R  S is the set of all concatenated rows <x,y>,
where x is a row in R and y is a row in S
o R and S need not be type compatible
 R  S is expensive to compute:
o Factor of two in the size of each row
o Quadratic in the number of rows
 If R has nR rows (denoted as |R| = nR ), and S has nS rows, then R x S will have
nR * nS rows.
 R  S is equivalent to “Select * From R, S;”

o Example:
r A B
X 1
Y 2

s
C D E
X 10 E1
Y 10 E1
Y 20 E2
Z 10 E2

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

9
r × s = Select * from r,s;

A B C D E
X 1 X 10 E1
X 1 Y 10 E1
X 1 Y 20 E2
X 1 Z 10 E2
Y 2 X 10 E1
Y 2 Y 10 E1
Y 2 Y 20 E2
Y 2 Z 10 E2
A=C (r × s) = select * from r,s where A=C;

A B C D E
X 1 X 10 E1
Y 2 Y 10 E1
Y 2 Y 20 E2

 Generally, CROSS PRODUCT is not a meaningful operation


o Can become meaningful when followed by other operations
o Example (not meaningful):

Employee SSN FName LName Gender SuperSSN DNo

Dependent ESSN Dependent_Name Gender BDate Relationship

Female_Emps   Gender=’F’(Employee)
EmpNames  π FNAME, LNAME, SSN (Female_Emps)
Emp_Dependents  EmpNames x Dependent

o Emp_Dependents will contain every combination of EmpNames and


Dependent
o whether or not they are actually related
o To keep only combinations where the Dependent is related to the
Employee, we add a SELECT operation as follows

Actual_Deps   SSN=ESSN(Emp_Dependents)
Result  π FNAME, LNAME, DEPENDENT_NAME (Actual_Deps)

o Result will now contain the name of female employees and their
dependents

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

10
 Example: Display employees names for employees who work in accounting
department

Employee SSN Ename Sal Gender SuperSSN DNo

Department DNo DName Location

π ENAME ( employee.dno=department.dno( dname=’Accounting’ (Employee × Department))) =

Select Ename from Employee, Department


where employee.dno = department.dno and dname = ‘Accounting’;

 Example: find the names of all customers who live on the same street and in the
same city as smith

Customer SSN Cname City Street

π CName ( street = s ^ city = c (


Customer × (ρsmith_add(s,c) (π street, city (  CName = ‘Smith’ (Customer))))) =

Select c1.CName from customer c1, customer c2


where c2.CName=’Smith’ and c1.city = c2.city and c1.street = c2.street;

 Example: find the largest account balance in the bank

Account AccNo Balance Date

π Balance ( Account ) –
π Account.Balance ( account.balance < d.balance ( Account × (ρd ( Account ) ) ) )

Join Operator
 The JOIN operation is used to combine related rows from two relations into a
single row.

1. Theta Join Operator ( ϴ)

o The Theta-Join is a specialized product containing only pairs that match on


a supplied condition called join-condition.
o A theta join of R and S is the expression
R ϴS
where ϴ is a conjunction of terms: Ai oper Bi
in which Ai is an attribute of R; Bi is an attribute of S; and oper is one of =,
<, >,  <>, .

o R ϴ S =  ϴ (R  S) = Select * from R,S where ϴ;

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

11
o Example: R
A B C D
a 1 x 4
b 2 y 5
c 4 z 4
d 8 x 5
e 1 y 4

S E F G
5 a x
4 b y
3 c y
2 a x

R A<> ‘a’ ^ D < E S

A B C D E F G
c 4 z 4 5 a x
e 1 y 4 5 a x

R B=E S (Equi_Join)

A B C D E F G
b 2 y 5 2 a x
c 4 z 4 4 b y

o Example: Display the names of all employees who earn more than their
managers.

Employee ID Ename Salary MgrId

 e.EName (ρe (Employee) e.MgrId=m.Id ^ e.Salary>m.Salary ρm (Employee))

2. Natural Join Operator ( )


o Special case of Equi_Join.
o Natural join requires that the two join 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.
o Natural join removes duplicate attributes.

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

12
o r s = π Attribute_List ( Join_Condition (r  s))
where
Attribute_List = attributes (r)  attributes (s)
(duplicates are eliminated) and Join-Condition has the form:
A1 = A1 AND … AND An = An
where {A1 … An} = attributes(r)  attributes(s)

o Note: let r(R) and s(S) be relations without any attributes in common; that
is,
R ∩ S = ᴓ. Then r s = r  s.
o Example: R
A B C D
a 1 x 4
b 2 y 5
c 4 z 4
d 8 x 5
e 1 y 4

S E F G
5 a x
4 b y
3 c y
2 a x

R ρ (B, F, G) (S) = Select R.*, F, G from R, S where B=E;

A B C D F G
b 2 y 5 a x
c 4 z 4 b y

o Example: R
A B C D
x 1 x a
y 2 z a
z 4 y b
x 1 z a
w 2 y b

S B D E
1 a x
3 a y
1 a z
2 b w
3 b e

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

13
R S = π R.A, R.B, R.C, R.D, S.E ( R.B = S.B ^ R.D = S.D (R  S))

A B C D E
x 1 x a x
x 1 x a z
x 1 z a x
x 1 z a z
w 2 y b w

3. Outer Join Operator


o An extension of the join operation that avoids loss of information.
o Computes the join and then adds tuples form one relation that does not
match tuples in the other relation to the result of the join.
o Outer join types:
 Left outer join
 Right outer join
 Full outer join
o Example:

Relation Loan

Relation Borrower

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

14
Complete Set of Relational Operations

 The set of operations including π (Projection), σ (Selection), – (Difference), ρ


(Rename), (Union) and  (Cartesian Product) is called a complete set, because
any other relational algebra expression can be expressed by combination of these
five operations.

o R ∩ S = (R  S ) – ((R - S)  (S - R))

o R ∩ S = R – ( R – S)

o R Condition S =  Condition (R  S)

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

15
8.4 Examples of Queries in Relational Algebra
Banking Example:
Branch (branch_name, branch_city)
Customer (customer_name, customer_city, customer_street)
Account (account_number, branch_name, balance)
Loan (loan_number, branch_name, amount)
Depositor (customer_name, account_number)
Borrower (customer_name, loan_number)

Q1: Find all loans of over $1200.

Q2: Find the loan number for each loan of an amount greater than $1200.

Q3: Find the names of all customers who have a loan, an account, or both from the bank.

Q4: Find the names of all customers who have a loan and an account at bank.

Q5: Find the names of all customers who have a loan at the Perryridge branch.

Q6: Find the names of all customers who have a loan at the Perryridge branch but do not
have an account at any branch of the bank.

Q7: Find the names of all branches with customers who have an account in the bank and
who live in Harrison.

Q8: Find all customers who have an account from at least the “Downtown” and the
“uptown” branches.

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

16
Company Example:

Employee (fname, minit, lname, SSN, address, sex, salary, superSSN, DNo)
Department (Dname, Dnumber, MGRSSN, MGRStartDate)
Dept_Locations (DNumber, DLocation)
Project (PName, PNumber, PLocation, DNum)
Works_On (ESSN, PNo, Hours)
Dependent (ESSN, Dependent_Name, Sex, BDate,Relationship)

Q1: Retrieve the name and address of all employees who work for the ‘Research’
department.

Q2: for every project located in ‘Stafford’, list the project number, the controlling
department number, and the department manager’s last name, address, and birthdate.

Q3: make a list of project numbers for projects that involve an employee whose last
name is ‘smith’, either as a worker or as a manager of the department that controls the
project.

Q4: Retrieve the names of employees who have no dependents.

Q5: List the names of managers who have at least one dependent.

Prepared by: Eng. Randa Al_Dallah and Sawsan Abu_Taleb

17

You might also like