Chapter 2: Intro to Relational
Model
Database System Concepts, 6th Ed.
©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
Database System Concepts - 6th Edition 2.2 ©Silberschatz, Korth and Sudarshan
Database System Concepts - 6th Edition 2.3 ©Silberschatz, Korth and Sudarshan
Data
Domain Constraints: Domain of attributes must be
satisfied.
Entity Constrains: PK cant have NULL values
Database System Concepts - 6th Edition 2.4 ©Silberschatz, Korth and Sudarshan
Example of a Relation
attributes
(or columns)
tuples
(or rows)
Database System Concepts - 6th Edition 2.5 ©Silberschatz, Korth and Sudarshan
Attribute Types
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
The special value null is a member of every domain.
Indicated that the value is “unknown”
The null value causes complications in the
definition of many operations
Database System Concepts - 6th Edition 2.6 ©Silberschatz, Korth and Sudarshan
Relation Schema and Instance
A1, A2, …, An are attributes
R = (A1, A2, …, An ) is a relation schema
Example:
instructor = (ID, name, dept_name, salary)
Formally, given sets D1, D2, …. Dn a relation r is a subset of
D1 x D2 x … x Dn
Thus, a relation is a set of n-tuples (a1, a2, …, an) where
each ai Di
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
Database System Concepts - 6th Edition 2.7 ©Silberschatz, Korth and Sudarshan
Relations are Unordered
Order of tuples is irrelevant (tuples may be stored in an
arbitrary order)
Example: instructor relation with unordered tuples
Database System Concepts - 6th Edition 2.8 ©Silberschatz, Korth and Sudarshan
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)
Example: {ID} and {ID,name} are both superkeys of
instructor.
Superkey K is a candidate key if K is minimal
Example: {ID} is a candidate key for Instructor
One of the candidate keys is selected to be the primary
key.
which one?
Foreign key constraint: Value in one relation must appear in
another
Referencing relation
Referenced relation
Example – dept_name in instructor is a foreign key from
instructor referencing department
Database System Concepts - 6th Edition 2.9 ©Silberschatz, Korth and Sudarshan
“Key” terms
An entity is something of importance to a user that needs to be
represented in a database
An entity represents one theme or topic and is represented by a
table.
The table dimensions, like a matrix, consist of rows (tuples) and
columns (attributes)
Database System Concepts - 6th Edition 2.10 ©Silberschatz, Korth and Sudarshan
A Key
• A (primary) key is one (or more) columns of a relation
that is (are) used to identify a row
• A composite key is a key that contains two or more
attributes
– For a key to be unique, it is sometimes
necessary to use a composite key
– Can also generate a set of unique
values to serve as the key (for
example University ID numbers)
Database System Concepts - 6th Edition 2.11 ©Silberschatz, Korth and Sudarshan
A Foreign Key
A table may be related to other tables (i.e., a relationship)
To create relationships, you may need to create a foreign key
A foreign key is a primary key from one table placed into
another table
Referential integrity - every value of a foreign key must match
a value of an existing primary key
Database System Concepts - 6th Edition 2.12 ©Silberschatz, Korth and Sudarshan
Foreign Key Example
Project Manager
Proj_Num MgrID Primary Key
s hip
i on
Proj_Name a t MgrName
Rel
MgrID
Foreign Key
Database System Concepts - 6th Edition 2.13 ©Silberschatz, Korth and Sudarshan
Schema Diagram for University
Database
Database System Concepts - 6th Edition 2.14 ©Silberschatz, Korth and Sudarshan
Relational Query Languages
Procedural vs .non-procedural, or declarative
“Pure” languages:
Relational algebra
Tuple relational calculus
Domain relational calculus
The above 3 pure languages are equivalent in computing
power
We will concentrate in this chapter on relational algebra
Not turning-machine equivalent
consists of 6 basic operations
Database System Concepts - 6th Edition 2.15 ©Silberschatz, Korth and Sudarshan
Select Operation – selection of rows
(tuples)
Relation r
A=B ^ D > 5 (r)
Database System Concepts - 6th Edition 2.16 ©Silberschatz, Korth and Sudarshan
Project Operation – selection of columns
(Attributes)
Relation r:
A,C (r)
Database System Concepts - 6th Edition 2.17 ©Silberschatz, Korth and Sudarshan
Union of two relations
Relations r, s:
r s:
Database System Concepts - 6th Edition 2.18 ©Silberschatz, Korth and Sudarshan
Set difference of two relations
Relations r, s:
r – s:
Database System Concepts - 6th Edition 2.19 ©Silberschatz, Korth and Sudarshan
Set intersection of two relations
Relation r, s:
rs
Note: r s = r – (r – s)
Database System Concepts - 6th Edition 2.20 ©Silberschatz, Korth and Sudarshan
joining two relations -- Cartesian-
product
Relations r, s:
r x s:
Database System Concepts - 6th Edition 2.21 ©Silberschatz, Korth and Sudarshan
Cartesian-product – naming issue
Relations r, s: B
r x s: r.B s.B
Database System Concepts - 6th Edition 2.22 ©Silberschatz, Korth and Sudarshan
Renaming a Table
Allows us to refer to a relation, (say E) by more than one name.
x (E)
returns the expression E under the name X
Relations r
r x s (r) r.A r.B s.A s.B
α 1 α 1
α 1 β 2
β 2 α 1
β 2 β 2
Database System Concepts - 6th Edition 2.23 ©Silberschatz, Korth and Sudarshan
Composition of Operations
Can build expressions using multiple operations
Example: A=C (r x s)
rxs
A=C (r x s)
Database System Concepts - 6th Edition 2.24 ©Silberschatz, Korth and Sudarshan
Joining two relations – Natural Join
Let r and s be relations on schemas R and S
respectively.
Then, the “natural join” of relations R and 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
Database System Concepts - 6th Edition 2.25 ©Silberschatz, Korth and Sudarshan
Natural Join Example
Relations r, s:
Natural Join
r s
A, r.B, C, r.D, E ( r.B = s.B ˄ r.D = s.D (r x s)))
Database System Concepts - 6th Edition 2.26 ©Silberschatz, Korth and Sudarshan
Notes about Relational Languages
Each Query input is a table (or set of tables)
Each query output is a table.
All data in the output table appears in one of the input
tables
Relational Algebra is not Turning complete
Can we compute:
SUM
AVG
MAX
MIN
Database System Concepts - 6th Edition 2.27 ©Silberschatz, Korth and Sudarshan
Summary of Relational Algebra
Operators
Symbol (Name) Example of Use
σ
(Selection) σ
salary > = 85000 (instructor)
Return rows of the input relation that satisfy the predicate.
Π
(Projection) Π
ID, salary (instructor)
Output specified attributes from all rows of the input relation. Remove
duplicate tuples from the output.
x
(Cartesian Product) instructor x department
Output pairs of rows from the two input relations that have the same value on
all attributes that have the same name.
∪
(Union) Π
name (instructor) ∪ Π
name (student)
Output the union of tuples from the two input relations.
-
(Set Difference) Π
name (instructor) -- Π
name (student)
Output the set difference of tuples from the two input relations.
⋈
(Natural Join) instructor ⋈ department
Output pairs of rows from the two input relations that have the same value on
all attributes that have the same name.
Database System Concepts - 6th Edition 2.28 ©Silberschatz, Korth and Sudarshan
End of Chapter 2
Database System Concepts, 6th Ed.
©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use