cloused

profileraghad_mm
IT403_Wk03_ch21.ppt

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

*