Chapter 2: Relational Model: Database System Concepts, 5 Ed
Chapter 2: Relational Model: Database System Concepts, 5 Ed
th
Ed.
Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
Chapter 2: Relational Model
Silberschatz, Korth and Sudarshan 2.2 Database System Concepts - 5
th
Edition, June 15, 2005
Chapter 2: Relational Model
Structure of Relational Databases
Fundamental Relational-Algebra-Operations
Additional Relational-Algebra-Operations
Extended Relational-Algebra-Operations
Null Values
Modification of the Database
Silberschatz, Korth and Sudarshan 2.3 Database System Concepts - 5
th
Edition, June 15, 2005
Example of a Relation
Silberschatz, Korth and Sudarshan 2.4 Database System Concepts - 5
th
Edition, June 15, 2005
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
E.g. the value of an attribute can be an account number,
but cannot be a set of account numbers
Domain is said to be atomic if all its members are atomic
The special value null is a member of every domain
The null value causes complications in the definition of many operations
We shall ignore the effect of null values in our main presentation
and consider their effect later
Silberschatz, Korth and Sudarshan 2.5 Database System Concepts - 5
th
Edition, June 15, 2005
Relation Schema
Formally, given domains D
1
, D
2
, . D
n
a relation r is a subset of
D
1
x D
2
x x D
n
Thus, a relation is a set of n-tuples (a
1
, a
2
, , a
n
) where each a
i
e D
i
Schema of a relation consists of
attribute definitions
name
type/domain
integrity constraints
Silberschatz, Korth and Sudarshan 2.6 Database System Concepts - 5
th
Edition, June 15, 2005
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
Order of tuples is irrelevant (tuples may be stored in an arbitrary
order)
Jones
Smith
Curry
Lindsay
customer_name
Main
North
North
Park
customer_street
Harrison
Rye
Rye
Pittsfield
customer_city
customer
attributes
(or columns)
tuples
(or rows)
Silberschatz, Korth and Sudarshan 2.7 Database System Concepts - 5
th
Edition, June 15, 2005
Database
A database consists of multiple relations
Information about an enterprise is broken up into parts, with each
relation storing one part of the information
E.g.
account : information about accounts
depositor : which customer owns which account
customer : information about customers
Silberschatz, Korth and Sudarshan 2.8 Database System Concepts - 5
th
Edition, June 15, 2005
The customer Relation
Silberschatz, Korth and Sudarshan 2.9 Database System Concepts - 5
th
Edition, June 15, 2005
The depositor Relation
Silberschatz, Korth and Sudarshan 2.10 Database System Concepts - 5
th
Edition, June 15, 2005
Why Split Information Across Relations?
Storing all information as a single relation such as
bank(account_number, balance, customer_name, ..)
results in
repetition of information
e.g.,if two customers own an account (What gets repeated?)
the need for null values
e.g., to represent a customer without an account
Normalization theory (Chapter 7) deals with how to design relational
schemas
Silberschatz, Korth and Sudarshan 2.11 Database System Concepts - 5
th
Edition, June 15, 2005
Keys
Let K _ R
K is a superkey of R if values for K are sufficient to identify a unique tuple of
each possible relation r(R)
by possible r we mean a relation r that could exist in the enterprise we
are modeling.
Example: {customer_name, customer_street} and
{customer_name}
are both superkeys of Customer, if no two customers can possibly have
the same name
In real life, an attribute such as customer_id would be used instead of
customer_name to uniquely identify customers, but we omit it to keep
our examples small, and instead assume customer names are unique.
Silberschatz, Korth and Sudarshan 2.12 Database System Concepts - 5
th
Edition, June 15, 2005
Keys (Cont.)
K is a candidate key if K is minimal
Example: {customer_name} is a candidate key for Customer, since it
is a superkey and no subset of it is a superkey.
Primary key: a candidate key chosen as the principal means of
identifying tuples within a relation
Should choose an attribute whose value never, or very rarely,
changes.
E.g. email address is unique, but may change
Silberschatz, Korth and Sudarshan 2.13 Database System Concepts - 5
th
Edition, June 15, 2005
Foreign Keys
A relation schema may have an attribute that corresponds to the primary
key of another relation. The attribute is called a foreign key.
E.g. customer_name and account_number attributes of depositor are
foreign keys to customer and account respectively.
Only values occurring in the primary key attribute of the referenced
relation may occur in the foreign key attribute of the referencing
relation.
Silberschatz, Korth and Sudarshan 2.14 Database System Concepts - 5
th
Edition, June 15, 2005
Schema Diagram
Silberschatz, Korth and Sudarshan 2.15 Database System Concepts - 5
th
Edition, June 15, 2005
Query Languages
Language in which user requests information from the database.
Categories of languages
Procedural
Non-procedural, or declarative
Pure languages:
Relational algebra
Tuple relational calculus
Domain relational calculus
Pure languages form underlying basis of query languages that people
use.
Silberschatz, Korth and Sudarshan 2.16 Database System Concepts - 5
th
Edition, June 15, 2005
Relational Algebra
Procedural language
Six basic operators
select: o
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.
Silberschatz, Korth and Sudarshan 2.17 Database System Concepts - 5
th
Edition, June 15, 2005
Select Operation Example
Relation r
A B C D
o
o
|
|
o
|
|
|
1
5
12
23
7
7
3
10
o
A=B ^ D > 5
(r)
A B C D
o
|
o
|
1
23
7
10
Silberschatz, Korth and Sudarshan 2.18 Database System Concepts - 5
th
Edition, June 15, 2005
Project Operation Example
Relation r:
A B C
o
o
|
|
10
20
30
40
1
1
1
2
A C
o
o
|
|
1
1
1
2
=
A C
o
|
|
1
1
2
[
A,C
(r)
Silberschatz, Korth and Sudarshan 2.19 Database System Concepts - 5
th
Edition, June 15, 2005
Union Operation Example
Relations r, s:
r s:
A B
o
o
|
1
2
1
A B
o
|
2
3
r
s
A B
o
o
|
|
1
2
1
3
Silberschatz, Korth and Sudarshan 2.20 Database System Concepts - 5
th
Edition, June 15, 2005
Set Difference Operation Example
Relations r, s:
r s:
A B
o
o
|
1
2
1
A B
o
|
2
3
r
s
A B
o
|
1
1
Silberschatz, Korth and Sudarshan 2.21 Database System Concepts - 5
th
Edition, June 15, 2005
Cartesian-Product Operation Example
Relations r, s:
r x s:
A B
o
|
1
2
A B
o
o
o
o
|
|
|
|
1
1
1
1
2
2
2
2
C D
o
|
|
o
|
|
10
10
20
10
10
10
20
10
E
a
a
b
b
a
a
b
b
C D
o
|
|
10
10
20
10
E
a
a
b
b
r
s
Silberschatz, Korth and Sudarshan 2.22 Database System Concepts - 5
th
Edition, June 15, 2005
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
returns the result of expression E under the name X, and with the
attributes renamed to A
1
, A
2
, ., A
n
.
) (
) ,..., , (
2 1
E
n
A A A x