Chapter 2: Relational Model

Database System Concepts, 5th 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

Database System Concepts ­ 5th Edition, June 15,  2005

2.<number>

©Silberschatz, Korth and Sudarshan

Example of a Relation

Database System Concepts ­ 5th Edition, June 15,  2005

2.<number>

©Silberschatz, Korth and Sudarshan

<number> ©Silberschatz. Rye). Rye. a2. Rye).  Database System Concepts ­ 5th Edition. …}   /* Set of all customer names */ customer_street =  {Main.   Main.  2005 2. North. …} /* set of all city names */                    (Smith. Park. …. Smith. D2. Curry. Pittsfield.    North.                    (Curry. a relation is a set of n­tuples (a1.  Harrison). Korth and Sudarshan . …} /* set of all street names*/ customer_city     =  {Harrison.                    (Lindsay.  Pittsfield) }  is a relation over  customer_name  x  customer_street  x  customer_city q q Then r = {        (Jones. given sets D1. …. Dn a relation r is a subset of          D1 x  D2  x … x Dn Thus. an) where each ai  ∈ Di s Example:  If q customer_name =  {Jones. Lindsay.    North.Basic Structure s Formally. Park. June 15.

 June 15. the value of an attribute can be an account number.g.  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 Database System Concepts ­ 5th Edition. that is. indivisible E.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 q s Attribute values are (normally) required to be atomic. Korth and Sudarshan .  2005 2.<number> ©Silberschatz.

 An ) is a relation schema Example: Customer_schema = (customer_name.<number> ©Silberschatz. A2.  2005 2. Korth and Sudarshan . A2. ….Relation Schema s A1. June 15. …. An are attributes s R = (A1. customer_street. customer_city) s r(R) denotes a relation r on the relation schema R Example: customer (Customer_schema) Database System Concepts ­ 5th Edition.

<number> ©Silberschatz.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 customer_name customer_street Jones Smith Curry Lindsay Main North North Park customer customer_city Harrison Rye Rye Pittsfield attributes (or columns) tuples (or rows) Database System Concepts ­ 5th Edition. June 15.  2005 2. Korth and Sudarshan .

 Korth and Sudarshan . June 15.<number> ©Silberschatz.Relations are Unordered s Order of tuples is irrelevant (tuples may be stored in an arbitrary order) s Example: account relation with unordered tuples Database System Concepts ­ 5th Edition.  2005 2.

 . June 15.if two customers own an account (What gets repeated?) e.  2005 ....g.g. Korth and Sudarshan Database System Concepts ­ 5th Edition.Database s s A database consists of multiple relations Information about an enterprise is broken up into parts. balance.<number> ©Silberschatz. with  each relation  storing one part of the information account :   stores information about accounts         depositor :   stores information about which customer                               owns which account          customer :   stores information about customers s Storing all information as a single relation such as     bank(account_number. customer_name. to represent a customer without an account q the need for null values    s Normalization theory (Chapter 7) deals with how to design relational schemas 2.) results in q repetition of information   e.

 Korth and Sudarshan .<number> ©Silberschatz. June 15.  2005 2.The customer Relation Database System Concepts ­ 5th Edition.

<number> ©Silberschatz. Korth and Sudarshan . June 15.The depositor Relation Database System Concepts ­ 5th Edition.  2005 2.

 June 15. an attribute such as customer_id would be used instead of  customer_name to uniquely identify customers.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.<number> ©Silberschatz.  2005 2. but we omit it to keep  our examples small. Korth and Sudarshan . and instead assume customer names are unique. if no two customers can possibly have  the same name  q In real life. Database System Concepts ­ 5th Edition. customer_street} and                  {customer_name}  are both superkeys of Customer. Example:  {customer_name.

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

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

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

<number> ©Silberschatz. Korth and Sudarshan . Database System Concepts ­ 5th Edition. June 15.  2005 2.Relational Algebra s Procedural language s Six basic operators q q q q q q select: σ project: ∏ union: ∪ set difference: –  Cartesian product: x rename: ρ s The operators take one or  two relations as inputs and produce a new  relation as a result.

 Korth and Sudarshan . June 15.<number> ©Silberschatz.  2005 2.Select Operation – Example s Relation r A B C 1 5 12 D 7 7 3 α α β β α β β β 23 10 σA=B ^ D > 5 (r) A B C 1 D 7 α β α β 23 10 Database System Concepts ­ 5th Edition.

 ≠.Select Operation s s s Notation:  σ p(r) p is called the selection predicate Defined as:  σp(r) = {t | t ∈ r and p(t)} Where p is a formula in propositional calculus consisting of terms  connected by : ∧ (and). >. June 15.  2005 2. ≥. ∨ (or). Korth and Sudarshan . <. ¬ (not) Each term is one of: <attribute> op  <attribute> or <constant>      where op is one of:  =.<number> ©Silberschatz. ≤ s Example of selection:    σ branch_name=“Perryridge”(account) Database System Concepts ­ 5th Edition.

 Korth and Sudarshan . June 15.Project Operation – Example s Relation r: A B 10 20 30 40 C 1 1 1 2 α α β β ∏A.  2005 2.C (r) A C 1 1 1 2 = A C 1 1 2 α α β β α β β Database System Concepts ­ 5th Edition.<number> ©Silberschatz.

A (r ) 1 2 k where A1. 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. June 15. balance (account)  Database System Concepts ­ 5th Edition..Project Operation s Notation: ∏  A . A2 are attribute names and r is a relation name. Korth and Sudarshan .<number> ©Silberschatz.A .  2005 2. since relations are sets s Example: To eliminate the branch_name attribute of account            ∏account_number.

<number> ©Silberschatz.Union Operation – Example s Relations r. June 15. s: A B 1 2 r 1 A B 2 3 s α α β α β A s r ∪ s: B 1 2 1 3 α α β β Database System Concepts ­ 5th Edition.  2005 2. Korth and Sudarshan .

  r. Korth and Sudarshan . 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) Database System Concepts ­ 5th Edition. 1.  2005 2.<number> ©Silberschatz.Union Operation s Notation:  r ∪ s s Defined as:  r  ∪ s = {t | t ∈ r or t ∈ s} s For r ∪ s to be valid. June 15.

 s: A B 1 2 1 r A B 2 3 s α α β α β s r  – s: A B 1 1 α β Database System Concepts ­ 5th Edition. June 15. Korth and Sudarshan .<number> ©Silberschatz.Set Difference Operation – Example s Relations r.  2005 2.

 Korth and Sudarshan .  2005 2.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.<number> ©Silberschatz. June 15. q q r and s must have the same arity attribute domains of r and s must be compatible Database System Concepts ­ 5th Edition.

 June 15. Korth and Sudarshan E a a b b α β s r x s: α β β γ α α α α β β β β Database System Concepts ­ 5th Edition. s: A B 1 r 2 C D 10 10 20 10 s A B 1 1 1 1 2 2 2 2 C D 10 10 20 10 10 10 20 10 E a a b b a a b b ©Silberschatz.Cartesian­Product Operation –  Example s Relations r.<number> .  2005 α β  β γ α β β γ 2.

 June 15. Korth and Sudarshan .<number> ©Silberschatz. Database System Concepts ­ 5th Edition.  2005 2. then renaming must be  used. (That is. s If attributes of r(R) and s(S) are not disjoint.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. R ∩ S = ∅).

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

. June 15. and with the attributes renamed to A1 . then                                             ρ x ( A1 .. …. A2 . Korth and Sudarshan ...<number> ©Silberschatz. s Example:   ρ x (E) returns the expression E under the name X s If a relational­algebra expression E has arity n. and therefore to refer to. s Allows us to refer to a relation by more than one name. the results of relational­ algebra expressions.Rename Operation s Allows us to name.. Database System Concepts ­ 5th Edition. An ) (E ) returns the result of expression E under the name X. An .  2005 2. A2 .

 branch_name. customer_city) account (account_number. balance) loan (loan_number.Banking Example branch (branch_name. branch_name.<number> ©Silberschatz. assets) customer (customer_name. account_number) borrower (customer_name. June 15. customer_street. branch_city. Korth and Sudarshan . loan_number) Database System Concepts ­ 5th Edition.  2005 2. amount) depositor (customer_name.

                        from the bank ∏customer_name (borrower) ∪ ∏customer_name (depositor) Database System Concepts ­ 5th Edition. Korth and Sudarshan . an account. or both. June 15.  2005 2.<number> ©Silberschatz.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.

Example Queries s Find the names of all customers who have a loan at the Perryridge  branch.loan_number(borrower x loan)))  –                 ∏customer_name(depositor) Database System Concepts ­ 5th Edition.<number> ©Silberschatz. June 15.loan_number = loan.  2005 2. ∏customer_name (σbranch_name=“Perryridge”     (σborrower. ∏customer_name (σbranch_name = “Perryridge”  (σborrower. Korth and Sudarshan .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.

 June 15. q Query 1   ∏customer_name (σbranch_name = “Perryridge” (   σborrower.loan_number (              (σbranch_name = “Perryridge” (loan)) x  borrower)) Database System Concepts ­ 5th Edition.  2005 2. Korth and Sudarshan .Example Queries s Find the names of all customers who have a loan at the Perryridge branch.loan_number = borrower.<number> ©Silberschatz.loan_number = loan.loan_number (borrower x loan))) q  Query 2  ∏customer_name(σloan.

 Korth and Sudarshan .   q The query is:       ∏balance(account) ­ ∏account.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. June 15.balance (account x ρd (account))) Database System Concepts ­ 5th Edition.<number> ©Silberschatz.balance < d.  2005 2.balance     (σaccount.

<number> ©Silberschatz. Korth and Sudarshan . S is a list consisting of some of the attributes in E1 x 1 Database System Concepts ­ 5th Edition. P is a predicate on attributes in E1 ∏s(E1).  2005 q ρ   (E ). June 15.Formal Definition s A basic expression in the relational algebra consists of either one of the  following: q q A relation in the database A constant relation s Let E1 and E2  be relational­algebra expressions. the following are all  relational­algebra expressions: q q q q q E1 ∪ E2 E1 – E2 E1 x E2 σp (E1). x is the new name for the result of E1 2.

  2005 2. June 15.<number> ©Silberschatz.Additional Operations We define additional operations that do not add any power to the relational algebra. but that simplify common queries. s Set intersection s Natural join s Division s Assignment Database System Concepts ­ 5th Edition. Korth and Sudarshan .

  2005 2. June 15. Korth and Sudarshan .<number> ©Silberschatz.Set­Intersection Operation s Notation: r ∩ s s Defined as: s r ∩ s = { t | t ∈ r and t ∈ s } s Assume:  q q r. s have the same arity  attributes of r and s are compatible s Note: r ∩ s = r – (r – s) Database System Concepts ­ 5th Edition.

 June 15.<number> ©Silberschatz.  2005 2.Set­Intersection Operation – Example s Relation r. s: A       B α α β r 1 2 1 A       B α β s 2 3 s r ∩ s A       B α      2 Database System Concepts ­ 5th Edition. Korth and Sudarshan .

  2005 . D. B. June 15.  r     s  is a relation on schema R ∪ S obtained as follows: Consider each pair of tuples tr from r and ts from s.Natural­Join Operation s    Notation:  r     s s Let r and s be relations on schemas R and S respectively. B. D) S = (E. Korth and Sudarshan Database System Concepts ­ 5th Edition.<number> ©Silberschatz. E) r     s is defined as: 2. C. where  t has the same value as tr on r t has the same value as ts on s  s Example: R = (A. B.   If tr and ts have the same value on each of the attributes in R ∩ S. D) q q Result schema = (A. add a  tuple t  to the result.  q q Then. C.

  2005 α α γ γ β α γ α γ δ ©Silberschatz. s: A B 1 2 4 1 2 C D a a b a b B 1 3 1 2 3 D a a a b b s E α β γ α δ s r     s r α γ β γ β α β γ δ ∈ A B 1 1 1 1 2 C D a a a a b E α α α α δ Database System Concepts ­ 5th Edition. Korth and Sudarshan 2. June 15.Natural Join Operation – Example s Relations r.<number> .

 Korth and Sudarshan . …. …. June 15. Bn) The result of  r ÷ s is a relation on schema R – S = (A1.<number> ©Silberschatz. B1. s Let r and s be relations on schemas R and S respectively  r ÷ s  where q q R = (A1.  2005 2.Division Operation s Notation:  s Suited to queries that include the phrase “for all”. Am . Bn ) S = (B1. 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 Database System Concepts ­ 5th Edition. …. ….

Division Operation – Example s Relations r.  2005 2. Korth and Sudarshan .<number> ©Silberschatz. s: A B 1 2 3 1 1 1 3 4 6 1 2 r B 1 2 s s r ÷ s: α α α β γ δ δ δ ∈ ∈ β A α β Database System Concepts ­ 5th Edition. June 15.

Another Division Example
s Relations r, s: A B a a a a a a a a C D a a b a b a b b E 1 1 1 1 3 1 1 1 D a b E 1 1

α α α β β γ γ γ
s r ÷ s:

α γ γ γ γ γ γ β r
A

s

B a a

C

α γ

γ γ

Database System Concepts ­ 5th Edition, June 15,  2005

2.<number>

©Silberschatz, Korth and Sudarshan

Division Operation (Cont.)
s

Property 
q q

Let q = r  ÷ s 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 ∏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.

q

Database System Concepts ­ 5th Edition, June 15,  2005

2.<number>

©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. temp1 ← ∏R­S (r )  temp2 ← ∏R­S ((temp1 x s ) – ∏R­S,S (r )) result = temp1 – temp2 The result to the right of the ← is assigned to the relation variable on  the left of the ←. May use variable in subsequent expressions.

s

Example:  Write r ÷ s as 

q

q

Database System Concepts ­ 5th Edition, June 15,  2005

2.<number>

©Silberschatz, Korth and Sudarshan

∏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. June 15.<number> ©Silberschatz.Bank Example Queries s Find the names of all customers who have a loan and an account at  bank. loan_number. Korth and Sudarshan . amount (borrower     loan) Database System Concepts ­ 5th Edition.  2005 2.

q Query 1 ∏customer_name (σbranch_name = “Downtown” (depositor      account )) ∩         ∏customer_name (σbranch_name = “Uptown” (depositor     account)) q Query 2  ∏customer_name. Korth and Sudarshan . Database System Concepts ­ 5th Edition.<number> ©Silberschatz.  2005 2. June 15.Bank Example Queries s Find all customers who have an account from at least the “Downtown”  and the Uptown” branches. (“Uptown” )}) Note that Query 2 uses a constant relation. branch_name (depositor      account)         ÷ ρtemp(branch_name) ({(“Downtown” ).

  2005 2. 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)) Database System Concepts ­ 5th Edition.<number> ©Silberschatz. June 15.

  2005 2.Extended Relational­Algebra­Operations s Generalized Projection s Aggregate Functions s Outer Join Database System Concepts ­ 5th Edition.<number> ©Silberschatz. Korth and Sudarshan . June 15.

Generalized Projection s Extends the projection operation by allowing arithmetic functions to be  used in the projection list. June 15. limit. Korth and Sudarshan . F2.  2005 2..F .. credit_balance). …. s Given relation credit_info(customer_name.<number> ©Silberschatz. ∏ F .. find  how much more each person can spend:  ∏customer_name..  F (E ) 1 2 n s E is any relational­algebra expression s Each of F1. Fn  are are arithmetic expressions involving constants  and attributes in the schema of E. limit – credit_balance (credit_info) Database System Concepts ­ 5th Edition.

Aggregate Functions and Operations s Aggregation function takes a collection of values and returns a single  value as a result.Gn ϑF ( A ). Gn is a list of attributes on which to group (can be empty) Each Fi is an aggregate function Each Ai is an attribute name Database System Concepts ­ 5th Edition.<number> ©Silberschatz.G2 .F ( A . G2 …. Korth and Sudarshan .. June 15.  2005 2..F ( A ) (E ) 1 1 2 2 n n E is any relational­algebra expression q q q G1. avg:  average value min:  minimum value max:  maximum value sum:  sum of values count:  number of values s Aggregate operation in relational algebra  G1.

  2005 2. Korth and Sudarshan .<number> ©Silberschatz. June 15.Aggregate Operation – Example s Relation r: A B C 7 7 3 10 α α β β α β β β s g sum(c) (r) sum(c ) 27 Database System Concepts ­ 5th Edition.

<number> ©Silberschatz. June 15. Korth and Sudarshan .  2005 2.Aggregate Operation – Example s Relation account grouped by branch­name: branch_name account_number Perryridge Perryridge Brighton Brighton Redwood A­102 A­201 A­217 A­215 A­222 balance 400 900 750 750 700 branch_name g sum(balance) (account) branch_name Perryridge Brighton Redwood sum(balance) 1300 1500 700 Database System Concepts ­ 5th Edition.

 Korth and Sudarshan .  2005 2.<number> ©Silberschatz.) s Result of aggregation does not have a name q q Can use rename operation to give it a name For convenience. we permit renaming as part of aggregate  operation branch_name g sum(balance) as sum_balance (account) Database System Concepts ­ 5th Edition.Aggregate Functions (Cont. June 15.

  2005 2. June 15. Korth and Sudarshan .  We shall study precise meaning of comparisons with nulls later Database System Concepts ­ 5th Edition.  q q s Uses null values: null signifies that the value is unknown or does not exist  All comparisons involving null are (roughly speaking) false by  definition.<number> ©Silberschatz.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.

<number> ©Silberschatz.  2005 2. June 15. Korth and Sudarshan .Outer Join – Example s Relation loan loan_number branch_name L­170 L­230 L­260 s Relation borrower amount 3000 4000 1700 Downtown Redwood Perryridge customer_name loan_number Jones Smith Hayes L­170 L­230 L­155 Database System Concepts ­ 5th Edition.

 June 15. Korth and Sudarshan .  2005 2.<number> ©Silberschatz.Outer Join – Example s Join  loan      borrower loan_number L­170 L­230 s Left Outer Join branch_name Downtown Redwood amount customer_name 3000 4000 Jones Smith     loan          borrower loan_number L­170 L­230 L­260 branch_name Downtown Redwood Perryridge amount customer_name 3000 4000 1700 Jones Smith null Database System Concepts ­ 5th Edition.

  2005 2. Korth and Sudarshan . June 15.<number> ©Silberschatz.Outer Join – Example s Right Outer Join     loan        borrower loan_number L­170 L­230 L­155 s Full Outer Join branch_name Downtown Redwood null amount customer_name 3000 4000 null Jones Smith Hayes     loan        borrower loan_number L­170 L­230 L­260 L­155 branch_name Downtown Redwood Perryridge null amount customer_name 3000 4000 1700 null Jones Smith null Hayes Database System Concepts ­ 5th Edition.

 for some  of their attributes s null signifies an unknown value or that a value does not exist. denoted by null. Korth and Sudarshan . s Aggregate functions simply ignore null values (as in SQL) s For duplicate elimination and grouping. and two nulls are assumed to be  the same (as in SQL) Database System Concepts ­ 5th Edition. June 15. s The result of any arithmetic expression involving null is null. null is treated like any other  value.Null Values s It is possible for tuples to have a null value.<number> ©Silberschatz.  2005 2.

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

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

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

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. branch_name. balance (r1) r3 ← ∏ customer_name. account_number (r2     depositor) account ← account – r2 depositor ← depositor – r3 Database System Concepts ­ 5th Edition. June 15.Deletion Examples s Delete all account records in the Perryridge branch. r1 ← σ branch_city = “Needham” (account      branch ) r2 ← ∏ account_number.<number> ©Silberschatz. Korth and Sudarshan .  2005 2.

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

 1200)} depositor ←  depositor  ∪  {(“Smith”. r1 ← (σbranch_name = “Perryridge” (borrower    loan)) account ← account ∪ ∏loan_number. a $200 savings account. “A­973”)} s  Provide as a gift for all loan customers in the Perryridge      branch.  2005 2. “Perryridge”. account ←  account  ∪  {(“A­973”. branch_name.Insertion Examples s Insert information in the database specifying that Smith has $1200 in  account A­973 at the Perryridge branch. June 15. Korth and Sudarshan . 200 (r1) depositor ← depositor ∪ ∏customer_name. loan_number (r1) Database System Concepts ­ 5th Edition.<number> ©Silberschatz.  Let the loan number serve      as the account number for the new savings account.

Fl .F2 .<number> ©Silberschatz.  2005 2.. ( r ) s Each F  is either  i q q the I th attribute of r. which gives the new value for the  attribute Database System Concepts ­ 5th Edition. June 15. if the attribute is to be updated Fi  is an expression. Korth and Sudarshan . or.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 ← ∏ F1. involving only  constants and the attributes of r. if the I th attribute is not updated.

 balance * 1. balance * 1. account ← ∏ account_number.000 6 percent interest       and pay all others 5 percent   account ←  ∏ account_number.05 (σBAL ≤ 10000 (account)) Database System Concepts ­ 5th Edition.<number> ©Silberschatz.  2005 2. balance * 1.05 (account) s  Pay all accounts with balances over $10. Korth and Sudarshan . branch_name. June 15. branch_name.06 (σ BAL > 10000 (account ))                     ∪  ∏ account_number. branch_name.Update Examples s Make interest payments by increasing all balances by 5 percent.

db­book.com for conditions on re­use  .End of Chapter 2 Database System Concepts. 5th Ed. ©Silberschatz. Korth and Sudarshan See www.

<number> ©Silberschatz. Korth and Sudarshan . June 15.Figure 2.3.  2005 2. The branch relation Database System Concepts ­ 5th Edition.

 June 15.6: The loan relation Database System Concepts ­ 5th Edition.<number> ©Silberschatz.  2005 2. Korth and Sudarshan .Figure 2.

 Korth and Sudarshan .  2005 2.<number> ©Silberschatz.Figure 2. June 15.7: The borrower relation Database System Concepts ­ 5th Edition.

 June 15.Result of σbranch_name = “Perryridge” (loan)  Result of  Figure 2.<number> ©Silberschatz.  2005 2. Korth and Sudarshan .9 Database System Concepts ­ 5th Edition.

10:  Loan number and the amount of the loan Database System Concepts ­ 5th Edition. Korth and Sudarshan . June 15.  2005 2.<number> ©Silberschatz.Figure 2.

 Korth and Sudarshan .<number> ©Silberschatz.  2005 2.11: Names of all customers who  have either an account or an loan Database System Concepts ­ 5th Edition.Figure 2. June 15.

<number> ©Silberschatz.  2005 2.Figure 2. June 15. Korth and Sudarshan .12:  Customers with an account but no loan Database System Concepts ­ 5th Edition.

 June 15.  2005 2.13: Result of borrower |X| loan Database System Concepts ­ 5th Edition.Figure 2. Korth and Sudarshan .<number> ©Silberschatz.

 Korth and Sudarshan .14 Database System Concepts ­ 5th Edition.  2005 2.Figure 2.<number> ©Silberschatz. June 15.

15 Database System Concepts ­ 5th Edition. June 15.Figure 2.  2005 2. Korth and Sudarshan .<number> ©Silberschatz.

Figure 2. Korth and Sudarshan .<number> ©Silberschatz.16 Database System Concepts ­ 5th Edition.  2005 2. June 15.

 June 15.<number> ©Silberschatz. Korth and Sudarshan .Figure 2.17 Largest account balance in the bank Database System Concepts ­ 5th Edition.  2005 2.

 June 15.18: Customers who live on the  same street and in the same city as  Smith Database System Concepts ­ 5th Edition.  2005 2.Figure 2. Korth and Sudarshan .<number> ©Silberschatz.

Figure 2.  2005 2. Korth and Sudarshan . June 15.19: Customers with both an  account and a loan at the bank Database System Concepts ­ 5th Edition.<number> ©Silberschatz.

Figure 2. Korth and Sudarshan .20 Database System Concepts ­ 5th Edition.  2005 2. June 15.<number> ©Silberschatz.

 Korth and Sudarshan . June 15.21 Database System Concepts ­ 5th Edition.Figure 2.  2005 2.<number> ©Silberschatz.

<number> ©Silberschatz.Figure 2. Korth and Sudarshan .22 Database System Concepts ­ 5th Edition.  2005 2. June 15.

  2005 2. June 15. Korth and Sudarshan .23 Database System Concepts ­ 5th Edition.<number> ©Silberschatz.Figure 2.

 June 15. Korth and Sudarshan .<number> ©Silberschatz.24: The credit_info relation Database System Concepts ­ 5th Edition.  2005 2.Figure 2.

 June 15.Figure 2.  2005 2.<number> ©Silberschatz. Korth and Sudarshan .25 Database System Concepts ­ 5th Edition.

Figure 2.26: The pt_works relation

Database System Concepts ­ 5th Edition, June 15,  2005

2.<number>

©Silberschatz, Korth and Sudarshan

Figure 2.27 The pt_works relation after regrouping

Database System Concepts ­ 5th Edition, June 15,  2005

2.<number>

©Silberschatz, Korth and Sudarshan

Figure 2.28

Database System Concepts ­ 5th Edition, June 15,  2005

2.<number>

©Silberschatz, Korth and Sudarshan

 Korth and Sudarshan .  2005 2. June 15.Figure 2.29 Database System Concepts ­ 5th Edition.<number> ©Silberschatz.

Figure 2. June 15. Korth and Sudarshan .30 The employee and ft_works relations Database System Concepts ­ 5th Edition.  2005 2.<number> ©Silberschatz.

31 Database System Concepts ­ 5th Edition. June 15. Korth and Sudarshan .Figure 2.  2005 2.<number> ©Silberschatz.

<number> ©Silberschatz.Figure 2.  2005 2.32 Database System Concepts ­ 5th Edition. Korth and Sudarshan . June 15.

33 Database System Concepts ­ 5th Edition.Figure 2. Korth and Sudarshan .<number> ©Silberschatz. June 15.  2005 2.

  2005 2. Korth and Sudarshan .<number> ©Silberschatz.Figure 2.34 Database System Concepts ­ 5th Edition. June 15.

Sign up to vote on this title
UsefulNot useful

Master Your Semester with Scribd & The New York Times

Special offer: Get 4 months of Scribd and The New York Times for just $1.87 per week!

Master Your Semester with a Special Offer from Scribd & The New York Times