intro to relational models

Upload: fahad-ahmad

Post on 06-Jul-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 intro to relational models

    1/30

    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

    http://www.db-book.com/http://www.db-book.com/http://www.db-book.com/http://www.db-book.com/

  • 8/17/2019 intro to relational models

    2/30

    ©Silberschatz, Korth and Sudarshan2.2Database System Concepts - 6th Edition

    Example of a Relation

    attributes(or columns)

    tuples

    (or rows)

  • 8/17/2019 intro to relational models

    3/30

    ©Silberschatz, Korth and Sudarshan2.3Database 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

  • 8/17/2019 intro to relational models

    4/30

    ©Silberschatz, Korth and Sudarshan2.4Database 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

  • 8/17/2019 intro to relational models

    5/30

  • 8/17/2019 intro to relational models

    6/30

    ©Silberschatz, Korth and Sudarshan2.6Database 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

  • 8/17/2019 intro to relational models

    7/30©Silberschatz, Korth and Sudarshan2.7Database System Concepts - 6th Edition

    Keys

    Let K ⊆ R

    K is a superkey of R if values for K are sufficient to identify a uniquetuple 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

  • 8/17/2019 intro to relational models

    8/30©Silberschatz, Korth and Sudarshan2.8Database System Concepts - 6th Edition

    Schema Diagram for University Database

  • 8/17/2019 intro to relational models

    9/30©Silberschatz, Korth and Sudarshan2.9Database 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

  • 8/17/2019 intro to relational models

    10/30©Silberschatz, Korth and Sudarshan2.10Database System Concepts - 6th Edition

    Selection of tuples

    Relation r

    Select tuples with A=B

    and D > 5

    σ  A=B and D > 5 (r)

  • 8/17/2019 intro to relational models

    11/30©Silberschatz, Korth and Sudarshan2.11Database System Concepts - 6th Edition

    Selection of Columns (Attributes)

    Relation r :

     Select A and C

    Projection

    Π  A, C (r)

  • 8/17/2019 intro to relational models

    12/30©Silberschatz, Korth and Sudarshan2.12Database System Concepts - 6th Edition

    Joining two relations – Cartesian Product

    Relations r, s:

    r  x s:

  • 8/17/2019 intro to relational models

    13/30©Silberschatz, Korth and Sudarshan2.13Database System Concepts - 6th Edition

    Union of two relations

    Relations r, s: 

    r ∪ s:

  • 8/17/2019 intro to relational models

    14/30©Silberschatz, Korth and Sudarshan2.14Database System Concepts - 6th Edition

    Set difference of two relations

    Relations r , s:

    r – s:

  • 8/17/2019 intro to relational models

    15/30©Silberschatz, Korth and Sudarshan2.15Database System Concepts - 6th Edition

    Set Intersection of two relations

    Relation r, s:

    r  ∩ s

  • 8/17/2019 intro to relational models

    16/30©Silberschatz, Korth and Sudarshan2.16Database 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 

  • 8/17/2019 intro to relational models

    17/30©Silberschatz, Korth and Sudarshan2.17Database System Concepts - 6th Edition

    Natural Join Example

    Relations r, s:

    Natural Join

    r s

  • 8/17/2019 intro to relational models

    18/30©Silberschatz, Korth and Sudarshan2.18Database System Concepts - 6th Edition

    Figure in-2.1

  • 8/17/2019 intro to relational models

    19/30

    Database System Concepts, 6th Ed.

    ©Silberschatz, Korth and Sudarshan

    See www.db-book.com for conditions on re-use

    End of Chapter 2

    http://www.db-book.com/http://www.db-book.com/http://www.db-book.com/http://www.db-book.com/

  • 8/17/2019 intro to relational models

    20/30©Silberschatz, Korth and Sudarshan2.20Database System Concepts - 6th Edition

    Figure 2.01

  • 8/17/2019 intro to relational models

    21/30©Silberschatz, Korth and Sudarshan2.21Database System Concepts - 6th Edition

    Figure 2.02

  • 8/17/2019 intro to relational models

    22/30©Silberschatz, Korth and Sudarshan2.22Database System Concepts - 6th Edition

    Figure 2.03

  • 8/17/2019 intro to relational models

    23/30

    ©Silberschatz, Korth and Sudarshan2.23Database System Concepts - 6th Edition

    Figure 2.04

  • 8/17/2019 intro to relational models

    24/30

    ©Silberschatz, Korth and Sudarshan2.24Database System Concepts - 6th Edition

    Figure 2.05

  • 8/17/2019 intro to relational models

    25/30

    ©Silberschatz, Korth and Sudarshan2.25Database System Concepts - 6th Edition

    Figure 2.06

  • 8/17/2019 intro to relational models

    26/30

    ©Silberschatz, Korth and Sudarshan2.26Database System Concepts - 6th Edition

    Figure 2.07

  • 8/17/2019 intro to relational models

    27/30

    ©Silberschatz, Korth and Sudarshan2.27Database System Concepts - 6th Edition

    Figure 2.10

  • 8/17/2019 intro to relational models

    28/30

    ©Silberschatz, Korth and Sudarshan2.28Database System Concepts - 6th Edition

    Figure 2.11

  • 8/17/2019 intro to relational models

    29/30

    ©Silberschatz, Korth and Sudarshan2.29Database System Concepts - 6th Edition

    Figure 2.12

  • 8/17/2019 intro to relational models

    30/30

    Figure 2.13