0% found this document useful (0 votes)
15 views

Chapter 2

Uploaded by

monica.jitao
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Chapter 2

Uploaded by

monica.jitao
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Chapter 2: Intro to Relational Model

Database System Concepts, 7th Ed.


©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
Outline

§ Structure of Relational Databases


§ Database Schema
§ Keys
§ Schema Diagrams
§ Relational Query Languages
§ The Relational Algebra
§ Homework (won’t be collected, won’t be marked, check the answer
yourself)

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

§ A1, A2, …, An are attributes


§ R = (A1, A2, …, An ) is a relation schema
Example:
instructor = (ID, name, dept_name, salary)
§ A relation instance r defined over schema R is denoted by r (R).
§ The current values a relation are specified by a table
§ An element t of relation r is called a tuple and is represented by
a row in a table

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

Book Author
Database System Concepts Silberschatz, Korth, Sudarshan

Book Author
Database System Concepts Silberschatz
Database System Concepts Korth
Database System Concepts Sudarshan

§ 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

§ Order of tuples is irrelevant (tuples may be stored in an arbitrary order)


§ Example: instructor relation with unordered tuples

Database System Concepts - 7th Edition 2.6 ©Silberschatz, Korth and Sudarshan
Database Schema

§ Database schema -- is the logical structure of the database.


§ Database instance -- is a snapshot of the data in the database at a given
instant in time.
§ Example:
• schema: instructor (ID, name, dept_name, salary)
• Instance:

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
department
§ One of the candidate keys is selected to be the primary key.
• Which one? instructor
§ 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
Another example of primary key

Database System Concepts - 7th Edition 2.9 ©Silberschatz, Korth and Sudarshan
Schema Diagram for University Database

Database System Concepts - 7th Edition 2.10 ©Silberschatz, Korth and Sudarshan
Relational Query Languages

§ Procedural versus non-procedural, or declarative


• Even though SQL (structed query languate) has some procedural
elements, it is non-procedural. The user describes the desired
information; the database system figure out the most efficient way to
obtain the desired information.
Each SQL query is translated into several query evaluation plans represented using
"relational algebra with annotations”. Annotation states the algorithm to be used for a
specific operation or the particular index or indices to use. (see chapter 15 for details)

§ 3 Formal Relational Query Languages:


• Relational algebra (procedural)
• Tuple relational calculus (non-procedural, chapter 27, online)
• Domain relational calculus (non-procedural, chapter 27, online)
The above 3 pure languages are equivalent in computing power
§ We will concentrate in this chapter on relational algebra
• Consists of 6 basic operations

Database System Concepts - 7th Edition 2.11 ©Silberschatz, Korth and Sudarshan
Relational Algebra

§ A procedural language consisting of a set of operations that take one or


two relations as input and produce a new relation as their result.
§ Six basic operators
• select: s (sigma)
• project: Õ (pi)
• union: È
• set difference: –
• Cartesian product: x
• rename: r (rho)

Database System Concepts - 7th Edition 2.12 ©Silberschatz, Korth and Sudarshan
Select Operation

§ The select operation selects tuples that satisfy a given


predicate (something that is affirmed or denied in a proposition in logic).
§ Notation: s p (r)
§ p is called the selection predicate
§ Example: select those tuples of the instructor relation
where the instructor is in the “Physics” department.
• Query
s dept_name=“Physics” (instructor)
• Result

Database System Concepts - 7th Edition 2.13 ©Silberschatz, Korth and Sudarshan
Select Operation (Cont.)
§ We allow comparisons using
=, ¹, >, ³. <. £
in the selection predicate.
§ We can combine several predicates into a larger predicate by using the
connectives:
Ù (and), Ú (or), ¬ (not)
§ Example: Find the instructors in Physics with
a salary greater $90,000, we write:
s dept_name=“Physics” Ù salary > 90,000 (instructor)

§ The select predicate may include comparisons between two attributes.


• Example, find all departments whose name is the same as their
building name:
• s dept_name=building (department)

Database System Concepts - 7th Edition 2.14 ©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.15 ©Silberschatz, Korth and Sudarshan
Project Operation Example

§ Example: eliminate the dept_name attribute of instructor


§ Query:
ÕID, name, salary (instructor)
§ Result:

Database System Concepts - 7th Edition 2.16 ©Silberschatz, Korth and Sudarshan
Project Operation Example

§ How to remove the duplicated rows in the result?

MySQL PostgreSQL

Database System Concepts - 7th Edition 2.17 ©Silberschatz, Korth and Sudarshan
Composition of Relational Operations
§ The result of a relational-algebra operation is relation and therefore
relational-algebra operations can be composed together into a
relational-algebra expression.
§ Consider the query -- Find the names of all instructors in the Physics
department.

Õname(s dept_name =“Physics” (instructor))

§ Instead of giving the name of a relation as the argument of the projection


operation, we give an expression that evaluates to a relation.

from clause -> where clause -> select clause

(see page 78 of the textbook)

Database System Concepts - 7th Edition 2.18 ©Silberschatz, Korth and Sudarshan
Cartesian-Product Operation

§ The Cartesian-product operation (denoted by X) allows us to combine


information from any two relations.
§ Example: the Cartesian product of the relations instructor and teaches is
written as:
instructor X teaches
§ We construct a tuple of the result out of each possible pair of tuples: one
from the instructor relation and one from the teaches relation (see next
slide)
§ Since the instructor ID appears in both relations we distinguish between
these attribute by attaching to the attribute the name of the relation from
which the attribute originally came.
• instructor.ID
• teaches.ID

Database System Concepts - 7th Edition 2.19 ©Silberschatz, Korth and Sudarshan
The instructor X teaches table

Database System Concepts - 7th Edition 2.20 ©Silberschatz, Korth and Sudarshan
The instructor X teaches table

Database System Concepts - 7th Edition 2.21 ©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:
s instructor.ID = teaches.ID (instructor x teaches ))

• We get only those tuples of “instructor X teaches” that pertain to


instructors and the courses that they taught.
§ The result of this expression, shown in the next slide

Database System Concepts - 7th Edition 2.22 ©Silberschatz, Korth and Sudarshan
Join Operation (Cont.)

§ The table corresponding to:


s instructor.ID = teaches.ID (instructor x teaches))

Database System Concepts - 7th Edition 2.23 ©Silberschatz, Korth and Sudarshan
Join Operation (Cont.)

§ The SQL code corresponding to:


s instructor.ID = teaches.ID (instructor x teaches)) Equivalent to the statement on the left

Database System Concepts - 7th Edition 2.24 ©Silberschatz, Korth and Sudarshan
Join Operation (Cont.)

§ The join operation allows us to combine a select operation and a


Cartesian-Product operation into a single operation.
§ Consider relations r (R) and s (S)
§ Let “theta” be a predicate on attributes in the schema R “union” S. The
join operation r ⋈! s is defined as follows:
𝑟 ⋈! 𝑠 = 𝜎! (𝑟 × 𝑠)

§ Thus
s instructor.ID = teaches.ID (instructor x teaches )

can equivalently be written as


instructor ⋈ Instructor.ID = teaches.ID teaches.

Database System Concepts - 7th Edition 2.25 ©Silberschatz, Korth and Sudarshan
Union Operation

§ The union operation allows us to combine two relations


§ Notation: r È s
§ For r È s to be valid.
1. r, s must have the same arity (same number of attributes)
2. The attribute domains must be compatible (example: 2nd
column of r deals with the same type of values as does the
2nd column of s)
§ Example: to find all courses taught in the Fall 2017 semester, or in the
Spring 2018 semester, or in both
Õcourse_id (s semester=“Fall” Λ year=2017 (section)) È
Õcourse_id (s semester=“Spring” Λ year=2018 (section))

Database System Concepts - 7th Edition 2.26 ©Silberschatz, Korth and Sudarshan
Union Operation (Cont.)

§ Result of:
Õcourse_id (s semester=“Fall” Λ year=2017 (section)) È
Õcourse_id (s semester=“Spring” Λ year=2018 (section))

Database System Concepts - 7th Edition 2.27 ©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 (s semester=“Fall” Λ year=2017 (section)) Ç
Õcourse_id (s semester=“Spring” Λ year=2018 (section))

• Result

Database System Concepts - 7th Edition 2.28 ©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 (s semester=“Fall” Λ year=2017 (section)) −
Õcourse_id (s semester=“Spring” Λ year=2018 (section))

Database System Concepts - 7th Edition 2.29 ©Silberschatz, Korth and Sudarshan
The Assignment Operation

§ It is convenient at times to write a relational-algebra expression by


assigning parts of it to temporary relation variables.
§ The assignment operation is denoted by ¬ and works like assignment in
a programming language.
§ Example: Find all instructor in the “Physics” and Music department.
Physics ¬ s dept_name=“Physics” (instructor)
Music ¬ s dept_name=“Music” (instructor)
Physics È Music

§ With the assignment operation, a query can be written as a sequential


program consisting of a series of assignments followed by an expression
whose value is displayed as the result of the query.

Database System Concepts - 7th Edition 2.30 ©Silberschatz, Korth and Sudarshan
The Assignment Operation

§ Example: Find all instructor in the “Physics” and Music department.


Physics ¬ s dept_name=“Physics” (instructor)
Music ¬ s dept_name=“Music” (instructor)
Physics È Music

A temporary table is visible only


within the current session, and is
dropped automatically when the
session is closed.

Database System Concepts - 7th Edition 2.31 ©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, r , is provided for that
purpose
§ The expression:
rx (E)
returns the result of expression E under the name x
§ Another form of the rename operation:
rx(A1,A2, …,An) (E)
returns the result of expression E under the name x, and with the
attributes renamed to A1,A2,…,An.

Database System Concepts - 7th Edition 2.32 ©Silberschatz, Korth and Sudarshan
The Rename Operation

§ Find the ID and name of those instructors who earn more than the
instructor whose ID is 12121.

§ The difficulty is that we need to reference the instructor relation once to


get the salary of each instructor and then a second time to get the salary
of instructor 12121.

Database System Concepts - 7th Edition 2.33 ©Silberschatz, Korth and Sudarshan
The Rename Operation

an expression that generates a table within the scope of a query


FROM clause.

Database System Concepts - 7th Edition 2.34 ©Silberschatz, Korth and Sudarshan
Equivalent Queries

§ There is more than one way to write a query in relational algebra.


§ Example: Find information about courses taught by instructors in the
Physics department with salary greater than 90,000
§ Query 1
s dept_name=“Physics” Ù salary > 90,000 (instructor)

§ Query 2
s dept_name=“Physics” (s 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.35 ©Silberschatz, Korth and Sudarshan
Equivalent Queries

§ There is more than one way to write a query in relational algebra.


§ Example: Find information about courses taught by instructors in the
Physics department
§ Query 1
sdept_name=“Physics” (instructor ⋈ instructor.ID = teaches.ID teaches)

§ Query 2
(sdept_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.

§ Query optimizers in database systems typically look at what result an


expression computes, find several efficient ways of computing that result,
then pick up the most efficient one, rather than following the exact
sequence of steps specified in the query. The algebraic structure of
relational algebra makes it easy to find efficient but equivalent alternative
expressions. See chapter 16.

Database System Concepts - 7th Edition 2.36 ©Silberschatz, Korth and Sudarshan
Equivalent Queries

Database System Concepts - 7th Edition 2.37 ©Silberschatz, Korth and Sudarshan
Features of Good Relational Designs
(a slide from chapter 7)

§ Suppose we combine instructor and department into in_dep, which


represents the natural join on the relations instructor and department

§ There is repetition of information

Database System Concepts - 7th Edition 2.38 ©Silberschatz, Korth and Sudarshan
Decomposition
(a slide from chapter 7)

§ The only way to avoid the repetition-


of-information problem in the in_dep
schema is to decompose it into two
schemas – instructor and
department schemas.

Database System Concepts - 7th Edition 2.39 ©Silberschatz, Korth and Sudarshan
End of Chapter 2

Database System Concepts - 7th Edition 2.40 ©Silberschatz, Korth and Sudarshan
Homework:
• Write and run those MySQL example codes in the slides.

• Optional (won’t be collected and won’t be marked):


Think about and then read the solutions to Questions 2.2, 2.6,
2.12, 2.13, 2.15 on Page 60 of the textbook.

Database System Concepts - 7th Edition 2.41 ©Silberschatz, Korth and Sudarshan

You might also like