Rdbms
Rdbms
Model
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
Database System Concepts - 6th Edition 2.6 ©Silberschatz, Korth and Sudarshan
Relation Schema and Instance
A1, A2, …, An are attributes
Database System Concepts - 6th Edition 2.7 ©Silberschatz, Korth and Sudarshan
Relations are Unordered
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
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
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
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)
Relations r
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
Database System Concepts - 6th Edition 2.25 ©Silberschatz, Korth and Sudarshan
Natural Join Example
Relations r, s:
Natural Join
r 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