Chapter 2: Intro To Relational Model
Chapter 2: Intro To Relational Model
Chapter 2: Intro To Relational Model
attributes
(or columns)
tuples
(or rows)
Database System Concepts - 6th Edition 2.2 ©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.3 ©Silberschatz, Korth and Sudarshan
Relation Schema and Instance
A1, A2, …, An are attributes
Database System Concepts - 6th Edition 2.4 ©Silberschatz, Korth and Sudarshan
Relations are Unordered
Database System Concepts - 6th Edition 2.5 ©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.6 ©Silberschatz, Korth and Sudarshan
Schema Diagram for University Database
Database System Concepts - 6th Edition 2.7 ©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.8 ©Silberschatz, Korth and Sudarshan
To call back
Database System Concepts - 6th Edition 2.9 ©Silberschatz, Korth and Sudarshan
Examples:
Simple college admissions database
College(cName,state,enrollment)
Student(sID,sName,GPA,sizeHS)
Apply(sID,cName,major,decision)
Apply
College
Student
sID sName GP HS
A
Database System Concepts - 6th Edition 2.10 ©Silberschatz, Korth and Sudarshan
Cont.
Simple Query: Relation name
sID sName GP HS
Student - A
Apply
College
Student
sID sName GP HS
A
Database System Concepts - 6th Edition 2.11 ©Silberschatz, Korth and Sudarshan
Use operators to filter, silce, combine
Select operator: picks certain rows
sID sName GPA HS
Student 1818 Ahmed 3 4
29 Ali 3.8 40
Database System Concepts - 6th Edition 2.12 ©Silberschatz, Korth and Sudarshan
Select Operation – selection of rows (tuples)
Relation r
Database System Concepts - 6th Edition 2.13 ©Silberschatz, Korth and Sudarshan
Use operators to filter, silce, combine
Project operator: picks certain columns
sID cName Maj Dec
Apply
1818 stanford CS Accepted
29 Marej Bio Accepted
1. Student id and college
sID cName
sID,cName (Apply)
1818 stanford
29 Marej
Database System Concepts - 6th Edition 2.14 ©Silberschatz, Korth and Sudarshan
Project Operation – selection of columns (Attributes)
Relation r:
A,C (r)
Database System Concepts - 6th Edition 2.15 ©Silberschatz, Korth and Sudarshan
Cross-product: combine two relations
Cartesian product
Student Apply
sID sName GPA HS sID cName Maj Dec
1818 Ahmed 3 4 1818 stanford CS Accepted
29 Ali 3.8 40 29 Marej Bio Accepted
- Student X Apply
1. Names and GPAs of students with HS >1000 who applied CS and
were rejected.
?
2. name of student who study at CS
s.sName (s.sID=a.sID ^ maj=‘CS’ (Student X Apply))
Database System Concepts - 6th Edition 2.16 ©Silberschatz, Korth and Sudarshan
Cross-product .cont
# Note: student as s and Apply as a
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
Natural Join
Student Apply
Q: Names and GPAs of students with HS>500 who applied to CS at college with enr >2000
and were accepted
Database System Concepts - 6th Edition 2.19 ©Silberschatz, Korth and Sudarshan
Natural Join Example
Relations r, s:
Natural Join
R s
Database System Concepts - 6th Edition 2.20 ©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.21 ©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.22 ©Silberschatz, Korth and Sudarshan
Union of two relations
Relations r, s:
r s:
Database System Concepts - 6th Edition 2.23 ©Silberschatz, Korth and Sudarshan
Set difference of two relations
Relations r, s:
r – s:
Database System Concepts - 6th Edition 2.24 ©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.25 ©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.26 ©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.27 ©Silberschatz, Korth and Sudarshan
Natural join. note
Database System Concepts - 6th Edition 2.28 ©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.29 ©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.30 ©Silberschatz, Korth and Sudarshan
End of Chapter 2