Professional Documents
Culture Documents
Database System Concepts 3.1 Silberschatz, Korth and Sudarshan Database System Concepts 3.2 Silberschatz, Korth and Sudarshan
Database System Concepts 3.3 Silberschatz, Korth and Sudarshan Database System Concepts 3.4 Silberschatz, Korth and Sudarshan
customer
Database System Concepts 3.5 Silberschatz, Korth and Sudarshan Database System Concepts 3.6 Silberschatz, Korth and Sudarshan
Database System Concepts 3.7 Silberschatz, Korth and Sudarshan Database System Concepts 3.8 Silberschatz, Korth and Sudarshan
The customer Relation The depositor Relation
Database System Concepts 3.9 Silberschatz, Korth and Sudarshan Database System Concepts 3.10 Silberschatz, Korth and Sudarshan
Database System Concepts 3.11 Silberschatz, Korth and Sudarshan Database System Concepts 3.12 Silberschatz, Korth and Sudarshan
Database System Concepts 3.13 Silberschatz, Korth and Sudarshan Database System Concepts 3.14 Silberschatz, Korth and Sudarshan
Database System Concepts 3.15 Silberschatz, Korth and Sudarshan Database System Concepts 3.16 Silberschatz, Korth and Sudarshan
Select Operation Example Select Operation
Notation: p(r)
Relation r A B C D
p is called the selection predicate
1 7 Defined as:
5 7 p(r) = {t | t r and p(t)}
12 3 Where p is a formula in propositional calculus consisting
of terms connected by : (and), (or), (not)
23 10
Each term is one of:
<attribute> op <attribute> or <constant>
where op is one of: =, , >, . <.
A=B ^ D > 5 (r)
A B C D Example of selection:
branch-name=Perryridge(account)
1 7
23 10
Database System Concepts 3.17 Silberschatz, Korth and Sudarshan Database System Concepts 3.18 Silberschatz, Korth and Sudarshan
1 1
1 = 1
1 2
2
Database System Concepts 3.19 Silberschatz, Korth and Sudarshan Database System Concepts 3.20 Silberschatz, Korth and Sudarshan
Database System Concepts 3.21 Silberschatz, Korth and Sudarshan Database System Concepts 3.22 Silberschatz, Korth and Sudarshan
r s: A B
1
1
Database System Concepts 3.23 Silberschatz, Korth and Sudarshan Database System Concepts 3.24 Silberschatz, Korth and Sudarshan
Cartesian-
Cartesian-Product Operation-
Operation-Example Cartesian-
Cartesian-Product Operation
A B C D E
Notation r x s
Relations r, s:
Defined as:
1 10 a
10 a r x s = {t q | t r and q s}
2
20 b Assume that attributes of r(R) and s(S) are disjoint. (That is,
r 10 b R S = ).
s
If attributes of r(R) and s(S) are not disjoint, then renaming must
r x s:
be used.
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 System Concepts 3.25 Silberschatz, Korth and Sudarshan Database System Concepts 3.26 Silberschatz, Korth and Sudarshan
1 10 a
2 20 a
2 20 b
Database System Concepts 3.27 Silberschatz, Korth and Sudarshan Database System Concepts 3.28 Silberschatz, Korth and Sudarshan
loan (loan-number, branch-name, amount) Find the loan number for each loan of an amount greater than
$1200
depositor (customer-name, account-number)
loan-number (amount > 1200 (loan))
borrower (customer-name, loan-number)
Database System Concepts 3.29 Silberschatz, Korth and Sudarshan Database System Concepts 3.30 Silberschatz, Korth and Sudarshan
Find the names of all customers who have a loan and an Find the names of all customers who have a loan at the
account at bank. Perryridge branch but do not have an account at any branch of
the bank.
customer-name (borrower) customer-name (depositor)
customer-name (branch-name = Perryridge
Database System Concepts 3.31 Silberschatz, Korth and Sudarshan Database System Concepts 3.32 Silberschatz, Korth and Sudarshan
Example Queries Example Queries
Find the names of all customers who have a loan at the Perryridge Find the largest account balance
branch.
Rename account relation as d
Query 1 The query is:
customer-name(branch-name = Perryridge (
borrower.loan-number = loan.loan-number(borrower x loan))) balance(account) - account.balance
(account.balance < d.balance (account x d (account)))
Query 2
customer-name(loan.loan-number = borrower.loan-number(
(branch-name = Perryridge(loan)) x borrower))
Database System Concepts 3.33 Silberschatz, Korth and Sudarshan Database System Concepts 3.34 Silberschatz, Korth and Sudarshan
E1 - E2 Assignment
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
Database System Concepts 3.35 Silberschatz, Korth and Sudarshan Database System Concepts 3.36 Silberschatz, Korth and Sudarshan
Set-
Set-Intersection Operation Set-
Set-Intersection Operation - Example
Notation: r s Relation r, s: A B A B
Defined as: 1 2
r s ={ t | t r and t s } 2 3
1
Assume:
r, s have the same arity r s
attributes of r and s are compatible rs A B
Note: r s = r - (r - s)
2
Database System Concepts 3.37 Silberschatz, Korth and Sudarshan Database System Concepts 3.38 Silberschatz, Korth and Sudarshan
Natural-
Natural-Join Operation Natural Join Operation Example
Notation: r s
Relations 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: A B C D B D E
Consider each pair of tuples tr from r and ts from s.
1 a 1 a
If tr and ts have the same value on each of the attributes in R S, add 2 a 3 a
a tuple t to the result, where 4 b 1 a
1 a 2 b
t has the same value as tr on r
2 b 3 b
t has the same value as ts on s r s
Example:
r s
R = (A, B, C, D) A B C D E
S = (E, B, D) 1 a
Result schema = (A, B, C, D, E) 1 a
1 a
r s is defined as:
1 a
r.A, r.B, r.C, r.D, s.E (r.B = s.B r.D = s.D (r x s)) 2 b
Database System Concepts 3.39 Silberschatz, Korth and Sudarshan Database System Concepts 3.40 Silberschatz, Korth and Sudarshan
Division Operation Division Operation Example
rs Relations r, s: A B
B
Suited to queries that include the phrase for all. 1 1
Let r and s be relations on schemas R and S respectively 2
where 3 2
1 s
R = (A1, , Am, B1, , Bn) 1
S = (B1, , Bn) 1
The result of r s is a relation on schema 3
4
R S = (A1, , Am)
6
1
r s = { t | t R-S(r) u s ( tu r ) } 2
r s: A r
Database System Concepts 3.41 Silberschatz, Korth and Sudarshan Database System Concepts 3.42 Silberschatz, Korth and Sudarshan
Relations r, s:
A B C D E D E Property
Let q r s
a a 1 a 1
a a 1 b 1 Then q is the largest relation satisfying q x s r
a b 1 s Definition in terms of the basic algebra operation
a a 1 Let r(R) and s(S) be relations, and let S R
a b 3
a a 1
a b 1 r s = R-S (r) R-S ( (R-S (r) x s) R-S,S(r))
a b 1
r To see why
R-S,S(r) simply reorders attributes of r
r s: A B C
R-S(R-S (r) x s) R-S,S(r)) gives those tuples t in
a
a R-S (r) such that for some tuple u s, tu r.
Database System Concepts 3.43 Silberschatz, Korth and Sudarshan Database System Concepts 3.44 Silberschatz, Korth and Sudarshan
Database System Concepts 3.45 Silberschatz, Korth and Sudarshan Database System Concepts 3.46 Silberschatz, Korth and Sudarshan
Database System Concepts 3.47 Silberschatz, Korth and Sudarshan Database System Concepts 3.48 Silberschatz, Korth and Sudarshan
Generalized Projection Aggregate Functions and Operations
Extends the projection operation by allowing arithmetic functions Aggregation function takes a collection of values and returns a
to be used in the projection list. single value as a result.
avg: average value
F1, F2, , Fn(E) min: minimum value
E is any relational-algebra expression max: maximum value
Each of F1, F2, , Fn are are arithmetic expressions involving sum: sum of values
constants and attributes in the schema of E. count: number of values
Database System Concepts 3.49 Silberschatz, Korth and Sudarshan Database System Concepts 3.50 Silberschatz, Korth and Sudarshan
Database System Concepts 3.51 Silberschatz, Korth and Sudarshan Database System Concepts 3.52 Silberschatz, Korth and Sudarshan
Database System Concepts 3.53 Silberschatz, Korth and Sudarshan Database System Concepts 3.54 Silberschatz, Korth and Sudarshan
Inner Join
Relation loan
loan Borrower
loan-number branch-name amount
loan-number branch-name amount customer-name
L-170 Downtown 3000
L-230 Redwood 4000 L-170 Downtown 3000 Jones
L-260 Perryridge 1700 L-230 Redwood 4000 Smith
Database System Concepts 3.55 Silberschatz, Korth and Sudarshan Database System Concepts 3.56 Silberschatz, Korth and Sudarshan
Outer Join Example Null Values
Right Outer Join It is possible for tuples to have a null value, denoted by null, for
loan borrower some of their attributes
null signifies an unknown value or that a value does not exist.
loan-number branch-name amount customer-name
The result of any arithmetic expression involving null is null.
L-170 Downtown 3000 Jones
L-230 Redwood 4000 Smith Aggregate functions simply ignore null values
L-155 null null Hayes Is an arbitrary decision. Could have returned null as result instead.
Full Outer Join We follow the semantics of SQL in its handling of null values
loan borrower For duplicate elimination and grouping, null is treated like any
loan-number branch-name amount customer-name other value, and two nulls are assumed to be the same
L-170 Downtown 3000 Jones Alternative: assume each null is different from each other
L-230 Redwood 4000 Smith Both are arbitrary decisions, so we simply follow SQL
L-260 Perryridge 1700 null
L-155 null null Hayes
Database System Concepts 3.57 Silberschatz, Korth and Sudarshan Database System Concepts 3.58 Silberschatz, Korth and Sudarshan
Database System Concepts 3.59 Silberschatz, Korth and Sudarshan Database System Concepts 3.60 Silberschatz, Korth and Sudarshan
Database System Concepts 3.61 Silberschatz, Korth and Sudarshan Database System Concepts 3.62 Silberschatz, Korth and Sudarshan
Database System Concepts 3.63 Silberschatz, Korth and Sudarshan Database System Concepts 3.64 Silberschatz, Korth and Sudarshan
Updating Update Examples
A mechanism to change a value in a tuple without charging all Make interest payments by increasing all balances by 5 percent.
values in the tuple account AN, BN, BAL * 1.05 (account)
Use the generalized projection operator to do this task
where AN, BN and BAL stand for account-number, branch-name
r F1, F2, , FI, (r)
and balance, respectively.
Each Fi is either
the ith attribute of r, if the ith attribute is not updated, or, Pay all accounts with balances over $10,000 6 percent interest
and pay all others 5 percent
if the attribute is to be updated Fi is an expression, involving only
constants and the attributes of r, which gives the new value for the
attribute account AN, BN, BAL * 1.06 ( BAL > 10000 (account))
AN, BN, BAL * 1.05 (BAL 10000 (account))
Database System Concepts 3.65 Silberschatz, Korth and Sudarshan Database System Concepts 3.66 Silberschatz, Korth and Sudarshan
Database System Concepts 3.67 Silberschatz, Korth and Sudarshan Database System Concepts 3.68 Silberschatz, Korth and Sudarshan
create view all-customer as Consider the person who needs to see all loan data in the loan
relation except amount. The view given to the person, branch-
branch-name, customer-name (depositor account) loan, is defined as:
branch-name, customer-name (borrower loan) create view branch-loan as
branch-name, loan-number (loan)
We can find all customers of the Perryridge branch by writing: Since we allow a view name to appear wherever a relation name
is allowed, the person may write:
branch-name
(branch-name = Perryridge (all-customer))
branch-loan branch-loan {(Perryridge, L-37)}
Database System Concepts 3.69 Silberschatz, Korth and Sudarshan Database System Concepts 3.70 Silberschatz, Korth and Sudarshan
Database System Concepts 3.71 Silberschatz, Korth and Sudarshan Database System Concepts 3.72 Silberschatz, Korth and Sudarshan
View Expansion Tuple Relational Calculus
A way to define the meaning of views defined in terms of other A nonprocedural query language, where each query is of the form
views. {t | P (t) }
Let view v1 be defined by an expression e1 that may itself contain It is the set of all tuples t such that predicate P is true for t
uses of view relations.
t is a tuple variable, t[A] denotes the value of tuple t on attribute A
View expansion of an expression repeats the following
replacement step: t r denotes that tuple t is in relation r
repeat P is a formula similar to that of the predicate calculus
Find any view relation vi in e1
Replace the view relation vi by the expression defining vi
until no more view relations are present in e1
As long as the view definitions are not recursive, this loop will
terminate
Database System Concepts 3.73 Silberschatz, Korth and Sudarshan Database System Concepts 3.74 Silberschatz, Korth and Sudarshan
Database System Concepts 3.75 Silberschatz, Korth and Sudarshan Database System Concepts 3.76 Silberschatz, Korth and Sudarshan
Find the names of all customers who have a loan and an account
{t | s loan (t[loan-number] = s[loan-number] s [amount] > 1200)}
at the bank
Database System Concepts 3.77 Silberschatz, Korth and Sudarshan Database System Concepts 3.78 Silberschatz, Korth and Sudarshan
Database System Concepts 3.79 Silberschatz, Korth and Sudarshan Database System Concepts 3.80 Silberschatz, Korth and Sudarshan
Example Queries Safety of Expressions
Find the names of all customers who have an account at all It is possible to write tuple calculus expressions that generate
branches located in Brooklyn: infinite relations.
For example, {t | t r} results in an infinite relation if the
{t | c customer (t[customer.name] = c[customer-name]) domain of any attribute of relation r is infinite
s branch(s[branch-city] = Brooklyn To guard against the problem, we restrict the set of allowable
u account ( s[branch-name] = u[branch-name] expressions to safe expressions.
s depositor ( t[customer-name] = s[customer-name]
An expression {t | P(t)} in the tuple relational calculus is safe if
s[account-number] = u[account-number] )) )}
every component of t appears in one of the relations, tuples, or
constants that appear in P
NOTE: this is more than just a syntax condition.
E.g. { t | t[A]=5 true } is not safe --- it defines an infinite set with
attribute values that do not appear in any relation or tuples or
constants in P.
Database System Concepts 3.81 Silberschatz, Korth and Sudarshan Database System Concepts 3.82 Silberschatz, Korth and Sudarshan
Find the names of all customers who have a loan of over $1200
{ < x1, x2, , xn > | P(x1, x2, , xn)}
{< c > | l, b, a (< c, l > borrower < l, b, a > loan a > 1200)}
x1, x2, , xn represent domain variables
P represents a formula similar to that of the predicate calculus Find the names of all customers who have a loan from the
Perryridge branch and the loan amount:
Database System Concepts 3.83 Silberschatz, Korth and Sudarshan Database System Concepts 3.84 Silberschatz, Korth and Sudarshan
{< c > | s, n (< c, s, n > customer) 3. For every for all subformula of the form x (P1 (x)), the
subformula is true if and only if P1(x) is true for all values x
x,y,z(< x, y, z > branch y = Brooklyn) from dom (P1).
a,b(< x, y, z > account < c,a > depositor)}
Database System Concepts 3.85 Silberschatz, Korth and Sudarshan Database System Concepts 3.86 Silberschatz, Korth and Sudarshan
End of Chapter 3
Database System Concepts 3.89 Silberschatz, Korth and Sudarshan Database System Concepts 3.90 Silberschatz, Korth and Sudarshan
Database System Concepts 3.91 Silberschatz, Korth and Sudarshan Database System Concepts 3.92 Silberschatz, Korth and Sudarshan
Result of customer-
customer-name
Result of branch- Perryridge (borrower loan)
branch-name = Perryridge
Database System Concepts 3.93 Silberschatz, Korth and Sudarshan Database System Concepts 3.94 Silberschatz, Korth and Sudarshan
Database System Concepts 3.95 Silberschatz, Korth and Sudarshan Database System Concepts 3.96 Silberschatz, Korth and Sudarshan
Customers Who Live on the Same Street and In the Customers With Both an Account and a Loan
Same City as Smith at the Bank
Database System Concepts 3.97 Silberschatz, Korth and Sudarshan Database System Concepts 3.98 Silberschatz, Korth and Sudarshan
Result of customer-
branch-name(customer-
Result of branch-
customer-name, loan-
loan-number, amount
(borrower loan) customer-city =
Harrison
Harrison(customer account depositor))
Database System Concepts 3.99 Silberschatz, Korth and Sudarshan Database System Concepts 3.100 Silberschatz, Korth and Sudarshan
Database System Concepts 3.101 Silberschatz, Korth and Sudarshan Database System Concepts 3.102 Silberschatz, Korth and Sudarshan
The credit-
credit-info Relation Result of customer- credit-balance) as
customer-name, (limit credit-
credit-
credit-available (credit-
(credit-info).
Database System Concepts 3.103 Silberschatz, Korth and Sudarshan Database System Concepts 3.104 Silberschatz, Korth and Sudarshan
The pt- The pt-
pt-works Relation After Grouping
pt-works Relation
Database System Concepts 3.105 Silberschatz, Korth and Sudarshan Database System Concepts 3.106 Silberschatz, Korth and Sudarshan
Database System Concepts 3.107 Silberschatz, Korth and Sudarshan Database System Concepts 3.108 Silberschatz, Korth and Sudarshan
Database System Concepts 3.109 Silberschatz, Korth and Sudarshan Database System Concepts 3.110 Silberschatz, Korth and Sudarshan
Database System Concepts 3.111 Silberschatz, Korth and Sudarshan Database System Concepts 3.112 Silberschatz, Korth and Sudarshan
Result of employee ft-
ft-works Tuples Inserted Into loan and borrower
Database System Concepts 3.113 Silberschatz, Korth and Sudarshan Database System Concepts 3.114 Silberschatz, Korth and Sudarshan
Database System Concepts 3.115 Silberschatz, Korth and Sudarshan Database System Concepts 3.116 Silberschatz, Korth and Sudarshan
Database System Concepts 3.117 Silberschatz, Korth and Sudarshan Database System Concepts 3.118 Silberschatz, Korth and Sudarshan