SlideShare une entreprise Scribd logo
1  sur  96
Chapter 2: Relational Model




    Database System Concepts, 5 th Ed.
         ©Silberschatz, Korth and Sudarshan
    See www.db-book.com for conditions on re-use
Chapter 2: Relational Model
             s Structure of Relational Databases
             s Fundamental Relational-Algebra-Operations
             s Additional Relational-Algebra-Operations
             s Extended Relational-Algebra-Operations
             s Null Values
             s Modification of the Database




atabase System Concepts - 5 th Edition, June 15, 2005   2.2   ©Silberschatz, Korth and Sudarshan
Example of a Relation




atabase System Concepts - 5 th Edition, June 15, 2005   2.3   ©Silberschatz, Korth and Sudarshan
Attribute Types
             s Each attribute of a relation has a name
             s The set of allowed values for each attribute is called the domain of the
                  attribute
             s Attribute values are (normally) required to be atomic; that is, indivisible
                   q    E.g. the value of an attribute can be an account number,
                        but cannot be a set of account numbers
             s Domain is said to be atomic if all its members are atomic
             s The special value null is a member of every domain
             s The null value causes complications in the definition of many operations
                   q    We shall ignore the effect of null values in our main presentation and
                        consider their effect later




atabase System Concepts - 5 th Edition, June 15, 2005   2.4                ©Silberschatz, Korth and Sudarshan
Relation Schema

             s Formally, given domains 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
             s Schema of a relation consists of
                   q    attribute definitions
                            name
                            type/domain
                   q    integrity constraints




atabase System Concepts - 5 th Edition, June 15, 2005   2.5                ©Silberschatz, Korth and Sudarshan
Relation Instance
             s The current values (relation instance) of a relation are specified by a
                  table
             s An element t of r is a tuple, represented by a row in a table
             s Order of tuples is irrelevant (tuples may be stored in an arbitrary order)


                                                                                          attributes
                                                                                        (or columns)
                           customer_name customer_street              customer_city

                           Jones                        Main          Harrison
                           Smith                        North         Rye                     tuples
                           Curry                        North         Rye                   (or rows)
                           Lindsay                      Park          Pittsfield

                                                           customer




atabase System Concepts - 5 th Edition, June 15, 2005           2.6                ©Silberschatz, Korth and Sudarshan
Database
             s A database consists of multiple relations

             s Information about an enterprise is broken up into parts, with each
                  relation storing one part of the information
             s E.g.

                          account : information about accounts
                         depositor : which customer owns which account
                         customer : information about customers




atabase System Concepts - 5 th Edition, June 15, 2005      2.7           ©Silberschatz, Korth and Sudarshan
The customer Relation




atabase System Concepts - 5 th Edition, June 15, 2005   2.8   ©Silberschatz, Korth and Sudarshan
The depositor Relation




atabase System Concepts - 5 th Edition, June 15, 2005   2.9   ©Silberschatz, Korth and Sudarshan
Why Split Information Across
                                  Relations?
             s Storing all information as a single relation such as
                    bank(account_number, balance, customer_name, ..)
                  results in
                    q   repetition of information
                             e.g.,if two customers own an account (What gets repeated?)
                    q   the need for null values
                             e.g., to represent a customer without an account
             s Normalization theory (Chapter 7) deals with how to design relational
                  schemas




atabase System Concepts - 5 th Edition, June 15, 2005   2.10                ©Silberschatz, Korth and Sudarshan
Keys
        s Let K ⊆ R
        s K is a superkey of R if values for K are sufficient to identify a unique tuple of
             each possible relation r(R)
              q    by “possible r ” we mean a relation r that could exist in the enterprise we
                   are modeling.
              q    Example: {customer_name, customer_street} and
                                   {customer_name}
                   are both superkeys of Customer, if no two customers can possibly have
                   the same name
                       In real life, an attribute such as customer_id would be used instead of
                        customer_name to uniquely identify customers, but we omit it to keep
                        our examples small, and instead assume customer names are unique.




atabase System Concepts - 5 th Edition, June 15, 2005    2.11              ©Silberschatz, Korth and Sudarshan
Keys (Cont.)
             s K is a candidate key if K is minimal
                  Example: {customer_name} is a candidate key for Customer, since it
                  is a superkey and no subset of it is a superkey.
             s Primary key: a candidate key chosen as the principal means of
                  identifying tuples within a relation
                    q   Should choose an attribute whose value never, or very rarely,
                        changes.
                    q   E.g. email address is unique, but may change




atabase System Concepts - 5 th Edition, June 15, 2005   2.12              ©Silberschatz, Korth and Sudarshan
Foreign Keys
           s A relation schema may have an attribute that corresponds to the primary
                key of another relation. The attribute is called a foreign key.
                  q   E.g. customer_name and account_number attributes of depositor are
                      foreign keys to customer and account respectively.
                  q   Only values occurring in the primary key attribute of the referenced
                      relation may occur in the foreign key attribute of the referencing
                      relation.




atabase System Concepts - 5 th Edition, June 15, 2005   2.13             ©Silberschatz, Korth and Sudarshan
Schema Diagram




atabase System Concepts - 5 th Edition, June 15, 2005   2.14   ©Silberschatz, Korth and Sudarshan
Query Languages
             s Language in which user requests information from the database.
             s Categories of languages
                    q   Procedural
                    q   Non-procedural, or declarative
             s “Pure” languages:
                    q   Relational algebra
                    q   Tuple relational calculus
                    q   Domain relational calculus
             s Pure languages form underlying basis of query languages that people
                  use.




atabase System Concepts - 5 th Edition, June 15, 2005   2.15       ©Silberschatz, Korth and Sudarshan
Relational Algebra
             s Procedural language
             s Six basic operators

                   q    select: σ
                   q    project: ∏
                   q    union: ∪
                   q    set difference: –
                   q    Cartesian product: x
                   q    rename: ρ
             s The operators take one or two relations as inputs and produce a new
                  relation as a result.




atabase System Concepts - 5 th Edition, June 15, 2005   2.16       ©Silberschatz, Korth and Sudarshan
Select Operation – Example
             s Relation r
                                                        A   B   C      D

                                                        α   α   1      7
                                                        α   β   5      7
                                                        β   β   12     3
                                                        β   β   23 10



               σA=B ^ D > 5 (r)
                                                        A   B    C     D

                                                        α   α    1     7
                                                        β   β   23 10



atabase System Concepts - 5 th Edition, June 15, 2005           2.17       ©Silberschatz, Korth and Sudarshan
Project Operation – Example
             s Relation r:                     A        B    C

                                               α        10   1
                                               α        20   1
                                               β        30   1
                                               β        40   2



             ∏A,C (r)                  A      C              A    C

                                       α      1              α    1
                                       α      1         =    β    1
                                       β      1              β    2
                                       β      2



atabase System Concepts - 5 th Edition, June 15, 2005            2.18   ©Silberschatz, Korth and Sudarshan
Union Operation – Example
             s Relations r, s:
                                               A        B              A       B

                                               α        1              α       2
                                               α        2              β       3
                                                β       1                  s
                                                    r


                                                            A     B

             s r ∪ s:                                       α      1
                                                            α      2
                                                            β      1
                                                            β      3



atabase System Concepts - 5 th Edition, June 15, 2005           2.19               ©Silberschatz, Korth and Sudarshan
Set Difference Operation – Example
             s Relations r, s:
                                                A       B              A       B

                                                α       1              α       2
                                                α       2              β       3
                                                β       1                  s
                                                    r


             s r – s:
                                                            A      B

                                                            α      1
                                                            β      1




atabase System Concepts - 5 th Edition, June 15, 2005           2.20               ©Silberschatz, Korth and Sudarshan
Cartesian-Product Operation –
                                   Example
             s Relations r, s:
                                             A       B               C   D    E

                                             α       1               α   10   a
                                                                     β   10   a
                                             β       2               β   20   b
                                                 r                   γ   10   b
                                                                         s
             s r x s:
                                           A         B   C   D       E
                                           α         1   α   10      a
                                           α         1   β   10      a
                                           α         1   β   20      b
                                           α         1   γ   10      b
                                           β         2   α   10      a
                                           β         2   β   10      a
                                           β         2   β   20      b
                                           β         2   γ   10      b


atabase System Concepts - 5 th Edition, June 15, 2005             2.21            ©Silberschatz, Korth and Sudarshan
Rename Operation
             s Allows us to name, and therefore to refer to, the results of relational-
                  algebra expressions.
             s Allows us to refer to a relation by more than one name.
             s Example:

                                                        ρ x (E)

                  returns the expression E under the name X
             s If a relational-algebra expression E has arity n, then

                                           ρx ( A ,A
                                                   1     2 ,..., An   )   (E )

                  returns the result of expression E under the name X, and with the
                  attributes renamed to A1 , A2 , … An .
                                                   .,




atabase System Concepts - 5 th Edition, June 15, 2005                      2.22   ©Silberschatz, Korth and Sudarshan
Composition of Operations
            s Can build expressions using multiple operations
            s Example: σA=C(r x s)
            s rxs
                                     A     B      C     D    E
                                     α      1     α     10   a
                                     α      1     β     10   a
                                     α      1     β     20   b
                                     α      1     γ     10   b
                                     β      2     α     10   a
                                     β      2     β     10   a
                                     β      2     β     20   b
                                     β      2     γ     10   b

            s σA=C(r x s)

                                     A     B      C     D    E

                                    α      1      α 10       a
                                    β      2      β 10       a
                                    β      2      β 20       b

atabase System Concepts - 5 th Edition, June 15, 2005            2.23   ©Silberschatz, Korth and Sudarshan
Banking Example
             branch (branch_name, branch_city, assets)

             customer (customer_name, customer_street, customer_city)

             account (account_number, branch_name, balance)

             loan (loan_number, branch_name, amount)

             depositor (customer_name, account_number)

             borrower (customer_name, loan_number)




atabase System Concepts - 5 th Edition, June 15, 2005   2.24      ©Silberschatz, Korth and Sudarshan
Example Queries




     s Find all loans of over $1200

               σamount > 1200 (loan)
      s Find the loan number for each loan of an amount greater than
                       $1200
                         ∏loan_number (σamount > 1200 (loan))
     s Find the names of all customers who have a loan, an account, or both,
          from the bank

                      ∏customer_name (borrower) ∪ ∏customer_name (depositor)
atabase System Concepts - 5 th Edition, June 15, 2005   2.25          ©Silberschatz, Korth and Sudarshan
Example Queries
             s Find the names of all customers who have a loan at the Perryridge
                  branch.
                                      ∏customer_name (σbranch_name=“   Perryridge”

                             (σborrower.loan_number = loan.loan_number(borrower x loan)))
            s Find the names of all customers who have a loan at the
                Perryridge branch but do not have an account at any branch of
                the bank.
           ∏customer_name (σbranch_name = “ Perryridge”

            (σborrower.loan_number = loan.loan_number(borrower x loan))) –

                ∏customer_name(depositor)




atabase System Concepts - 5 th Edition, June 15, 2005   2.26                ©Silberschatz, Korth and Sudarshan
Example Queries
             s Find the names of all customers who have a loan at the Perryridge branch.

                  q      ∏customer_name (σbranch_name = “Perryridge” (
                          σborrower.loan_number = loan.loan_number (borrower x loan)))
                  q       ∏customer_name(σloan.loan_number = borrower.loan_number (
                                        (σbranch_name = “Perryridge” (loan)) x borrower))




atabase System Concepts - 5 th Edition, June 15, 2005    2.27                 ©Silberschatz, Korth and Sudarshan
Additional Operations


             s Additional Operations

                   q    Set intersection
                   q    Natural join
                   q    Aggregation
                   q    Outer Join
                   q    Division
             s All above, other than aggregation, can be expressed using basic
                  operations we have seen earlier




atabase System Concepts - 5 th Edition, June 15, 2005   2.28        ©Silberschatz, Korth and Sudarshan
Set-Intersection Operation –
                                     Example

             s Relation r, s:
                                           A           B          A       B
                                           α       1              α       2
                                           α       2              β       3
                                           β       1

                                               r                      s

             s r∩s

                                       A           B

                                        α          2




atabase System Concepts - 5 th Edition, June 15, 2005      2.29               ©Silberschatz, Korth and Sudarshan
Natural Join Operation – Example
             s Relations r, s:


                            A    B       C     D                       B   D   E

                            α    1       α     a                       1   a   α
                            β    2       γ     a                       3   a   β
                            γ    4       β     b                       1   a   γ
                            α    1       γ     a                       2   b   δ
                            δ    2       β     b                       3   b   ∈
                                     r                                     s

             s r        s
                                                   A    B   C      D   E
                                                   α    1   α      a   α
                                                   α    1   α      a   γ
                                                   α    1   γ      a   α
                                                   α    1   γ      a   γ
                                                   δ    2   β      b   δ

atabase System Concepts - 5 th Edition, June 15, 2005           2.30               ©Silberschatz, Korth and Sudarshan
Natural-Join Operation
            s     Notation: r               s
            s Let r and s be relations on schemas R and S respectively.
                 Then, r              s is a relation on schema R ∪ S obtained as follows:
                  q   Consider each pair of tuples tr from r and ts from s.

                  q   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
            s Example:
                  R = (A, B, C, D)
                  S = (E, B, D)
                  q   Result schema = (A, B, C, D, E)
                  q   r            s is defined as:
atabase System Concepts - 5   th
                                   Edition, June 15, 2005   2.31                ©Silberschatz, Korth and Sudarshan
Bank Example Queries
          s    Find the largest account balance
                 q   Strategy:
                         Find those balances that are not the largest
                            – Rename account relation as d so that we can compare each
                              account balance with all others
                         Use set difference to find those account balances that were not found
                          in the earlier step.
                 q   The query is:


                      ∏balance(account) - ∏account.balance
                           (σaccount.balance < d.balance (account x ρd (account)))




atabase System Concepts - 5 th Edition, June 15, 2005    2.32                   ©Silberschatz, Korth and Sudarshan
Aggregate Functions and Operations
             s Aggregation function takes a collection of values and returns a
                  single value as a result.
                                             avg: average value
                                             min: minimum value
                                             max: maximum value
                                             sum: sum of values
                                             count: number of values
             s Aggregate operation in relational algebra

                               G1,G2 ,,Gn
                                             ϑF ( A ),F ( A ,,F ( A ) (E )
                                                1   1   2   2   n   n


                  E is any relational-algebra expression
                   q    G1, G2 …, Gn is a list of attributes on which to group (can be empty)
                   q    Each Fi is an aggregate function
                   q    Each Ai is an attribute name



atabase System Concepts - 5 th Edition, June 15, 2005           2.33          ©Silberschatz, Korth and Sudarshan
Aggregate Operation – Example
             s Relation r:

                                                        A    B          C

                                                        α    α          7
                                                        α    β          7
                                                        β    β          3
                                                        β    β          10




             s g sum(c) (r)                             sum(c )

                                                            27


             s Question: Which aggregate operations cannot be expressed
                  using basic relational operations?

atabase System Concepts - 5 th Edition, June 15, 2005            2.34        ©Silberschatz, Korth and Sudarshan
Aggregate Operation – Example
              s Relation account grouped by branch-name:


                                   branch_name account_number              balance
                                   Perryridge                   A-102          400
                                   Perryridge                   A-201          900
                                   Brighton                     A-217          750
                                   Brighton                     A-215          750
                                   Redwood                      A-222          700


                 branch_name        g   sum(balance)       (account)
                                                        branch_name sum(balance)
                                                        Perryridge      1300
                                                        Brighton        1500
                                                        Redwood          700



atabase System Concepts - 5 th Edition, June 15, 2005           2.35               ©Silberschatz, Korth and Sudarshan
Aggregate Functions (Cont.)
             s Result of aggregation does not have a name
                   q    Can use rename operation to give it a name
                   q    For convenience, we permit renaming as part of aggregate
                        operation


                       branch_name         g   sum(balance) as sum_balance (account)




atabase System Concepts - 5 th Edition, June 15, 2005      2.36                ©Silberschatz, Korth and Sudarshan
Outer Join
             s An extension of the join operation that avoids loss of information.
             s Computes the join and then adds tuples form one relation that does not
                  match tuples in the other relation to the result of the join.
             s Uses null values:
                   q    null signifies that the value is unknown or does not exist
                   q    All comparisons involving null are (roughly speaking) false by
                        definition.
                            We shall study precise meaning of comparisons with nulls later




atabase System Concepts - 5 th Edition, June 15, 2005      2.37              ©Silberschatz, Korth and Sudarshan
Outer Join – Example
             s Relation loan



                               loan_number branch_name                amount
                               L-170                    Downtown       3000
                               L-230                    Redwood        4000
                               L-260                    Perryridge     1700


             s Relation borrower

                                    customer_name loan_number
                                     Jones                  L-170
                                     Smith                  L-230
                                     Hayes                  L-155




atabase System Concepts - 5 th Edition, June 15, 2005          2.38            ©Silberschatz, Korth and Sudarshan
Outer Join – Example
             s Join

                  loan        borrower

                        loan_number            branch_name          amount customer_name
                       L-170                   Downtown             3000    Jones
                       L-230                   Redwood              4000    Smith

             s Left Outer Join
                loan            borrower
                         loan_number            branch_name         amount customer_name
                         L-170                  Downtown             3000   Jones
                         L-230                  Redwood              4000   Smith
                         L-260                  Perryridge           1700   null




atabase System Concepts - 5 th Edition, June 15, 2005        2.39                   ©Silberschatz, Korth and Sudarshan
Outer Join – Example
             s Right Outer Join
                loan          borrower

                     loan_number            branch_name    amount customer_name
                    L-170                   Downtown         3000    Jones
                    L-230                   Redwood          4000    Smith
                    L-155                   null              null   Hayes
             s Full Outer Join
                 loan         borrower
                    loan_number            branch_name    amount customer_name
                   L-170                  Downtown          3000     Jones
                   L-230                  Redwood           4000     Smith
                   L-260                  Perryridge        1700     null
                   L-155                  null               null    Hayes
            s Question: can outerjoins be expressed using basic relational
                algebra operations
atabase System Concepts - 5 th Edition, June 15, 2005     2.40               ©Silberschatz, Korth and Sudarshan
Null Values
             s It is possible for tuples to have a null value, denoted by null, for some
                  of their attributes
             s null signifies an unknown value or that a value does not exist.

             s The result of any arithmetic expression involving null is null.

             s Aggregate functions simply ignore null values (as in SQL)

             s For duplicate elimination and grouping, null is treated like any other
                  value, and two nulls are assumed to be the same (as in SQL)




atabase System Concepts - 5 th Edition, June 15, 2005       2.41        ©Silberschatz, Korth and Sudarshan
Null Values
             s Comparisons with null values return the special truth value: unknown
                    q   If false was used instead of unknown, then    not (A < 5)
                                  would not be equivalent to          A >= 5
             s Three-valued logic using the truth value unknown:
                    q   OR: (unknown or true)    = true,
                            (unknown or false)   = unknown
                            (unknown or unknown) = unknown
                    q   AND: (true and unknown)     = unknown,
                             (false and unknown)   = false,
                             (unknown and unknown) = unknown
                    q   NOT: (not unknown) = unknown
                    q   In SQL “P is unknown” evaluates to true if predicate P evaluates
                        to unknown
             s Result of select predicate is treated as false if it evaluates to unknown




atabase System Concepts - 5 th Edition, June 15, 2005       2.42           ©Silberschatz, Korth and Sudarshan
Division Operation

                 s Notation:           r÷s
                 s Suited to queries that include the phrase “for all”.
                 s Let r and s be relations on schemas R and S respectively
                   where
                       q    R = (A1, …, Am , B1, …, Bn )
                       q    S = (B1, …, Bn)
                       The result of r ÷ s is a relation on schema
                       R – S = (A1, …, Am)

                              r ÷ s = { t | t ∈ ∏ R-S (r) ∧ ∀ u ∈ s ( tu ∈ r ) }

                       Where tu means the concatenation of tuples t and u to
                            produce a single tuple



atabase System Concepts - 5 th Edition, June 15, 2005     2.43                     ©Silberschatz, Korth and Sudarshan
Division Operation – Example
             s Relations r, s:
                                                        A       B          B
                                                        α       1
                                                                           1
                                                        α       2
                                                        α       3          2
                                                        β       1          s
                                                        γ       1
                                                        δ       1
                                                        δ       3
                                                        δ       4
                                                        ∈       6
                                                        ∈       1
                                                        β       2
             s r ÷ s:                   A                   r

                                        α
                                        β

atabase System Concepts - 5 th Edition, June 15, 2005               2.44       ©Silberschatz, Korth and Sudarshan
Another Division Example
             s Relations r, s:
                                          A     B       C     D    E      D       E

                                          α      a       α    a       1   a       1
                                          α      a        γ   a       1   b       1
                                          α      a        γ   b       1       s
                                          β      a        γ   a       1
                                          β      a        γ   b       3
                                          γ      a        γ   a       1
                                          γ      a        γ   b       1
                                          γ      a       β    b       1
                                                        r
             s r ÷ s:
                                                        A     B   C

                                                        α     a   γ
                                                        γ     a   γ


atabase System Concepts - 5 th Edition, June 15, 2005             2.45            ©Silberschatz, Korth and Sudarshan
Division Operation (Cont.)
             s    Property
                   q    Let q = r ÷ s
                   q    Then q is the largest relation satisfying q x s ⊆ r
             s    Definition in terms of the basic algebra operation
                  Let r(R) and s(S) be relations, and let S ⊆ R


                             r ÷ s = ∏R-S (r ) – ∏R-S ( ( ∏R-S (r ) x s ) – ∏R-S,S(r ))


                  To see why
                   q    ∏R-S,S (r) simply reorders attributes of r


                   q    ∏R-S (∏R-S (r ) x s ) – ∏R-S,S(r) ) gives those tuples t in

                        ∏R-S (r ) such that for some tuple u ∈ s, tu ∉ r.




atabase System Concepts - 5 th Edition, June 15, 2005         2.46                        ©Silberschatz, Korth and Sudarshan
Bank Example Queries
             s Find the names of all customers who have a loan and an account at
                 bank.

                     ∏customer_name (borrower) ∩ ∏customer_name (depositor)



             s Find the name of all customers who have a loan at the bank and the
                  loan amount

                      ∏customer_name, loan_number, amount (borrower   loan)




atabase System Concepts - 5 th Edition, June 15, 2005   2.47             ©Silberschatz, Korth and Sudarshan
Bank Example Queries
             s Find all customers who have an account from at least the “Downtown”
                  and the Uptown” branches.
                 q Query 1

                        ∏customer_name (σbranch_name = “Downtown” (depositor        account )) ∩

                               ∏customer_name (σbranch_name = “Uptown” (depositor    account))

                    q   Query 2

                         ∏customer_name, branch_name (depositor        account)

                                  ÷ ρtemp(branch_name) ({(“ Downtown” ), (“ Uptown” )})

                    Note that Query 2 uses a constant relation.




atabase System Concepts - 5 th Edition, June 15, 2005     2.48                       ©Silberschatz, Korth and Sudarshan
Bank Example Queries
             s Find all customers who have an account at all branches located in
                  Brooklyn city.

                           ∏customer_name, branch_name (depositor     account)
                           ÷ ∏branch_name (σbranch_city = “Brooklyn” (branch))




atabase System Concepts - 5 th Edition, June 15, 2005   2.49                 ©Silberschatz, Korth and Sudarshan
End of Chapter 2




Database System Concepts, 5 th Ed.
     ©Silberschatz, Korth and Sudarshan
See www.db-book.com for conditions on re-use
Formal Definition
             s A basic expression in the relational algebra consists of either one of the
                  following:
                   q    A relation in the database
                   q    A constant relation
             s Let E1 and E2 be relational-algebra expressions; the following are all
                  relational-algebra expressions:

                   q    E1 ∪ E2

                   q    E1 – E2

                   q    E1 x E2

                   q    σp (E1), P is a predicate on attributes in E1

                   q    ∏s(E1), S is a list consisting of some of the attributes in E1

                   q    ρ (E ), x is the new name for the result of E1
atabase System Concepts - x th Edition, June 15, 2005
                          5      1                  2.51                      ©Silberschatz, Korth and Sudarshan
Select Operation
             s    Notation: σ p(r)
             s    p is called the selection predicate
             s    Defined as:

                                      σp(r) = {t | t ∈ r and p(t)}

                  Where p is a formula in propositional calculus consisting of terms
                  connected by : ∧ (and), ∨ (or), ¬ (not)
                  Each term is one of:
                                     <attribute>        op <attribute> or <constant>
                 where op is one of: =, ≠, >, ≥. <. ≤

             s    Example of selection:

                                     σ branch_name=“ Perryridge” (account)




atabase System Concepts - 5 th Edition, June 15, 2005             2.52                 ©Silberschatz, Korth and Sudarshan
Project Operation
             s Notation:
                                              ∏         A1 , A2 ,, Ak   (r )
                  where A1, A2 are attribute names and r is a relation name.
             s The result is defined as the relation of k columns obtained by erasing
                  the columns that are not listed
             s Duplicate rows removed from result, since relations are sets
             s Example: To eliminate the branch_name attribute of account

                                       ∏account_number, balance (account)




atabase System Concepts - 5 th Edition, June 15, 2005                    2.53   ©Silberschatz, Korth and Sudarshan
Union Operation
             s Notation: r ∪ s
             s Defined as:
                                      r ∪ s = {t | t ∈ r or t ∈ s}
             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)

             s Example: to find all customers with either an account or a loan

                     ∏customer_name (depositor) ∪ ∏customer_name (borrower)




atabase System Concepts - 5 th Edition, June 15, 2005       2.54          ©Silberschatz, Korth and Sudarshan
Set Difference Operation
             s Notation r – s
             s Defined as:
                           r – s = {t | t ∈ r and t ∉ s}


             s Set differences must be taken between compatible
                  relations.
                   q    r and s must have the same arity
                   q    attribute domains of r and s must be compatible




atabase System Concepts - 5 th Edition, June 15, 2005      2.55           ©Silberschatz, Korth and Sudarshan
Cartesian-Product Operation
             s Notation r x s
             s Defined as:
                                      r x s = {t q | t ∈ r and q ∈ s}

             s Assume that attributes of r(R) and s(S) are disjoint. (That is, R ∩ S = ∅).
             s If attributes of r and s are not disjoint, then renaming must be used.




atabase System Concepts - 5 th Edition, June 15, 2005      2.56         ©Silberschatz, Korth and Sudarshan
Set-Intersection Operation
             s Notation: r ∩ s
             s Defined as:
             s r ∩ s = { t | t ∈ r and t ∈ s }
             s Assume:
                   q    r, s have the same arity
                   q    attributes of r and s are compatible
             s Note: r ∩ s = r – (r – s)




atabase System Concepts - 5 th Edition, June 15, 2005   2.57   ©Silberschatz, Korth and Sudarshan
Assignment Operation
             s    The assignment operation (←) provides a convenient way to express
                  complex queries.
                  q    Write query as a sequential program consisting of
                             a series of assignments
                             followed by an expression whose value is displayed as a result of
                              the query.
                  q   Assignment must always be made to a temporary relation variable.
             s    Example: Write r ÷ s as

                                        temp1 ← ∏R-S (r )
                                        temp2 ← ∏R-S ((temp1 x s ) – ∏R-S,S (r ))
                                        result = temp1 – temp2
                  q   The result to the right of the ← is assigned to the relation variable on
                      the left of the ←.
                  q   May use variable in subsequent expressions.




atabase System Concepts - 5 th Edition, June 15, 2005        2.58                   ©Silberschatz, Korth and Sudarshan
Extended Relational-Algebra-
                                    Operations
             s Generalized Projection
             s Aggregate Functions
             s Outer Join




atabase System Concepts - 5 th Edition, June 15, 2005   2.59   ©Silberschatz, Korth and Sudarshan
Generalized Projection
             s Extends the projection operation by allowing arithmetic functions to be
                  used in the projection list.


                                                ∏ F1 ,F2 ,..., Fn (E )
             s E is any relational-algebra expression

             s Each of F1, F2, …, Fn are are arithmetic expressions involving constants
                  and attributes in the schema of E.
             s Given relation credit_info(customer_name, limit, credit_balance), find
                  how much more each person can spend:
                             ∏customer_name, limit – credit_balance (credit_info)




atabase System Concepts - 5 th Edition, June 15, 2005              2.60             ©Silberschatz, Korth and Sudarshan
Modification of the Database
             s The content of the database may be modified using the following
                  operations:
                   q    Deletion
                   q    Insertion
                   q    Updating
             s All these operations are expressed using the assignment
                  operator.




atabase System Concepts - 5 th Edition, June 15, 2005   2.61        ©Silberschatz, Korth and Sudarshan
Deletion
             s A delete request is expressed similarly to a query, except
                  instead of displaying tuples to the user, the selected tuples are
                  removed from the database.
             s Can delete only whole tuples; cannot delete values on only
                  particular attributes
             s A deletion is expressed in relational algebra by:
                                                    r←r–E
                  where r is a relation and E is a relational algebra query.




atabase System Concepts - 5 th Edition, June 15, 2005       2.62           ©Silberschatz, Korth and Sudarshan
Deletion Examples
             s Delete all account records in the Perryridge branch.

                    account ← account – σ branch_name = “ Perryridge” (account )

             s Delete all loan records with amount in the range of 0 to 50

                      loan ← loan – σ amount ≥ 0 and amount ≤ 50 (loan)

             s Delete all accounts at branches located in Needham.

                   r1 ← σ branch_city = “       Needham”   (account    branch )

                   r2 ← ∏ account_number, branch_name, balance (r1)

                   r3 ← ∏ customer_name, account_number (r2           depositor)
                   account ← account – r2
                   depositor ← depositor – r3


atabase System Concepts - 5 th Edition, June 15, 2005        2.63                  ©Silberschatz, Korth and Sudarshan
Insertion
             s To insert data into a relation, we either:
                    q   specify a tuple to be inserted
                    q   write a query whose result is a set of tuples to be inserted
             s in relational algebra, an insertion is expressed by:
                                                        r← r ∪ E
                  where r is a relation and E is a relational algebra expression.
             s The insertion of a single tuple is expressed by letting E be a constant
                  relation containing one tuple.




atabase System Concepts - 5 th Edition, June 15, 2005         2.64          ©Silberschatz, Korth and Sudarshan
Insertion Examples
             s Insert information in the database specifying that Smith has $1200 in
                  account A-973 at the Perryridge branch.

                   account ← account ∪ {(“A-973”, “Perryridge”, 1200)}
                   depositor ← depositor ∪ {(“Smith”, “A-973”)}


             s Provide as a gift for all loan customers in the Perryridge
                 branch, a $200 savings account. Let the loan number serve
                 as the account number for the new savings account.

                       r1 ← (σbranch_name = “ Perryridge” (borrower   loan))
                       account ← account ∪ ∏loan_number, branch_name, 200 (r1)
                       depositor ← depositor ∪ ∏customer_name, loan_number (r1)



atabase System Concepts - 5 th Edition, June 15, 2005   2.65                     ©Silberschatz, Korth and Sudarshan
Updating
             s A mechanism to change a value in a tuple without charging all values in
                  the tuple
             s Use the generalized projection operator to do this task


                                      r ← ∏ F ,F ,,F , ( r )
                                                    1   2    l

             s Each F is either
                     i
                    q   the I th attribute of r, if the I th attribute is not updated, or,
                    q   if the attribute is to be updated Fi is an expression, involving only
                        constants and the attributes of r, which gives the new value for the
                        attribute




atabase System Concepts - 5 th Edition, June 15, 2005            2.66               ©Silberschatz, Korth and Sudarshan
Update Examples

             s Make interest payments by increasing all balances by 5 percent.

                        account ← ∏ account_number, branch_name, balance * 1.05 (account)




              s Pay all accounts with balances over $10,000 6 percent interest
                  and pay all others 5 percent


                   account ← ∏ account_number, branch_name, balance * 1.06 (σ BAL > 10000 (account ))
                                     ∪ ∏ account_number, branch_name, balance * 1.05 (σBAL ≤ 10000 (account))




atabase System Concepts - 5 th Edition, June 15, 2005         2.67                        ©Silberschatz, Korth and Sudarshan
Figure 2.3. The branch relation




atabase System Concepts - 5 th Edition, June 15, 2005   2.68   ©Silberschatz, Korth and Sudarshan
Figure 2.6: The loan relation




atabase System Concepts - 5 th Edition, June 15, 2005   2.69   ©Silberschatz, Korth and Sudarshan
Figure 2.7: The borrower relation




atabase System Concepts - 5 th Edition, June 15, 2005   2.70   ©Silberschatz, Korth and Sudarshan
Figure 2.9
                      Result of σbranch_name = “Perryridge” (loan)




atabase System Concepts - 5 th Edition, June 15, 2005   2.71   ©Silberschatz, Korth and Sudarshan
Loan number and the amount of the
                            loan




atabase System Concepts - 5 th Edition, June 15, 2005   2.72   ©Silberschatz, Korth and Sudarshan
who have either an account or an
                                loan




atabase System Concepts - 5 th Edition, June 15, 2005   2.73   ©Silberschatz, Korth and Sudarshan
Customers with an account but no
                               loan




atabase System Concepts - 5 th Edition, June 15, 2005   2.74   ©Silberschatz, Korth and Sudarshan
Figure 2.13: Result of borrower |X|
                               loan




atabase System Concepts - 5 th Edition, June 15, 2005   2.75   ©Silberschatz, Korth and Sudarshan
Figure 2.14




atabase System Concepts - 5 th Edition, June 15, 2005       2.76      ©Silberschatz, Korth and Sudarshan
Figure 2.15




atabase System Concepts - 5 th Edition, June 15, 2005       2.77      ©Silberschatz, Korth and Sudarshan
Figure 2.16




atabase System Concepts - 5 th Edition, June 15, 2005       2.78      ©Silberschatz, Korth and Sudarshan
Figure 2.17
             Largest account balance in the bank




atabase System Concepts - 5 th Edition, June 15, 2005   2.79   ©Silberschatz, Korth and Sudarshan
Figure 2.18: Customers who live on
            the same street and in the same city
                          as Smith




atabase System Concepts - 5 th Edition, June 15, 2005   2.80   ©Silberschatz, Korth and Sudarshan
Figure 2.19: Customers with both an
                account and a loan at the bank




atabase System Concepts - 5 th Edition, June 15, 2005   2.81   ©Silberschatz, Korth and Sudarshan
Figure 2.20




atabase System Concepts - 5 th Edition, June 15, 2005       2.82      ©Silberschatz, Korth and Sudarshan
Figure 2.21




atabase System Concepts - 5 th Edition, June 15, 2005       2.83      ©Silberschatz, Korth and Sudarshan
Figure 2.22




atabase System Concepts - 5 th Edition, June 15, 2005       2.84      ©Silberschatz, Korth and Sudarshan
Figure 2.23




atabase System Concepts - 5 th Edition, June 15, 2005       2.85      ©Silberschatz, Korth and Sudarshan
Figure 2.24: The credit_info relation




atabase System Concepts - 5 th Edition, June 15, 2005   2.86   ©Silberschatz, Korth and Sudarshan
Figure 2.25




atabase System Concepts - 5 th Edition, June 15, 2005       2.87      ©Silberschatz, Korth and Sudarshan
Figure 2.26: The pt_works relation




atabase System Concepts - 5 th Edition, June 15, 2005   2.88   ©Silberschatz, Korth and Sudarshan
The pt_works relation after
                                   regrouping




atabase System Concepts - 5 th Edition, June 15, 2005   2.89   ©Silberschatz, Korth and Sudarshan
Figure 2.28




atabase System Concepts - 5 th Edition, June 15, 2005       2.90      ©Silberschatz, Korth and Sudarshan
Figure 2.29




atabase System Concepts - 5 th Edition, June 15, 2005       2.91      ©Silberschatz, Korth and Sudarshan
Figure 2.30
             The employee and ft_works relations




atabase System Concepts - 5 th Edition, June 15, 2005   2.92   ©Silberschatz, Korth and Sudarshan
Figure 2.31




atabase System Concepts - 5 th Edition, June 15, 2005       2.93      ©Silberschatz, Korth and Sudarshan
Figure 2.32




atabase System Concepts - 5 th Edition, June 15, 2005       2.94      ©Silberschatz, Korth and Sudarshan
Figure 2.33




atabase System Concepts - 5 th Edition, June 15, 2005       2.95      ©Silberschatz, Korth and Sudarshan
Figure 2.34




atabase System Concepts - 5 th Edition, June 15, 2005       2.96      ©Silberschatz, Korth and Sudarshan

Contenu connexe

Tendances

Vnsispl dbms concepts_ch1
Vnsispl dbms concepts_ch1Vnsispl dbms concepts_ch1
Vnsispl dbms concepts_ch1sriprasoon
 
Tutorial On Database Management System
Tutorial On Database Management SystemTutorial On Database Management System
Tutorial On Database Management Systempsathishcs
 
Dbms Concepts
Dbms ConceptsDbms Concepts
Dbms Conceptsadukkas
 
Lect 30 dbms_fundamentals
Lect 30  dbms_fundamentalsLect 30  dbms_fundamentals
Lect 30 dbms_fundamentalsProtik Roy
 
CBSE XII Database Concepts And MySQL Presentation
CBSE XII Database Concepts And MySQL PresentationCBSE XII Database Concepts And MySQL Presentation
CBSE XII Database Concepts And MySQL PresentationGuru Ji
 
Database management system chapter1
Database management system chapter1Database management system chapter1
Database management system chapter1Pranab Dasgupta
 
Technical Note on DBMS
Technical Note on DBMSTechnical Note on DBMS
Technical Note on DBMSKr Shrishant
 
Mca ii-dbms- u-ii-the relational database model
Mca ii-dbms- u-ii-the relational database modelMca ii-dbms- u-ii-the relational database model
Mca ii-dbms- u-ii-the relational database modelRai University
 
Advanced Database Lecture Notes
Advanced Database Lecture NotesAdvanced Database Lecture Notes
Advanced Database Lecture NotesJasour Obeidat
 
Database system concepts
Database system conceptsDatabase system concepts
Database system conceptsKumar
 

Tendances (20)

Dbms Lecture Notes
Dbms Lecture NotesDbms Lecture Notes
Dbms Lecture Notes
 
Ch10
Ch10Ch10
Ch10
 
Dbms unit01
Dbms unit01Dbms unit01
Dbms unit01
 
Vnsispl dbms concepts_ch1
Vnsispl dbms concepts_ch1Vnsispl dbms concepts_ch1
Vnsispl dbms concepts_ch1
 
D B M S Animate
D B M S AnimateD B M S Animate
D B M S Animate
 
Dbms models
Dbms modelsDbms models
Dbms models
 
Tutorial On Database Management System
Tutorial On Database Management SystemTutorial On Database Management System
Tutorial On Database Management System
 
Dbms Concepts
Dbms ConceptsDbms Concepts
Dbms Concepts
 
Lect 30 dbms_fundamentals
Lect 30  dbms_fundamentalsLect 30  dbms_fundamentals
Lect 30 dbms_fundamentals
 
CBSE XII Database Concepts And MySQL Presentation
CBSE XII Database Concepts And MySQL PresentationCBSE XII Database Concepts And MySQL Presentation
CBSE XII Database Concepts And MySQL Presentation
 
Database
DatabaseDatabase
Database
 
Dbms presentaion
Dbms presentaionDbms presentaion
Dbms presentaion
 
Database management system chapter1
Database management system chapter1Database management system chapter1
Database management system chapter1
 
Ch8
Ch8Ch8
Ch8
 
Technical Note on DBMS
Technical Note on DBMSTechnical Note on DBMS
Technical Note on DBMS
 
Mca ii-dbms- u-ii-the relational database model
Mca ii-dbms- u-ii-the relational database modelMca ii-dbms- u-ii-the relational database model
Mca ii-dbms- u-ii-the relational database model
 
Advanced Database Lecture Notes
Advanced Database Lecture NotesAdvanced Database Lecture Notes
Advanced Database Lecture Notes
 
Database management systems
Database management systemsDatabase management systems
Database management systems
 
Database system concepts
Database system conceptsDatabase system concepts
Database system concepts
 
Unit01 dbms
Unit01 dbmsUnit01 dbms
Unit01 dbms
 

Similaire à Relational Model (20)

Ch2
Ch2Ch2
Ch2
 
Ch2
Ch2Ch2
Ch2
 
Ch7
Ch7Ch7
Ch7
 
Ch6
Ch6Ch6
Ch6
 
Er model
Er modelEr model
Er model
 
Relational database concept
Relational database conceptRelational database concept
Relational database concept
 
Relational Model
Relational ModelRelational Model
Relational Model
 
Bab 6 pendukung
Bab 6 pendukungBab 6 pendukung
Bab 6 pendukung
 
check 11
check 11check 11
check 11
 
Ch3
Ch3Ch3
Ch3
 
Ch3
Ch3Ch3
Ch3
 
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybbjhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
jhbuhbhujnhyubhbuybuybuybbuhyybuybuybuybybyubyubybybb
 
ch2.ppt
ch2.pptch2.ppt
ch2.ppt
 
03 Relational Databases.ppt
03 Relational Databases.ppt03 Relational Databases.ppt
03 Relational Databases.ppt
 
Ch4
Ch4Ch4
Ch4
 
Ch3
Ch3Ch3
Ch3
 
DBMS _Relational model
DBMS _Relational modelDBMS _Relational model
DBMS _Relational model
 
Integrity & security
Integrity & securityIntegrity & security
Integrity & security
 
ch7-clean.ppt
ch7-clean.pptch7-clean.ppt
ch7-clean.ppt
 
DATABASE MANAGEMENT SYSTEMS ER MODEL.ppt
DATABASE MANAGEMENT SYSTEMS ER MODEL.pptDATABASE MANAGEMENT SYSTEMS ER MODEL.ppt
DATABASE MANAGEMENT SYSTEMS ER MODEL.ppt
 

Dernier

Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfAdmir Softic
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...Sapna Thakur
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajanpragatimahajan3
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphThiyagu K
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfJayanti Pande
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 

Dernier (20)

Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
BAG TECHNIQUE Bag technique-a tool making use of public health bag through wh...
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
social pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajansocial pharmacy d-pharm 1st year by Pragati K. Mahajan
social pharmacy d-pharm 1st year by Pragati K. Mahajan
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Z Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot GraphZ Score,T Score, Percential Rank and Box Plot Graph
Z Score,T Score, Percential Rank and Box Plot Graph
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 

Relational Model

  • 1. Chapter 2: Relational Model Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use
  • 2. Chapter 2: Relational Model s Structure of Relational Databases s Fundamental Relational-Algebra-Operations s Additional Relational-Algebra-Operations s Extended Relational-Algebra-Operations s Null Values s Modification of the Database atabase System Concepts - 5 th Edition, June 15, 2005 2.2 ©Silberschatz, Korth and Sudarshan
  • 3. Example of a Relation atabase System Concepts - 5 th Edition, June 15, 2005 2.3 ©Silberschatz, Korth and Sudarshan
  • 4. Attribute Types s Each attribute of a relation has a name s The set of allowed values for each attribute is called the domain of the attribute s Attribute values are (normally) required to be atomic; that is, indivisible q E.g. the value of an attribute can be an account number, but cannot be a set of account numbers s Domain is said to be atomic if all its members are atomic s The special value null is a member of every domain s The null value causes complications in the definition of many operations q We shall ignore the effect of null values in our main presentation and consider their effect later atabase System Concepts - 5 th Edition, June 15, 2005 2.4 ©Silberschatz, Korth and Sudarshan
  • 5. Relation Schema s Formally, given domains 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 s Schema of a relation consists of q attribute definitions  name  type/domain q integrity constraints atabase System Concepts - 5 th Edition, June 15, 2005 2.5 ©Silberschatz, Korth and Sudarshan
  • 6. Relation Instance s The current values (relation instance) of a relation are specified by a table s An element t of r is a tuple, represented by a row in a table s Order of tuples is irrelevant (tuples may be stored in an arbitrary order) attributes (or columns) customer_name customer_street customer_city Jones Main Harrison Smith North Rye tuples Curry North Rye (or rows) Lindsay Park Pittsfield customer atabase System Concepts - 5 th Edition, June 15, 2005 2.6 ©Silberschatz, Korth and Sudarshan
  • 7. Database s A database consists of multiple relations s Information about an enterprise is broken up into parts, with each relation storing one part of the information s E.g. account : information about accounts depositor : which customer owns which account customer : information about customers atabase System Concepts - 5 th Edition, June 15, 2005 2.7 ©Silberschatz, Korth and Sudarshan
  • 8. The customer Relation atabase System Concepts - 5 th Edition, June 15, 2005 2.8 ©Silberschatz, Korth and Sudarshan
  • 9. The depositor Relation atabase System Concepts - 5 th Edition, June 15, 2005 2.9 ©Silberschatz, Korth and Sudarshan
  • 10. Why Split Information Across Relations? s Storing all information as a single relation such as bank(account_number, balance, customer_name, ..) results in q repetition of information  e.g.,if two customers own an account (What gets repeated?) q the need for null values  e.g., to represent a customer without an account s Normalization theory (Chapter 7) deals with how to design relational schemas atabase System Concepts - 5 th Edition, June 15, 2005 2.10 ©Silberschatz, Korth and Sudarshan
  • 11. Keys s Let K ⊆ R s K is a superkey of R if values for K are sufficient to identify a unique tuple of each possible relation r(R) q by “possible r ” we mean a relation r that could exist in the enterprise we are modeling. q Example: {customer_name, customer_street} and {customer_name} are both superkeys of Customer, if no two customers can possibly have the same name  In real life, an attribute such as customer_id would be used instead of customer_name to uniquely identify customers, but we omit it to keep our examples small, and instead assume customer names are unique. atabase System Concepts - 5 th Edition, June 15, 2005 2.11 ©Silberschatz, Korth and Sudarshan
  • 12. Keys (Cont.) s K is a candidate key if K is minimal Example: {customer_name} is a candidate key for Customer, since it is a superkey and no subset of it is a superkey. s Primary key: a candidate key chosen as the principal means of identifying tuples within a relation q Should choose an attribute whose value never, or very rarely, changes. q E.g. email address is unique, but may change atabase System Concepts - 5 th Edition, June 15, 2005 2.12 ©Silberschatz, Korth and Sudarshan
  • 13. Foreign Keys s A relation schema may have an attribute that corresponds to the primary key of another relation. The attribute is called a foreign key. q E.g. customer_name and account_number attributes of depositor are foreign keys to customer and account respectively. q Only values occurring in the primary key attribute of the referenced relation may occur in the foreign key attribute of the referencing relation. atabase System Concepts - 5 th Edition, June 15, 2005 2.13 ©Silberschatz, Korth and Sudarshan
  • 14. Schema Diagram atabase System Concepts - 5 th Edition, June 15, 2005 2.14 ©Silberschatz, Korth and Sudarshan
  • 15. Query Languages s Language in which user requests information from the database. s Categories of languages q Procedural q Non-procedural, or declarative s “Pure” languages: q Relational algebra q Tuple relational calculus q Domain relational calculus s Pure languages form underlying basis of query languages that people use. atabase System Concepts - 5 th Edition, June 15, 2005 2.15 ©Silberschatz, Korth and Sudarshan
  • 16. Relational Algebra s Procedural language s Six basic operators q select: σ q project: ∏ q union: ∪ q set difference: – q Cartesian product: x q rename: ρ s The operators take one or two relations as inputs and produce a new relation as a result. atabase System Concepts - 5 th Edition, June 15, 2005 2.16 ©Silberschatz, Korth and Sudarshan
  • 17. Select Operation – Example s Relation r A B C D α α 1 7 α β 5 7 β β 12 3 β β 23 10  σA=B ^ D > 5 (r) A B C D α α 1 7 β β 23 10 atabase System Concepts - 5 th Edition, June 15, 2005 2.17 ©Silberschatz, Korth and Sudarshan
  • 18. Project Operation – Example s Relation r: A B C α 10 1 α 20 1 β 30 1 β 40 2 ∏A,C (r) A C A C α 1 α 1 α 1 = β 1 β 1 β 2 β 2 atabase System Concepts - 5 th Edition, June 15, 2005 2.18 ©Silberschatz, Korth and Sudarshan
  • 19. Union Operation – Example s Relations r, s: A B A B α 1 α 2 α 2 β 3 β 1 s r A B s r ∪ s: α 1 α 2 β 1 β 3 atabase System Concepts - 5 th Edition, June 15, 2005 2.19 ©Silberschatz, Korth and Sudarshan
  • 20. Set Difference Operation – Example s Relations r, s: A B A B α 1 α 2 α 2 β 3 β 1 s r s r – s: A B α 1 β 1 atabase System Concepts - 5 th Edition, June 15, 2005 2.20 ©Silberschatz, Korth and Sudarshan
  • 21. Cartesian-Product Operation – Example s Relations r, s: A B C D E α 1 α 10 a β 10 a β 2 β 20 b r γ 10 b s s r x s: A B C D E α 1 α 10 a α 1 β 10 a α 1 β 20 b α 1 γ 10 b β 2 α 10 a β 2 β 10 a β 2 β 20 b β 2 γ 10 b atabase System Concepts - 5 th Edition, June 15, 2005 2.21 ©Silberschatz, Korth and Sudarshan
  • 22. Rename Operation s Allows us to name, and therefore to refer to, the results of relational- algebra expressions. s Allows us to refer to a relation by more than one name. s Example: ρ x (E) returns the expression E under the name X s If a relational-algebra expression E has arity n, then ρx ( A ,A 1 2 ,..., An ) (E ) returns the result of expression E under the name X, and with the attributes renamed to A1 , A2 , … An . ., atabase System Concepts - 5 th Edition, June 15, 2005 2.22 ©Silberschatz, Korth and Sudarshan
  • 23. Composition of Operations s Can build expressions using multiple operations s Example: σA=C(r x s) s rxs A B C D E α 1 α 10 a α 1 β 10 a α 1 β 20 b α 1 γ 10 b β 2 α 10 a β 2 β 10 a β 2 β 20 b β 2 γ 10 b s σA=C(r x s) A B C D E α 1 α 10 a β 2 β 10 a β 2 β 20 b atabase System Concepts - 5 th Edition, June 15, 2005 2.23 ©Silberschatz, Korth and Sudarshan
  • 24. Banking Example branch (branch_name, branch_city, assets) customer (customer_name, customer_street, customer_city) account (account_number, branch_name, balance) loan (loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number) atabase System Concepts - 5 th Edition, June 15, 2005 2.24 ©Silberschatz, Korth and Sudarshan
  • 25. Example Queries s Find all loans of over $1200 σamount > 1200 (loan) s Find the loan number for each loan of an amount greater than $1200 ∏loan_number (σamount > 1200 (loan)) s Find the names of all customers who have a loan, an account, or both, from the bank ∏customer_name (borrower) ∪ ∏customer_name (depositor) atabase System Concepts - 5 th Edition, June 15, 2005 2.25 ©Silberschatz, Korth and Sudarshan
  • 26. Example Queries s Find the names of all customers who have a loan at the Perryridge branch. ∏customer_name (σbranch_name=“ Perryridge” (σborrower.loan_number = loan.loan_number(borrower x loan))) s Find the names of all customers who have a loan at the Perryridge branch but do not have an account at any branch of the bank. ∏customer_name (σbranch_name = “ Perryridge” (σborrower.loan_number = loan.loan_number(borrower x loan))) – ∏customer_name(depositor) atabase System Concepts - 5 th Edition, June 15, 2005 2.26 ©Silberschatz, Korth and Sudarshan
  • 27. Example Queries s Find the names of all customers who have a loan at the Perryridge branch. q ∏customer_name (σbranch_name = “Perryridge” ( σborrower.loan_number = loan.loan_number (borrower x loan))) q ∏customer_name(σloan.loan_number = borrower.loan_number ( (σbranch_name = “Perryridge” (loan)) x borrower)) atabase System Concepts - 5 th Edition, June 15, 2005 2.27 ©Silberschatz, Korth and Sudarshan
  • 28. Additional Operations s Additional Operations q Set intersection q Natural join q Aggregation q Outer Join q Division s All above, other than aggregation, can be expressed using basic operations we have seen earlier atabase System Concepts - 5 th Edition, June 15, 2005 2.28 ©Silberschatz, Korth and Sudarshan
  • 29. Set-Intersection Operation – Example s Relation r, s: A B A B α 1 α 2 α 2 β 3 β 1 r s s r∩s A B α 2 atabase System Concepts - 5 th Edition, June 15, 2005 2.29 ©Silberschatz, Korth and Sudarshan
  • 30. Natural Join Operation – Example s Relations r, s: A B C D B D E α 1 α a 1 a α β 2 γ a 3 a β γ 4 β b 1 a γ α 1 γ a 2 b δ δ 2 β b 3 b ∈ r s s r s A B C D E α 1 α a α α 1 α a γ α 1 γ a α α 1 γ a γ δ 2 β b δ atabase System Concepts - 5 th Edition, June 15, 2005 2.30 ©Silberschatz, Korth and Sudarshan
  • 31. Natural-Join Operation s Notation: r s s Let r and s be relations on schemas R and S respectively. Then, r s is a relation on schema R ∪ S obtained as follows: q Consider each pair of tuples tr from r and ts from s. q 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 s Example: R = (A, B, C, D) S = (E, B, D) q Result schema = (A, B, C, D, E) q r s is defined as: atabase System Concepts - 5 th Edition, June 15, 2005 2.31 ©Silberschatz, Korth and Sudarshan
  • 32. Bank Example Queries s Find the largest account balance q Strategy:  Find those balances that are not the largest – Rename account relation as d so that we can compare each account balance with all others  Use set difference to find those account balances that were not found in the earlier step. q The query is: ∏balance(account) - ∏account.balance (σaccount.balance < d.balance (account x ρd (account))) atabase System Concepts - 5 th Edition, June 15, 2005 2.32 ©Silberschatz, Korth and Sudarshan
  • 33. Aggregate Functions and Operations s Aggregation function takes a collection of values and returns a single value as a result. avg: average value min: minimum value max: maximum value sum: sum of values count: number of values s Aggregate operation in relational algebra G1,G2 ,,Gn ϑF ( A ),F ( A ,,F ( A ) (E ) 1 1 2 2 n n E is any relational-algebra expression q G1, G2 …, Gn is a list of attributes on which to group (can be empty) q Each Fi is an aggregate function q Each Ai is an attribute name atabase System Concepts - 5 th Edition, June 15, 2005 2.33 ©Silberschatz, Korth and Sudarshan
  • 34. Aggregate Operation – Example s Relation r: A B C α α 7 α β 7 β β 3 β β 10 s g sum(c) (r) sum(c ) 27 s Question: Which aggregate operations cannot be expressed using basic relational operations? atabase System Concepts - 5 th Edition, June 15, 2005 2.34 ©Silberschatz, Korth and Sudarshan
  • 35. Aggregate Operation – Example s Relation account grouped by branch-name: branch_name account_number balance Perryridge A-102 400 Perryridge A-201 900 Brighton A-217 750 Brighton A-215 750 Redwood A-222 700 branch_name g sum(balance) (account) branch_name sum(balance) Perryridge 1300 Brighton 1500 Redwood 700 atabase System Concepts - 5 th Edition, June 15, 2005 2.35 ©Silberschatz, Korth and Sudarshan
  • 36. Aggregate Functions (Cont.) s Result of aggregation does not have a name q Can use rename operation to give it a name q For convenience, we permit renaming as part of aggregate operation branch_name g sum(balance) as sum_balance (account) atabase System Concepts - 5 th Edition, June 15, 2005 2.36 ©Silberschatz, Korth and Sudarshan
  • 37. Outer Join s An extension of the join operation that avoids loss of information. s Computes the join and then adds tuples form one relation that does not match tuples in the other relation to the result of the join. s Uses null values: q null signifies that the value is unknown or does not exist q All comparisons involving null are (roughly speaking) false by definition.  We shall study precise meaning of comparisons with nulls later atabase System Concepts - 5 th Edition, June 15, 2005 2.37 ©Silberschatz, Korth and Sudarshan
  • 38. Outer Join – Example s Relation loan loan_number branch_name amount L-170 Downtown 3000 L-230 Redwood 4000 L-260 Perryridge 1700 s Relation borrower customer_name loan_number Jones L-170 Smith L-230 Hayes L-155 atabase System Concepts - 5 th Edition, June 15, 2005 2.38 ©Silberschatz, Korth and Sudarshan
  • 39. Outer Join – Example s Join loan borrower loan_number branch_name amount customer_name L-170 Downtown 3000 Jones L-230 Redwood 4000 Smith s Left Outer Join loan borrower loan_number branch_name amount customer_name L-170 Downtown 3000 Jones L-230 Redwood 4000 Smith L-260 Perryridge 1700 null atabase System Concepts - 5 th Edition, June 15, 2005 2.39 ©Silberschatz, Korth and Sudarshan
  • 40. Outer Join – Example s Right Outer Join loan borrower loan_number branch_name amount customer_name L-170 Downtown 3000 Jones L-230 Redwood 4000 Smith L-155 null null Hayes s Full Outer Join loan borrower loan_number branch_name amount customer_name L-170 Downtown 3000 Jones L-230 Redwood 4000 Smith L-260 Perryridge 1700 null L-155 null null Hayes s Question: can outerjoins be expressed using basic relational algebra operations atabase System Concepts - 5 th Edition, June 15, 2005 2.40 ©Silberschatz, Korth and Sudarshan
  • 41. Null Values s It is possible for tuples to have a null value, denoted by null, for some of their attributes s null signifies an unknown value or that a value does not exist. s The result of any arithmetic expression involving null is null. s Aggregate functions simply ignore null values (as in SQL) s For duplicate elimination and grouping, null is treated like any other value, and two nulls are assumed to be the same (as in SQL) atabase System Concepts - 5 th Edition, June 15, 2005 2.41 ©Silberschatz, Korth and Sudarshan
  • 42. Null Values s Comparisons with null values return the special truth value: unknown q If false was used instead of unknown, then not (A < 5) would not be equivalent to A >= 5 s Three-valued logic using the truth value unknown: q OR: (unknown or true) = true, (unknown or false) = unknown (unknown or unknown) = unknown q AND: (true and unknown) = unknown, (false and unknown) = false, (unknown and unknown) = unknown q NOT: (not unknown) = unknown q In SQL “P is unknown” evaluates to true if predicate P evaluates to unknown s Result of select predicate is treated as false if it evaluates to unknown atabase System Concepts - 5 th Edition, June 15, 2005 2.42 ©Silberschatz, Korth and Sudarshan
  • 43. Division Operation s Notation: r÷s s Suited to queries that include the phrase “for all”. s Let r and s be relations on schemas R and S respectively where q R = (A1, …, Am , B1, …, Bn ) q S = (B1, …, Bn) The result of r ÷ s is a relation on schema R – S = (A1, …, Am) r ÷ s = { t | t ∈ ∏ R-S (r) ∧ ∀ u ∈ s ( tu ∈ r ) } Where tu means the concatenation of tuples t and u to produce a single tuple atabase System Concepts - 5 th Edition, June 15, 2005 2.43 ©Silberschatz, Korth and Sudarshan
  • 44. Division Operation – Example s Relations r, s: A B B α 1 1 α 2 α 3 2 β 1 s γ 1 δ 1 δ 3 δ 4 ∈ 6 ∈ 1 β 2 s r ÷ s: A r α β atabase System Concepts - 5 th Edition, June 15, 2005 2.44 ©Silberschatz, Korth and Sudarshan
  • 45. Another Division Example s Relations r, s: A B C D E D E α a α a 1 a 1 α a γ a 1 b 1 α a γ b 1 s β a γ a 1 β a γ b 3 γ a γ a 1 γ a γ b 1 γ a β b 1 r s r ÷ s: A B C α a γ γ a γ atabase System Concepts - 5 th Edition, June 15, 2005 2.45 ©Silberschatz, Korth and Sudarshan
  • 46. Division Operation (Cont.) s Property q Let q = r ÷ s q Then q is the largest relation satisfying q x s ⊆ r s Definition in terms of the basic algebra operation Let r(R) and s(S) be relations, and let S ⊆ R r ÷ s = ∏R-S (r ) – ∏R-S ( ( ∏R-S (r ) x s ) – ∏R-S,S(r )) To see why q ∏R-S,S (r) simply reorders attributes of r q ∏R-S (∏R-S (r ) x s ) – ∏R-S,S(r) ) gives those tuples t in ∏R-S (r ) such that for some tuple u ∈ s, tu ∉ r. atabase System Concepts - 5 th Edition, June 15, 2005 2.46 ©Silberschatz, Korth and Sudarshan
  • 47. Bank Example Queries s Find the names of all customers who have a loan and an account at bank. ∏customer_name (borrower) ∩ ∏customer_name (depositor) s Find the name of all customers who have a loan at the bank and the loan amount ∏customer_name, loan_number, amount (borrower loan) atabase System Concepts - 5 th Edition, June 15, 2005 2.47 ©Silberschatz, Korth and Sudarshan
  • 48. Bank Example Queries s Find all customers who have an account from at least the “Downtown” and the Uptown” branches. q Query 1 ∏customer_name (σbranch_name = “Downtown” (depositor account )) ∩ ∏customer_name (σbranch_name = “Uptown” (depositor account)) q Query 2 ∏customer_name, branch_name (depositor account) ÷ ρtemp(branch_name) ({(“ Downtown” ), (“ Uptown” )}) Note that Query 2 uses a constant relation. atabase System Concepts - 5 th Edition, June 15, 2005 2.48 ©Silberschatz, Korth and Sudarshan
  • 49. Bank Example Queries s Find all customers who have an account at all branches located in Brooklyn city. ∏customer_name, branch_name (depositor account) ÷ ∏branch_name (σbranch_city = “Brooklyn” (branch)) atabase System Concepts - 5 th Edition, June 15, 2005 2.49 ©Silberschatz, Korth and Sudarshan
  • 50. End of Chapter 2 Database System Concepts, 5 th Ed. ©Silberschatz, Korth and Sudarshan See www.db-book.com for conditions on re-use
  • 51. Formal Definition s A basic expression in the relational algebra consists of either one of the following: q A relation in the database q A constant relation s Let E1 and E2 be relational-algebra expressions; the following are all relational-algebra expressions: q E1 ∪ E2 q E1 – E2 q E1 x E2 q σp (E1), P is a predicate on attributes in E1 q ∏s(E1), S is a list consisting of some of the attributes in E1 q ρ (E ), x is the new name for the result of E1 atabase System Concepts - x th Edition, June 15, 2005 5 1 2.51 ©Silberschatz, Korth and Sudarshan
  • 52. Select Operation s Notation: σ p(r) s p is called the selection predicate s Defined as: σp(r) = {t | t ∈ r and p(t)} Where p is a formula in propositional calculus consisting of terms connected by : ∧ (and), ∨ (or), ¬ (not) Each term is one of: <attribute> op <attribute> or <constant> where op is one of: =, ≠, >, ≥. <. ≤ s Example of selection: σ branch_name=“ Perryridge” (account) atabase System Concepts - 5 th Edition, June 15, 2005 2.52 ©Silberschatz, Korth and Sudarshan
  • 53. Project Operation s Notation: ∏ A1 , A2 ,, Ak (r ) where A1, A2 are attribute names and r is a relation name. s The result is defined as the relation of k columns obtained by erasing the columns that are not listed s Duplicate rows removed from result, since relations are sets s Example: To eliminate the branch_name attribute of account ∏account_number, balance (account) atabase System Concepts - 5 th Edition, June 15, 2005 2.53 ©Silberschatz, Korth and Sudarshan
  • 54. Union Operation s Notation: r ∪ s s Defined as: r ∪ s = {t | t ∈ r or t ∈ s} 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) s Example: to find all customers with either an account or a loan ∏customer_name (depositor) ∪ ∏customer_name (borrower) atabase System Concepts - 5 th Edition, June 15, 2005 2.54 ©Silberschatz, Korth and Sudarshan
  • 55. Set Difference Operation s Notation r – s s Defined as: r – s = {t | t ∈ r and t ∉ s} s Set differences must be taken between compatible relations. q r and s must have the same arity q attribute domains of r and s must be compatible atabase System Concepts - 5 th Edition, June 15, 2005 2.55 ©Silberschatz, Korth and Sudarshan
  • 56. Cartesian-Product Operation s Notation r x s s Defined as: r x s = {t q | t ∈ r and q ∈ s} s Assume that attributes of r(R) and s(S) are disjoint. (That is, R ∩ S = ∅). s If attributes of r and s are not disjoint, then renaming must be used. atabase System Concepts - 5 th Edition, June 15, 2005 2.56 ©Silberschatz, Korth and Sudarshan
  • 57. Set-Intersection Operation s Notation: r ∩ s s Defined as: s r ∩ s = { t | t ∈ r and t ∈ s } s Assume: q r, s have the same arity q attributes of r and s are compatible s Note: r ∩ s = r – (r – s) atabase System Concepts - 5 th Edition, June 15, 2005 2.57 ©Silberschatz, Korth and Sudarshan
  • 58. Assignment Operation s The assignment operation (←) provides a convenient way to express complex queries. q Write query as a sequential program consisting of  a series of assignments  followed by an expression whose value is displayed as a result of the query. q Assignment must always be made to a temporary relation variable. s Example: Write r ÷ s as temp1 ← ∏R-S (r ) temp2 ← ∏R-S ((temp1 x s ) – ∏R-S,S (r )) result = temp1 – temp2 q The result to the right of the ← is assigned to the relation variable on the left of the ←. q May use variable in subsequent expressions. atabase System Concepts - 5 th Edition, June 15, 2005 2.58 ©Silberschatz, Korth and Sudarshan
  • 59. Extended Relational-Algebra- Operations s Generalized Projection s Aggregate Functions s Outer Join atabase System Concepts - 5 th Edition, June 15, 2005 2.59 ©Silberschatz, Korth and Sudarshan
  • 60. Generalized Projection s Extends the projection operation by allowing arithmetic functions to be used in the projection list. ∏ F1 ,F2 ,..., Fn (E ) s E is any relational-algebra expression s Each of F1, F2, …, Fn are are arithmetic expressions involving constants and attributes in the schema of E. s Given relation credit_info(customer_name, limit, credit_balance), find how much more each person can spend: ∏customer_name, limit – credit_balance (credit_info) atabase System Concepts - 5 th Edition, June 15, 2005 2.60 ©Silberschatz, Korth and Sudarshan
  • 61. Modification of the Database s The content of the database may be modified using the following operations: q Deletion q Insertion q Updating s All these operations are expressed using the assignment operator. atabase System Concepts - 5 th Edition, June 15, 2005 2.61 ©Silberschatz, Korth and Sudarshan
  • 62. Deletion s A delete request is expressed similarly to a query, except instead of displaying tuples to the user, the selected tuples are removed from the database. s Can delete only whole tuples; cannot delete values on only particular attributes s A deletion is expressed in relational algebra by: r←r–E where r is a relation and E is a relational algebra query. atabase System Concepts - 5 th Edition, June 15, 2005 2.62 ©Silberschatz, Korth and Sudarshan
  • 63. Deletion Examples s Delete all account records in the Perryridge branch. account ← account – σ branch_name = “ Perryridge” (account ) s Delete all loan records with amount in the range of 0 to 50 loan ← loan – σ amount ≥ 0 and amount ≤ 50 (loan) s Delete all accounts at branches located in Needham. r1 ← σ branch_city = “ Needham” (account branch ) r2 ← ∏ account_number, branch_name, balance (r1) r3 ← ∏ customer_name, account_number (r2 depositor) account ← account – r2 depositor ← depositor – r3 atabase System Concepts - 5 th Edition, June 15, 2005 2.63 ©Silberschatz, Korth and Sudarshan
  • 64. Insertion s To insert data into a relation, we either: q specify a tuple to be inserted q write a query whose result is a set of tuples to be inserted s in relational algebra, an insertion is expressed by: r← r ∪ E where r is a relation and E is a relational algebra expression. s The insertion of a single tuple is expressed by letting E be a constant relation containing one tuple. atabase System Concepts - 5 th Edition, June 15, 2005 2.64 ©Silberschatz, Korth and Sudarshan
  • 65. Insertion Examples s Insert information in the database specifying that Smith has $1200 in account A-973 at the Perryridge branch. account ← account ∪ {(“A-973”, “Perryridge”, 1200)} depositor ← depositor ∪ {(“Smith”, “A-973”)} s Provide as a gift for all loan customers in the Perryridge branch, a $200 savings account. Let the loan number serve as the account number for the new savings account. r1 ← (σbranch_name = “ Perryridge” (borrower loan)) account ← account ∪ ∏loan_number, branch_name, 200 (r1) depositor ← depositor ∪ ∏customer_name, loan_number (r1) atabase System Concepts - 5 th Edition, June 15, 2005 2.65 ©Silberschatz, Korth and Sudarshan
  • 66. Updating s A mechanism to change a value in a tuple without charging all values in the tuple s Use the generalized projection operator to do this task r ← ∏ F ,F ,,F , ( r ) 1 2 l s Each F is either i q the I th attribute of r, if the I th attribute is not updated, or, q if the attribute is to be updated Fi is an expression, involving only constants and the attributes of r, which gives the new value for the attribute atabase System Concepts - 5 th Edition, June 15, 2005 2.66 ©Silberschatz, Korth and Sudarshan
  • 67. Update Examples s Make interest payments by increasing all balances by 5 percent. account ← ∏ account_number, branch_name, balance * 1.05 (account) s Pay all accounts with balances over $10,000 6 percent interest and pay all others 5 percent account ← ∏ account_number, branch_name, balance * 1.06 (σ BAL > 10000 (account )) ∪ ∏ account_number, branch_name, balance * 1.05 (σBAL ≤ 10000 (account)) atabase System Concepts - 5 th Edition, June 15, 2005 2.67 ©Silberschatz, Korth and Sudarshan
  • 68. Figure 2.3. The branch relation atabase System Concepts - 5 th Edition, June 15, 2005 2.68 ©Silberschatz, Korth and Sudarshan
  • 69. Figure 2.6: The loan relation atabase System Concepts - 5 th Edition, June 15, 2005 2.69 ©Silberschatz, Korth and Sudarshan
  • 70. Figure 2.7: The borrower relation atabase System Concepts - 5 th Edition, June 15, 2005 2.70 ©Silberschatz, Korth and Sudarshan
  • 71. Figure 2.9 Result of σbranch_name = “Perryridge” (loan) atabase System Concepts - 5 th Edition, June 15, 2005 2.71 ©Silberschatz, Korth and Sudarshan
  • 72. Loan number and the amount of the loan atabase System Concepts - 5 th Edition, June 15, 2005 2.72 ©Silberschatz, Korth and Sudarshan
  • 73. who have either an account or an loan atabase System Concepts - 5 th Edition, June 15, 2005 2.73 ©Silberschatz, Korth and Sudarshan
  • 74. Customers with an account but no loan atabase System Concepts - 5 th Edition, June 15, 2005 2.74 ©Silberschatz, Korth and Sudarshan
  • 75. Figure 2.13: Result of borrower |X| loan atabase System Concepts - 5 th Edition, June 15, 2005 2.75 ©Silberschatz, Korth and Sudarshan
  • 76. Figure 2.14 atabase System Concepts - 5 th Edition, June 15, 2005 2.76 ©Silberschatz, Korth and Sudarshan
  • 77. Figure 2.15 atabase System Concepts - 5 th Edition, June 15, 2005 2.77 ©Silberschatz, Korth and Sudarshan
  • 78. Figure 2.16 atabase System Concepts - 5 th Edition, June 15, 2005 2.78 ©Silberschatz, Korth and Sudarshan
  • 79. Figure 2.17 Largest account balance in the bank atabase System Concepts - 5 th Edition, June 15, 2005 2.79 ©Silberschatz, Korth and Sudarshan
  • 80. Figure 2.18: Customers who live on the same street and in the same city as Smith atabase System Concepts - 5 th Edition, June 15, 2005 2.80 ©Silberschatz, Korth and Sudarshan
  • 81. Figure 2.19: Customers with both an account and a loan at the bank atabase System Concepts - 5 th Edition, June 15, 2005 2.81 ©Silberschatz, Korth and Sudarshan
  • 82. Figure 2.20 atabase System Concepts - 5 th Edition, June 15, 2005 2.82 ©Silberschatz, Korth and Sudarshan
  • 83. Figure 2.21 atabase System Concepts - 5 th Edition, June 15, 2005 2.83 ©Silberschatz, Korth and Sudarshan
  • 84. Figure 2.22 atabase System Concepts - 5 th Edition, June 15, 2005 2.84 ©Silberschatz, Korth and Sudarshan
  • 85. Figure 2.23 atabase System Concepts - 5 th Edition, June 15, 2005 2.85 ©Silberschatz, Korth and Sudarshan
  • 86. Figure 2.24: The credit_info relation atabase System Concepts - 5 th Edition, June 15, 2005 2.86 ©Silberschatz, Korth and Sudarshan
  • 87. Figure 2.25 atabase System Concepts - 5 th Edition, June 15, 2005 2.87 ©Silberschatz, Korth and Sudarshan
  • 88. Figure 2.26: The pt_works relation atabase System Concepts - 5 th Edition, June 15, 2005 2.88 ©Silberschatz, Korth and Sudarshan
  • 89. The pt_works relation after regrouping atabase System Concepts - 5 th Edition, June 15, 2005 2.89 ©Silberschatz, Korth and Sudarshan
  • 90. Figure 2.28 atabase System Concepts - 5 th Edition, June 15, 2005 2.90 ©Silberschatz, Korth and Sudarshan
  • 91. Figure 2.29 atabase System Concepts - 5 th Edition, June 15, 2005 2.91 ©Silberschatz, Korth and Sudarshan
  • 92. Figure 2.30 The employee and ft_works relations atabase System Concepts - 5 th Edition, June 15, 2005 2.92 ©Silberschatz, Korth and Sudarshan
  • 93. Figure 2.31 atabase System Concepts - 5 th Edition, June 15, 2005 2.93 ©Silberschatz, Korth and Sudarshan
  • 94. Figure 2.32 atabase System Concepts - 5 th Edition, June 15, 2005 2.94 ©Silberschatz, Korth and Sudarshan
  • 95. Figure 2.33 atabase System Concepts - 5 th Edition, June 15, 2005 2.95 ©Silberschatz, Korth and Sudarshan
  • 96. Figure 2.34 atabase System Concepts - 5 th Edition, June 15, 2005 2.96 ©Silberschatz, Korth and Sudarshan