Ch 2.pdf
- 1. Non è possibile visualizzare l'immagine.
Database System Concepts, 6th Ed.
©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
Chapter 2: Intro to Relational Model
- 2. ©Silberschatz, Korth and Sudarshan
2.2
Database System Concepts - 6th Edition
Example of a Relation
attributes
(or columns)
tuples
(or rows)
- 3. ©Silberschatz, Korth and Sudarshan
2.3
Database System Concepts - 6th Edition
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
- 4. ©Silberschatz, Korth and Sudarshan
2.4
Database System Concepts - 6th Edition
Relation Schema and Instance
■ A1, A2, …, An are attributes
■ R = (A1, A2, …, An ) is a relation schema
Example:
instructor = (ID, name, dept_name, salary)
■ Formally, given sets D1, D2, …. Dn a relation r is a subset of
D1 x D2 x … x Dn
Thus, a relation is a set of n-tuples (a1, a2, …, an) where each ai Î Di
■ The current values (relation instance) of a relation are specified by
a table
■ An element t of r is a tuple, represented by a row in a table
- 5. ©Silberschatz, Korth and Sudarshan
2.5
Database System Concepts - 6th Edition
Relations are Unordered
■ Order of tuples is irrelevant (tuples may be stored in an arbitrary order)
■ Example: instructor relation with unordered tuples
- 6. ©Silberschatz, Korth and Sudarshan
2.6
Database System Concepts - 6th Edition
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
- 8. ©Silberschatz, Korth and Sudarshan
2.8
Database System Concepts - 6th Edition
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 Turing-machine equivalent
● It consists of 6 basic operations
- 9. ©Silberschatz, Korth and Sudarshan
2.9
Database System Concepts - 6th Edition
Select operation – selection of rows (tuples)
■ Relation r
¡ sA=B ^ D > 5 (r)
- 10. ©Silberschatz, Korth and Sudarshan
2.10
Database System Concepts - 6th Edition
Project operation – selection of columns (attributes)
■ Relation r:
■ ÕA,C (r)
- 11. ©Silberschatz, Korth and Sudarshan
2.11
Database System Concepts - 6th Edition
Union of two relations
■ Relations r, s:
■ r È s:
- 12. ©Silberschatz, Korth and Sudarshan
2.12
Database System Concepts - 6th Edition
Set difference of two relations
■ Relations r, s:
■ r – s:
- 13. ©Silberschatz, Korth and Sudarshan
2.13
Database System Concepts - 6th Edition
Set intersection of two relations
■ Relation r, s:
■ r Ç s
Note: r Ç s = r – (r – s)
- 14. ©Silberschatz, Korth and Sudarshan
2.14
Database System Concepts - 6th Edition
Joining two relations – Cartesian product
■ Relations r, s:
■ r x s:
- 15. ©Silberschatz, Korth and Sudarshan
2.15
Database System Concepts - 6th Edition
Cartesian product – naming issue
■ Relations r, s:
■ r x s: s.B
B
r.B
- 16. ©Silberschatz, Korth and Sudarshan
2.16
Database System Concepts - 6th Edition
Renaming a table
■ Allows us to refer to a relation, (say E) by more than one name.
r x (E)
returns the expression E under the name X
■ Relations r
■ r x r s (r)
α
α
β
β
1
1
2
2
α
β
α
β
1
2
1
2
r.A r.B s.A s.B
- 17. ©Silberschatz, Korth and Sudarshan
2.17
Database System Concepts - 6th Edition
Composition of operations
■ Can build expressions using multiple operations
■ Example: sA=C (r x s)
■ r x s
■ sA=C (r x s)
- 18. ©Silberschatz, Korth and Sudarshan
2.18
Database System Concepts - 6th Edition
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
4 t has the same value as tr on r
4 t has the same value as ts on s
- 19. ©Silberschatz, Korth and Sudarshan
2.19
Database System Concepts - 6th Edition
Natural Join Example
■ Relations r, s:
■ Natural Join
■ r s
Õ A, r.B, C, r.D, E (s r.B = s.B ˄ r.D = s.D (r x s)))
- 20. ©Silberschatz, Korth and Sudarshan
2.20
Database System Concepts - 6th Edition
Notes about relational languages
■ Each query input is a table (or a 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 Turing complete
■ Can we compute:
● SUM
● AVG
● MAX
● MIN
- 21. ©Silberschatz, Korth and Sudarshan
2.21
Database System Concepts - 6th Edition
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.
(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.
⋈
-
(Set Difference) Π
name (instructor) -- Π
name (student)
Output the set difference of tuples from the two input relations.
- 22. Non è possibile visualizzare l'immagine.
Database System Concepts, 6th Ed.
©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
End of Chapter 2