cloused
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
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Example of a Relation
attributes
(or columns)
tuples
(or rows)
*
©Silberschatz, Korth and Sudarshan
2.*
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
- The null value causes complications in the definition of many operations
*
©Silberschatz, Korth and Sudarshan
2.*
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
*
©Silberschatz, Korth and Sudarshan
2.*
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
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Database
- A database consists of multiple relations
- Information about an enterprise is broken up into parts
instructor
student
advisor
- Bad design:
univ (instructor -ID, name, dept_name, salary, student_Id, ..)
results in - repetition of information (e.g., two students have the same instructor)
- the need for null values (e.g., represent an student with no advisor)
- Normalization theory (Chapter 7) deals with how to design “good” relational schemas
*
©Silberschatz, Korth and Sudarshan
2.*
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
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Schema Diagram for University Database
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Relational Query Languages
- Procedural vs.non-procedural, or declarative
- “Pure” languages:
- Relational algebra
- Tuple relational calculus
- Domain relational calculus
- Relational operators
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Selection of tuples
- Relation r
- Select tuples with A=B and D > 5
- σ A=B and D > 5 (r)
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Selection of Columns (Attributes)
- Relation r:
- Select A and C
- Projection
- Π A, C (r)
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Joining two relations – Cartesian Product
- Relations r, s:
- r x s:
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Union of two relations
- Relations r, s:
- r s:
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Set difference of two relations
- Relations r, s:
- r – s:
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Set Intersection of two relations
- Relation r, s:
- r s
*
©Silberschatz, Korth and Sudarshan
2.*
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
- t has the same value as tr on r
- t has the same value as ts on s
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Natural Join Example
- Relations r, s:
- Natural Join
- r s
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure in-2.1
*
Database System Concepts, 6th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use
End of Chapter 2
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.01
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.02
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.03
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.04
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.05
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.06
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.07
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.10
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.11
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.12
*
©Silberschatz, Korth and Sudarshan
2.*
Database System Concepts - 6th Edition
Figure 2.13
*