lecture 3 relational model
lecture 3 relational model
Database System Concepts - 7th Edition 2.2 ©Silberschatz, Korth and Sudarshan
Example of a Instructor Relation
attributes
(or columns)
tuples
(or rows)
Database System Concepts - 7th Edition 2.3 ©Silberschatz, Korth and Sudarshan
Relation Schema and Instance
Database System Concepts - 7th Edition 2.4 ©Silberschatz, Korth and Sudarshan
Attributes
▪ 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 - 7th Edition 2.5 ©Silberschatz, Korth and Sudarshan
Relations are Unordered
Database System Concepts - 7th Edition 2.6 ©Silberschatz, Korth and Sudarshan
Database Schema
Database System Concepts - 7th Edition 2.7 ©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 - 7th Edition 2.8 ©Silberschatz, Korth and Sudarshan
Schema Diagram for University Database
Database System Concepts - 7th Edition 2.9 ©Silberschatz, Korth and Sudarshan
Relational Query Languages
Database System Concepts - 7th Edition 2.10 ©Silberschatz, Korth and Sudarshan
Relational Algebra
Database System Concepts - 7th Edition 2.11 ©Silberschatz, Korth and Sudarshan
Select Operation
Database System Concepts - 7th Edition 2.12 ©Silberschatz, Korth and Sudarshan
Select Operation (Cont.)
Database System Concepts - 7th Edition 2.13 ©Silberschatz, Korth and Sudarshan
Project Operation
▪ A unary operation that returns its argument relation, with certain attributes left out.
▪ Notation:
∏ A1,A2,A3 ….Ak (r)
where A1, A2, …, Ak are attribute names and r is a relation name.
▪ The result is defined as the relation of k columns obtained by erasing the columns
that are not listed
▪ Duplicate rows removed from result, since relations are sets
Database System Concepts - 7th Edition 2.14 ©Silberschatz, Korth and Sudarshan
Project Operation Example
Database System Concepts - 7th Edition 2.15 ©Silberschatz, Korth and Sudarshan
Composition of Relational Operations
Database System Concepts - 7th Edition 2.16 ©Silberschatz, Korth and Sudarshan
Cartesian-Product Operation
Database System Concepts - 7th Edition 2.17 ©Silberschatz, Korth and Sudarshan
The instructor X teaches table
Database System Concepts - 7th Edition 2.18 ©Silberschatz, Korth and Sudarshan
Join Operation
▪ The Cartesian-Product
instructor X teaches
associates every tuple of instructor with every tuple of teaches.
• Most of the resulting rows have information about instructors who did NOT
teach a particular course.
▪ To get only those tuples of “instructor X teaches “ that pertain to instructors and
the courses that they taught, we write:
σ instructor.id = teaches.id
(instructor x teaches ))
Database System Concepts - 7th Edition 2.19 ©Silberschatz, Korth and Sudarshan
Join Operation (Cont.)
Database System Concepts - 7th Edition 2.20 ©Silberschatz, Korth and Sudarshan
Join Operation (Cont.)
Database System Concepts - 7th Edition 2.21 ©Silberschatz, Korth and Sudarshan
Union Operation
Database System Concepts - 7th Edition 2.22 ©Silberschatz, Korth and Sudarshan
Union Operation (Cont.)
▪ Result of:
∏course_id (σ semester=“Fall” Λ year=2017
(section)) ∪
∏course_id (σ semester=“Spring” Λ year=2018
(section))
Database System Concepts - 7th Edition 2.23 ©Silberschatz, Korth and Sudarshan
Set-Intersection Operation
▪ The set-intersection operation allows us to find tuples that are in both the input
relations.
▪ Notation: r ∩ s
▪ Assume:
• r, s have the same arity
• attributes of r and s are compatible
▪ Example: Find the set of all courses taught in both the Fall 2017 and the Spring
2018 semesters.
∏course_id (σ semester=“Fall” Λ year=2017 (section)) ∩
∏course_id (σ semester=“Spring” Λ year=2018 (section))
• Result
Database System Concepts - 7th Edition 2.24 ©Silberschatz, Korth and Sudarshan
Set Difference Operation
▪ The set-difference operation allows us to find tuples that are in one relation but are
not in another.
▪ Notation r – s
▪ Set differences must be taken between compatible relations.
• r and s must have the same arity
• attribute domains of r and s must be compatible
▪ Example: to find all courses taught in the Fall 2017 semester, but not in the Spring
2018 semester
∏course_id (σ semester=“Fall” Λ year=2017
(section)) −
∏course_id (σ semester=“Spring” Λ year=2018
(section))
Database System Concepts - 7th Edition 2.25 ©Silberschatz, Korth and Sudarshan
The Assignment Operation
Database System Concepts - 7th Edition 2.26 ©Silberschatz, Korth and Sudarshan
The Rename Operation
▪ The results of relational-algebra expressions do not have a name that we can use to
refer to them. The rename operator, ρ , is provided for that purpose
▪ The expression:
ρx (E)
returns the result of expression E under the name x
▪ Another form of the rename operation:
ρx(A1,A2, .. An) (E)
Database System Concepts - 7th Edition 2.27 ©Silberschatz, Korth and Sudarshan
Equivalent Queries
▪ Query 2
σ dept_name=“Physics” (σ salary > 90.000 (instructor))
▪ The two queries are not identical; they are, however, equivalent -- they give the
same result on any database.
Database System Concepts - 7th Edition 2.28 ©Silberschatz, Korth and Sudarshan
Equivalent Queries
Database System Concepts - 7th Edition 2.29 ©Silberschatz, Korth and Sudarshan
End of Chapter 2
Database System Concepts - 7th Edition 2.30 ©Silberschatz, Korth and Sudarshan