DBMS - Relational Model (Full)
DBMS - Relational Model (Full)
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 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.)
▪ Thus
instructor.id = teaches.id (instructor x teaches ))
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
• 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
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
▪ Query 2
(dept_name=“Physics” (instructor)) ⋈ instructor.ID = teaches.ID teaches
▪ The two queries are not identical; they are, however, equivalent -- they
give the same result on any database.
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