CH 2
CH 2
Model
attributes
(or columns)
tuples
(or rows)
Database System Concepts - 6th Edition 2.2 ©Silberschatz, Korth and Sudarshan
Module Objectives
Database System Concepts - 6th Edition 2.3 ©Silberschatz, Korth and Sudarshan
Module Outline
Attribute types
Relation Schema and Instance
Keys
Relational Query Languages
Database System Concepts - 6th Edition 2.4 ©Silberschatz, Korth and Sudarshan
Attribute Types
Database System Concepts - 6th Edition 2.5 ©Silberschatz, Korth and Sudarshan
Relation Schema and Instance
A1, A2, …, An are attributes
The current
D1 x D2 values
x…xD (relation
n
instance) of a relation are
(x represents cartesian product)
specified by a table
Thus, a relation is a set of n-tuples (a1, a2, …, an) where
An element t of r is a tuple, represented by a row in a
each ai Di
table
Database System Concepts - 6th Edition 2.6 ©Silberschatz, Korth and Sudarshan
Relations are Unordered
Database System Concepts - 6th Edition 2.7 ©Silberschatz, Korth and Sudarshan
Keys
Let K R
K may have one or multiple values
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? (answer: anyone)
Database System Concepts - 6th Edition 2.8 ©Silberschatz, Korth and Sudarshan
Keys
Super Key: Roll #, {Roll #, DoB}
Candidate Keys: Roll #, Aadhaar # (note: Aadhaar is similar to NID card number)
Database System Concepts - 6th Edition 2.9 ©Silberschatz, Korth and Sudarshan
Keys
Foreign key constraint: Value in one relation must appear in another
Referencing relation
Enrollment: Foreign Keys- Roll #, Course #
Referenced relation
Students, Course
A compound key consists of more than one attribute to uniquely identify
an entity occurrence
Each attribute, which makes up the key, is a simple key in its own
right
{Roll #, Course #}
Students
Roll # First Name Last Name DoB Passport Aadhar # Department
Courses
Course # Course Name Credits Department
Enrolment
(which student taking which course)
Database System Concepts - 6th Edition 2.10 ©Silberschatz, Korth and Sudarshan
Schema Diagram for University
Database
Database System Concepts - 6th Edition 2.11 ©Silberschatz, Korth and Sudarshan
Relational Query Languages
Procedural vs .non-procedural, or declarative
Procedural Language: C, C++, Java
how to get the output
Programmer must know an algorithm
“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.12 ©Silberschatz, Korth and Sudarshan
Select Operation – selection of a subset
of rows/tuples
Relation r
Database System Concepts - 6th Edition 2.13 ©Silberschatz, Korth and Sudarshan
Project Operation – selection of columns
(Attributes)
Relation r:
A,C (r)
Database System Concepts - 6th Edition 2.14 ©Silberschatz, Korth and Sudarshan
Union of two relations(attributes are
same)
Relations r, s:
r s:
Database System Concepts - 6th Edition 2.15 ©Silberschatz, Korth and Sudarshan
Set difference of two relations
Relations r, s:
r – s:
Database System Concepts - 6th Edition 2.16 ©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.17 ©Silberschatz, Korth and Sudarshan
joining two relations -- Cartesian-
product
Relations r, s:
r x s:
Database System Concepts - 6th Edition 2.18 ©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.19 ©Silberschatz, Korth and Sudarshan
Renaming a Table
Allows us to refer to a relation, (say E) by more than one name.
x (E)
Relations r
Database System Concepts - 6th Edition 2.20 ©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.21 ©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
Database System Concepts - 6th Edition 2.22 ©Silberschatz, Korth and Sudarshan
Natural Join Example
Relations r, s:
Natural Join
r s
Database System Concepts - 6th Edition 2.23 ©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.24 ©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.25 ©Silberschatz, Korth and Sudarshan
End of Chapter 2