ICOM 5016 Introduction to Database Systems - PowerPoint PPT Presentation

About This Presentation
Title:

ICOM 5016 Introduction to Database Systems

Description:

Department of Electrical and Computer Engineering. University of Puerto ... as the relation of k columns obtained by erasing the columns that are not listed ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 26
Provided by: marily287
Learn more at: http://www.ece.uprm.edu
Category:

less

Transcript and Presenter's Notes

Title: ICOM 5016 Introduction to Database Systems


1
ICOM 5016 Introduction to Database Systems
  • Lecture 6
  • Dr. Manuel Rodriguez
  • Department of Electrical and Computer Engineering
  • University of Puerto Rico, Mayagüez

2
Chapter 3 Relational Model
  • Structure of Relational Databases
  • Relational Algebra
  • Tuple Relational Calculus
  • Domain Relational Calculus
  • Extended Relational-Algebra-Operations
  • Modification of the Database
  • Views

3
Projection Operation
  • Given a relation R, the projection operation is
    used to create a new relation S, such that each
    tuple ts is formed by taking a tuple tR and
    removing one or more columns.
  • Formally, the projection of R over columns A1,
    A2, ,An is defined as

4
Project Operation Example
A
B
C
  • Relation r

? ? ? ?
10 20 30 40
1 1 1 2
A
C
A
C
  • ?A,C (r)

? ? ? ?
1 1 1 2
? ? ?
1 1 2

5
Project Operation
  • Notation ?A1, A2, , Ak (r)
  • where A1, A2 are attribute names and r is a
    relation name.
  • The result is defined as the relation of k
    columns obtained by erasing the columns that are
    not listed
  • Duplicate rows removed from result, since
    relations are sets
  • E.g. To eliminate the branch-name attribute of
    account ?account-number, balance
    (account)

6
Union Operation Example
  • Relations r, s

A
B
A
B
? ? ?
1 2 1
? ?
2 3
s
r
r ? s
A
B
? ? ? ?
1 2 1 3
7
Union Operation
  • Notation r ? s
  • Defined as
  • r ? s t t ? r or t ? s
  • For r ? s to be valid.
  • 1. r, s must have the same arity (same number
    of attributes)
  • 2. The attribute domains must be compatible
    (e.g., 2nd column of r deals with the same
    type of values as does the 2nd column of s)
  • E.g. to find all customers with either an account
    or a loan ?customer-name (depositor) ?
    ?customer-name (borrower)

8
Set Difference Operation Example
  • Relations r, s

A
B
A
B
? ? ?
1 2 1
? ?
2 3
s
r
r s
A
B
? ?
1 1
9
Set Difference Operation
  • Notation r s
  • Defined as
  • r s t t ? r and t ? s
  • Set differences must be taken between compatible
    relations.
  • r and s must have the same arity
  • attribute domains of r and s must be compatible

10
Cartesian-Product Operation-Example
A
B
C
D
E
Relations r, s
? ?
1 2
? ? ? ?
10 10 20 10
a a b b
r
s
r x s
A
B
C
D
E
? ? ? ? ? ? ? ?
1 1 1 1 2 2 2 2
? ? ? ? ? ? ? ?
10 10 20 10 10 10 20 10
a a b b a a b b
11
Cartesian-Product Operation
  • Notation r x s
  • Defined as
  • r x s t q t ? r and q ? s
  • Assume that attributes of r(R) and s(S) are
    disjoint. (That is, R ? S ?).
  • If attributes of r(R) and s(S) are not disjoint,
    then renaming must be used.
  • A tuple is r x s is made by concatenating the
    columns from the first tuple, with the those of
    the second tuple.

12
Composition of Operations
  • Can build expressions using multiple operations
  • Example ?AC(r x s)
  • r x s
  • ?AC(r x s)

A
B
C
D
E
? ? ? ? ? ? ? ?
1 1 1 1 2 2 2 2
? ? ? ? ? ? ? ?
10 10 20 10 10 10 20 10
a a b b a a b b
A
B
C
D
E
? ? ?
? ? ?
10 20 20
a a b
1 2 2
13
Rename Operation
  • Allows us to name, and therefore to refer to, the
    results of relational-algebra expressions.
  • Allows us to refer to a relation by more than one
    name.
  • Example
  • ? x (E)
  • returns the expression E under the name X
  • If a relational-algebra expression E has arity n,
    then
  • ?x (A1,
    A2, , An) (E)
  • returns the result of expression E under the name
    X, and with the
  • attributes renamed to A1, A2, ., An.

14
Banking Example
  • branch (branch-name, branch-city, assets)
  • customer (customer-name, customer-street,
    customer-only)
  • account (account-number, branch-name, balance)
  • loan (loan-number, branch-name, amount)
  • depositor (customer-name, account-number)
  • borrower (customer-name, loan-number)

15
Example Queries
  • Find all loans of over 1200
  • ?amount gt 1200 (loan)
  • Find the loan number for each loan of an amount
    greater than
  • 1200
  • ?loan-number (?amount gt 1200 (loan))

16
Example Queries
  • Find the names of all customers who have a loan,
    an account, or both, from the bank
  • ?customer-name (borrower) ? ?customer-name
    (depositor)
  • Find the names of all customers who have a loan
    and an
  • account at bank.
  • ?customer-name (borrower) ? ?customer-name
    (depositor)

17
Example Queries
  • Find the names of all customers who have a loan
    at the Perryridge branch.

?customer-name (?branch-namePerryridge
(?borrower.loan-number loan.loan-number(borrower
x loan)))
  • 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.

?customer-name (?branch-name Perryridge
(?borrower.loan-number loan.loan-number(borrower
x loan))) ?customer-name(depos
itor)
18
Example Queries
  • Find the names of all customers who have a loan
    at the Perryridge branch. Two possible solutions
    follow
  • Query 1 ?customer-name(?branch-name
    Perryridge ( ?borrower.loan-number
    loan.loan-number(borrower x loan)))
  • ? Query 2
  • ?customer-name(?loan.loan-number
    borrower.loan-number( (?branch-name
    Perryridge(loan)) x borrower))

19
Example Queries
  • Find the largest account balance
  • Rename account relation as d
  • The query is

?balance(account) - ?account.balance
(?account.balance lt d.balance (account x rd
(account)))
20
Formal Definition
  • A basic expression in the relational algebra
    consists of either one of the following
  • A relation in the database
  • A constant relation
  • Let E1 and E2 be relational-algebra expressions
    the following are all relational-algebra
    expressions
  • E1 ? E2
  • E1 - E2
  • E1 x E2
  • ?p (E1), P is a predicate on attributes in E1
  • ?s(E1), S is a list consisting of some of the
    attributes in E1
  • ? x (E1), x is the new name for the result of E1

21
Additional Operations
  • We define additional operations that do not add
    any power to the
  • relational algebra, but that simplify common
    queries.
  • Set intersection
  • Natural join
  • Division
  • Assignment

22
Set-Intersection Operation
  • Notation r ? s
  • Defined as
  • r ? s t t ? r and t ? s
  • Assume
  • r, s have the same arity
  • attributes of r and s are compatible
  • Note r ? s r - (r - s)

23
Set-Intersection Operation - Example
  • Relation r, s
  • r ? s

A B
A B
? ? ?
1 2 1
? ?
2 3
r
s
A B
? 2
24
Natural-Join Operation
  • Notation r s
  • Let r and s be relations on schemas R and S
    respectively. Then, r s is a relation on
    schema R ? S obtained as follows
  • Consider each pair of tuples tr from r and ts
    from s.
  • If tr and ts have the same value on each of the
    attributes in R ? S, add a tuple t to the
    result, where
  • t has the same value as tr on r
  • t has the same value as ts on s
  • Example
  • R (A, B, C, D)
  • S (E, B, D)
  • Result schema (A, B, C, D, E), and R ?S
    (B,D)
  • r s is defined as ?r.A, r.B, r.C, r.D,
    s.E (?r.B s.B ? r.D s.D (r x s))

25
Natural Join Operation Example
  • Relations r, s

B
D
E
A
B
C
D
1 3 1 2 3
a a a b b
? ? ? ? ?
? ? ? ? ?
1 2 4 1 2
? ? ? ? ?
a a b a b
r
s
A
B
C
D
E
? ? ? ? ?
1 1 1 1 2
? ? ? ? ?
a a a a b
? ? ? ? ?
Write a Comment
User Comments (0)
About PowerShow.com