DBMS Module 2.1 Relational Algebra
DBMS Module 2.1 Relational Algebra
Relational Algebra
α α 1 7
α β 5 7
β β 12 3
β β 23 10
α α 1 7
β β 23 10
∏A,C (r) A C A C
α 1 α 1
α 1 = β 1
β 1 β 2
β 2
Database Engineering 4th SEM CSE
Set Difference Operation – Example
Relations r, s: A B A B
α 1 α 2
α 2 β 3
β 1 s
r
A B
r -s:
α 1
β 1
α 1 α 2
α 2 β 3
β 1 s
r
A B
r ∪ s:
α 1
α 2
β 1
β 3
α 1 α 10 a
β 10 a
β 2
β 20 b
r γ 10 b
s
r x s:
A B C D E
α 1 α 10 a
α 1 β 10 a
α 1 β 20 b
α 1 γ 10 b
β 2 α 10 a
β 2 β 10 a
β 2 β 20 b
β 2 γ 10 b
Database Engineering 4th SEM CSE
Composition of Operations
• Can build expressions using multiple operations
• Example: σA=C(r x s) A B C D E
• rxs α 1 α 10 a
α 1 β 10 a
α 1 β 20 b
α 1 γ 10 b
β 2 α 10 a
β 2 β 10 a
β 2 β 20 b
β 2 γ 10 b
• σA=C(r x s) A B C D E
α 1 α 10 a
β 2 β 10 a
β 2 β 20 b
Database Engineering 4th SEM CSE
Banking Example
branch (branch_name, branch_city, assets)
customer (customer_name, customer_street,
customer_city)
account (account_number, branch_name, balance)
loan (loan_number, branch_name, amount)
depositor (customer_name, account_number)
borrower (customer_name, loan_number)
Find the loan number for each loan of an amount greater than
$1200
∏loan_number (σamount > 1200 (loan))
Find the names of all customers who have a loan, an account, or both, from
the bank
∏balance(account) - ∏account.balance
(σaccount.balance < d.balance (account x ρd (account)))
• Additional Operations
– Set intersection
– Natural join
– Aggregation
– Outer Join
– Division
• All above, other than aggregation, can be
expressed using basic operations we have seen
earlier.
r s
A B
r∩s
α 2
A B C D B D E
α 1 α a 1 a α
β 2 γ a 3 a β
γ 4 β b 1 a γ
α 1 γ a 2 b δ
δ 2 β b 3 b ∈
r s
r s A B C D E
α 1 α a α
α 1 α a γ
α 1 γ a α
α 1 γ a γ
δ 2 β b δ
Database Engineering 4th SEM CSE
Database Engineering 4th SEM CSE
Bank Example Queries
α α 7
α β 7
β β 3
β β 10
27
branch_name sum(balance)
Perryridge 1300
Brighton 1500
Redwood 700
Relation borrower
customer_name loan_number
Jones L-170
Smith L-230
Hayes L-155
To see why
– ∏R-S,S (r) simply reorders attributes of r
α a α a 1 a 1
α a γ a 1 b 1
α a γ b 1 s
β a γ a 1
β a γ b 3
γ a γ a 1
γ a γ b 1
γ a β b 1
r
r ÷ s:
A B C
α a γ
γ a γ
Database Engineering 4th SEM CSE
Bank Example Queries
• Find all customers who have an account at
all branches located in Brooklyn city.
∏customer_name, branch_name (depositor account)
÷ ∏branch_name (σbranch_city = “Brooklyn” (branch))