ch2 Dbms
ch2 Dbms
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.2
Example of a Relation
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.3
Basic Structure
Formally, given sets D1, D2, . Dn a relation r is a subset of
D1 x D2 x x D n
Thus, a relation is a set of n-tuples (a1, a2, , an) where each ai Di
Example: If
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.4
Attribute Types
Each attribute of a relation has a name
The set of allowed values for each attribute is called the domain of the
attribute
Attribute values are (normally) required to be atomic; that is, indivisible
z
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.5
Relation Schema
A1, A2, , An are attributes
R = (A1, A2, , An ) is a relation schema
Example:
Customer_schema = (customer_name, customer_street, customer_city)
Example:
customer (Customer_schema)
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.6
Relation Instance
The current values (relation instance) of a relation are specified by
a table
An element t of r is a tuple, represented by a row in a table
attributes
(or columns)
customer_name customer_street customer_city
Jones
Smith
Curry
Lindsay
Main
North
North
Park
Harrison
Rye
Rye
Pittsfield
tuples
(or rows)
customer
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.7
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.8
Database
A database consists of multiple relations
Information about an enterprise is broken up into parts, with each
schemas
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.9
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.10
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.11
Keys
Let K R
K is a superkey of R if values for K are sufficient to identify a unique
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.12
Query Languages
Language in which user requests information from the database.
Categories of languages
z
Procedural
Non-procedural, or declarative
Pure languages:
z
Relational algebra
use.
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.13
Relational Algebra
Procedural language
Six basic operators
z
select:
project:
union:
set difference:
Cartesian product: x
rename:
The operators take one or two relations as inputs and produce a new
relation as a result.
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.14
12
23 10
23 10
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.15
Select Operation
Notation: p(r)
p is called the selection predicate
Defined as:
op <attribute> or <constant>
Example of selection:
branch_name=Perryridge(account)
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.16
A,C (r)
10
20
30
40
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.17
Project Operation
Notation:
A1 , A2 ,K, Ak
(r )
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.18
r s:
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.19
Union Operation
Notation: r s
Defined as:
r s = {t | t r or t s}
For r s to be valid.
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.20
r
r s:
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.21
r s = {t | t r and t s}
Set differences must be taken between compatible
relations.
z
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.22
10
10
20
10
a
a
b
b
r x s:
A
1
1
1
1
2
2
2
2
10
10
20
10
10
10
20
10
a
a
b
b
a
a
b
b
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.23
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.
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.24
Composition of Operations
Can build expressions using multiple operations
Example: A=C(r x s)
rxs
1
1
1
1
2
2
2
2
10
10
20
10
10
10
20
10
a
a
b
b
a
a
b
b
1
2
2
10
10
20
a
a
b
A=C(r x s)
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.25
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(A
1 ,A2
,..., A n )
(E )
returns the result of expression E under the name X, and with the
attributes renamed to A1 , A2 , ., An .
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.26
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)
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.27
Example Queries
Find all loans of over $1200
Find the loan number for each loan of an amount greater than
$1200
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.28
Example Queries
Find the names of all customers who have a loan, an account, or both,
bank.
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.29
Example Queries
Find the names of all customers who have a loan at the Perryridge
branch.
customer_name (branch_name=Perryridge
(borrower.loan_number = loan.loan_number(borrower x
loan)))
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.30
Example Queries
Find the names of all customers who have a loan at the Perryridge branch.
Query 1
Query 2
customer_name(loan.loan_number = borrower.loan_number (
(branch_name = Perryridge (loan)) x borrower))
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.31
Example Queries
Strategy:
Use set difference to find those account balances that were not found
in the earlier step.
balance(account) - account.balance
(account.balance < d.balance (account x d (account)))
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.32
Formal Definition
A basic expression in the relational algebra consists of either one of the
following:
z
A constant relation
relational-algebra expressions:
z
E1 E2
E1 E2
E1 x E2
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.33
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
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.34
Set-Intersection Operation
Notation: r s
Defined as:
r s = { t | t r and t s }
Assume:
z
Note: r s = r (r s)
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.35
1
2
1
2
3
s
rs
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.36
Natural-Join Operation
Notation: r
Then, r
z
t
Example:
R = (A, B, C, D)
S = (E, B, D)
z
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))
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.37
1
2
4
1
2
a
a
b
a
b
1
3
1
2
3
a
a
a
b
b
r
r
s
A
1
1
1
1
2
a
a
a
a
b
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.38
Division Operation
Notation:
rs
R = (A1, , Am , B1, , Bn )
S = (B1, , Bn)
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.39
r s:
1
2
3
1
1
1
3
4
6
1
2
1
2
s
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.40
a
a
a
a
a
a
a
a
a
a
b
a
b
a
b
b
1
1
1
1
3
1
1
1
a
b
1
1
s
r
r s:
A
a
a
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.41
Property
z
Let q = r s
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.42
Assignment Operation
a series of assignments
Example: Write r s as
temp1 R-S (r )
temp2 R-S ((temp1 x s ) R-S,S (r ))
result = temp1 temp2
z
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.43
bank.
Find the name of all customers who have a loan at the bank and the
loan amount
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.44
loan )
account ))
account))
Query 2
customer_name, branch_name (depositor
account)
temp(branch_name) ({(Downtown ), (Uptown )})
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.45
Example Queries
Find all customers who have an account at all branches located in
Brooklyn city.
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.46
Extended Relational-Algebra-Operations
Generalized Projection
Aggregate Functions
Outer Join
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.47
Generalized Projection
Extends the projection operation by allowing arithmetic functions to be
F ,F ,...,F (E)
1
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.48
value as a result.
avg: average value
min: minimum value
max: maximum value
sum: sum of values
count: number of values
Aggregate operation in relational algebra
G1 ,G2 ,K,Gn
F ( A ),F ( A ,K,F ( A ) (E )
1
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.49
g sum(c) (r)
7
7
3
10
sum(c )
27
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.50
branch_name account_number
Perryridge
Perryridge
Brighton
Brighton
Redwood
branch_name
balance
A-102
A-201
A-217
A-215
A-222
400
900
750
750
700
g sum(balance) (account)
branch_name
Perryridge
Brighton
Redwood
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.51
sum(balance)
1300
1500
700
branch_name
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.52
Outer Join
An extension of the join operation that avoids loss of information.
Computes the join and then adds tuples form one relation that does not
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.53
loan_number branch_name
L-170
L-230
L-260
Downtown
Redwood
Perryridge
amount
3000
4000
1700
Relation borrower
customer_name loan_number
Jones
Smith
Hayes
Database System Concepts, 5th Ed., slide version 5.0, June 2005
L-170
L-230
L-155
2.54
Borrower
loan_number
branch_name
L-170
L-230
Downtown
Redwood
amount customer_name
3000
4000
Jones
Smith
loan
Borrower
loan_number
branch_name
L-170
L-230
L-260
Downtown
Redwood
Perryridge
Database System Concepts, 5th Ed., slide version 5.0, June 2005
amount customer_name
3000
4000
1700
2.55
Jones
Smith
null
loan
borrower
loan_number
branch_name
L-170
L-230
L-155
Downtown
Redwood
null
amount customer_name
3000
4000
null
Jones
Smith
Hayes
loan
borrower
loan_number
branch_name
L-170
L-230
L-260
L-155
Downtown
Redwood
Perryridge
null
Database System Concepts, 5th Ed., slide version 5.0, June 2005
amount customer_name
3000
4000
1700
null
2.56
Jones
Smith
null
Hayes
Null Values
It is possible for tuples to have a null value, denoted by null, for some
of their attributes
null signifies an unknown value or that a value does not exist.
The result of any arithmetic expression involving null is null.
Aggregate functions simply ignore null values (as in SQL)
For duplicate elimination and grouping, null is treated like any other
value, and two nulls are assumed to be the same (as in SQL)
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.57
Null Values
Comparisons with null values return the special truth value: unknown
z
not (A < 5)
A >= 5
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.58
operations:
z
Deletion
Insertion
Updating
operator.
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.59
Deletion
A delete request is expressed similarly to a query, except
particular attributes
A deletion is expressed in relational algebra by:
rrE
where r is a relation and E is a relational algebra query.
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.60
Deletion Examples
Delete all account records in the Perryridge branch.
branch )
depositor)
account account r2
depositor depositor r3
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.61
Insertion
To insert data into a relation, we either:
z
r r E
where r is a relation and E is a relational algebra expression.
The insertion of a single tuple is expressed by letting E be a constant
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.62
Insertion Examples
Insert information in the database specifying that Smith has $1200 in
loan))
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.63
Updating
A mechanism to change a value in a tuple without charging all values in
the tuple
Use the generalized projection operator to do this task
r F ,F ,K,F , (r )
1
Each Fi is either
z
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.64
Update Examples
Make interest payments by increasing all balances by 5 percent.
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.65
End of Chapter 2
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.67
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.68
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.69
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.70
Figure 2.9
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.71
Figure 2.10:
Loan number and the amount of the loan
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.72
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.73
Figure 2.12:
Customers with an account but no loan
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.74
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.75
Figure 2.14
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.76
Figure 2.15
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.77
Figure 2.16
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.78
Figure 2.17
Largest account balance in the bank
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.79
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.80
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.81
Figure 2.20
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.82
Figure 2.21
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.83
Figure 2.22
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.84
Figure 2.23
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.85
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.86
Figure 2.25
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.87
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.88
Figure 2.27
The pt_works relation after regrouping
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.89
Figure 2.28
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.90
Figure 2.29
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.91
Figure 2.30
The employee and ft_works relations
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.92
Figure 2.31
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.93
Figure 2.32
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.94
Figure 2.33
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.95
Figure 2.34
Database System Concepts, 5th Ed., slide version 5.0, June 2005
2.96