Upcoming SlideShare
×

# Relational Model

946 views

Published on

Chapter 2
Database Concepts
Korth

1 Like
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

Views
Total views
946
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
77
0
Likes
1
Embeds 0
No embeds

No notes for slide

### Relational Model

1. 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. 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 Databaseatabase System Concepts - 5 th Edition, June 15, 2005 2.2 ©Silberschatz, Korth and Sudarshan
3. 3. Example of a Relationatabase System Concepts - 5 th Edition, June 15, 2005 2.3 ©Silberschatz, Korth and Sudarshan
4. 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 lateratabase System Concepts - 5 th Edition, June 15, 2005 2.4 ©Silberschatz, Korth and Sudarshan
5. 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 constraintsatabase System Concepts - 5 th Edition, June 15, 2005 2.5 ©Silberschatz, Korth and Sudarshan
6. 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 customeratabase System Concepts - 5 th Edition, June 15, 2005 2.6 ©Silberschatz, Korth and Sudarshan
7. 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 customersatabase System Concepts - 5 th Edition, June 15, 2005 2.7 ©Silberschatz, Korth and Sudarshan
8. 8. The customer Relationatabase System Concepts - 5 th Edition, June 15, 2005 2.8 ©Silberschatz, Korth and Sudarshan
9. 9. The depositor Relationatabase System Concepts - 5 th Edition, June 15, 2005 2.9 ©Silberschatz, Korth and Sudarshan
10. 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 schemasatabase System Concepts - 5 th Edition, June 15, 2005 2.10 ©Silberschatz, Korth and Sudarshan
11. 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. 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 changeatabase System Concepts - 5 th Edition, June 15, 2005 2.12 ©Silberschatz, Korth and Sudarshan
13. 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. 14. Schema Diagramatabase System Concepts - 5 th Edition, June 15, 2005 2.14 ©Silberschatz, Korth and Sudarshan
15. 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. 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. 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 10atabase System Concepts - 5 th Edition, June 15, 2005 2.17 ©Silberschatz, Korth and Sudarshan
18. 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 β 2atabase System Concepts - 5 th Edition, June 15, 2005 2.18 ©Silberschatz, Korth and Sudarshan
19. 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 β 3atabase System Concepts - 5 th Edition, June 15, 2005 2.19 ©Silberschatz, Korth and Sudarshan
20. 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 β 1atabase System Concepts - 5 th Edition, June 15, 2005 2.20 ©Silberschatz, Korth and Sudarshan
21. 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 batabase System Concepts - 5 th Edition, June 15, 2005 2.21 ©Silberschatz, Korth and Sudarshan
22. 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. 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 batabase System Concepts - 5 th Edition, June 15, 2005 2.23 ©Silberschatz, Korth and Sudarshan
24. 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. 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. 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. 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. 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 earlieratabase System Concepts - 5 th Edition, June 15, 2005 2.28 ©Silberschatz, Korth and Sudarshan
29. 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 α 2atabase System Concepts - 5 th Edition, June 15, 2005 2.29 ©Silberschatz, Korth and Sudarshan
30. 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. 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. 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. 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 nameatabase System Concepts - 5 th Edition, June 15, 2005 2.33 ©Silberschatz, Korth and Sudarshan
34. 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. 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 700atabase System Concepts - 5 th Edition, June 15, 2005 2.35 ©Silberschatz, Korth and Sudarshan
36. 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. 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 lateratabase System Concepts - 5 th Edition, June 15, 2005 2.37 ©Silberschatz, Korth and Sudarshan
38. 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-155atabase System Concepts - 5 th Edition, June 15, 2005 2.38 ©Silberschatz, Korth and Sudarshan
39. 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 nullatabase System Concepts - 5 th Edition, June 15, 2005 2.39 ©Silberschatz, Korth and Sudarshan
40. 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 operationsatabase System Concepts - 5 th Edition, June 15, 2005 2.40 ©Silberschatz, Korth and Sudarshan
41. 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. 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 unknownatabase System Concepts - 5 th Edition, June 15, 2005 2.42 ©Silberschatz, Korth and Sudarshan
43. 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 tupleatabase System Concepts - 5 th Edition, June 15, 2005 2.43 ©Silberschatz, Korth and Sudarshan
44. 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. 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. 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. 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. 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. 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. 50. End of Chapter 2Database System Concepts, 5 th Ed. ©Silberschatz, Korth and SudarshanSee www.db-book.com for conditions on re-use
51. 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 E1atabase System Concepts - x th Edition, June 15, 2005 5 1 2.51 ©Silberschatz, Korth and Sudarshan
52. 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. 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. 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. 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 compatibleatabase System Concepts - 5 th Edition, June 15, 2005 2.55 ©Silberschatz, Korth and Sudarshan
56. 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. 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. 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. 59. Extended Relational-Algebra- Operations s Generalized Projection s Aggregate Functions s Outer Joinatabase System Concepts - 5 th Edition, June 15, 2005 2.59 ©Silberschatz, Korth and Sudarshan
60. 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. 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. 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. 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 – r3atabase System Concepts - 5 th Edition, June 15, 2005 2.63 ©Silberschatz, Korth and Sudarshan
64. 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. 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. 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 attributeatabase System Concepts - 5 th Edition, June 15, 2005 2.66 ©Silberschatz, Korth and Sudarshan
67. 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. 68. Figure 2.3. The branch relationatabase System Concepts - 5 th Edition, June 15, 2005 2.68 ©Silberschatz, Korth and Sudarshan
69. 69. Figure 2.6: The loan relationatabase System Concepts - 5 th Edition, June 15, 2005 2.69 ©Silberschatz, Korth and Sudarshan
70. 70. Figure 2.7: The borrower relationatabase System Concepts - 5 th Edition, June 15, 2005 2.70 ©Silberschatz, Korth and Sudarshan
71. 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. 72. Loan number and the amount of the loanatabase System Concepts - 5 th Edition, June 15, 2005 2.72 ©Silberschatz, Korth and Sudarshan
73. 73. who have either an account or an loanatabase System Concepts - 5 th Edition, June 15, 2005 2.73 ©Silberschatz, Korth and Sudarshan
74. 74. Customers with an account but no loanatabase System Concepts - 5 th Edition, June 15, 2005 2.74 ©Silberschatz, Korth and Sudarshan
75. 75. Figure 2.13: Result of borrower |X| loanatabase System Concepts - 5 th Edition, June 15, 2005 2.75 ©Silberschatz, Korth and Sudarshan
76. 76. Figure 2.14atabase System Concepts - 5 th Edition, June 15, 2005 2.76 ©Silberschatz, Korth and Sudarshan
77. 77. Figure 2.15atabase System Concepts - 5 th Edition, June 15, 2005 2.77 ©Silberschatz, Korth and Sudarshan
78. 78. Figure 2.16atabase System Concepts - 5 th Edition, June 15, 2005 2.78 ©Silberschatz, Korth and Sudarshan
79. 79. Figure 2.17 Largest account balance in the bankatabase System Concepts - 5 th Edition, June 15, 2005 2.79 ©Silberschatz, Korth and Sudarshan
80. 80. Figure 2.18: Customers who live on the same street and in the same city as Smithatabase System Concepts - 5 th Edition, June 15, 2005 2.80 ©Silberschatz, Korth and Sudarshan
81. 81. Figure 2.19: Customers with both an account and a loan at the bankatabase System Concepts - 5 th Edition, June 15, 2005 2.81 ©Silberschatz, Korth and Sudarshan
82. 82. Figure 2.20atabase System Concepts - 5 th Edition, June 15, 2005 2.82 ©Silberschatz, Korth and Sudarshan
83. 83. Figure 2.21atabase System Concepts - 5 th Edition, June 15, 2005 2.83 ©Silberschatz, Korth and Sudarshan
84. 84. Figure 2.22atabase System Concepts - 5 th Edition, June 15, 2005 2.84 ©Silberschatz, Korth and Sudarshan
85. 85. Figure 2.23atabase System Concepts - 5 th Edition, June 15, 2005 2.85 ©Silberschatz, Korth and Sudarshan
86. 86. Figure 2.24: The credit_info relationatabase System Concepts - 5 th Edition, June 15, 2005 2.86 ©Silberschatz, Korth and Sudarshan
87. 87. Figure 2.25atabase System Concepts - 5 th Edition, June 15, 2005 2.87 ©Silberschatz, Korth and Sudarshan
88. 88. Figure 2.26: The pt_works relationatabase System Concepts - 5 th Edition, June 15, 2005 2.88 ©Silberschatz, Korth and Sudarshan
89. 89. The pt_works relation after regroupingatabase System Concepts - 5 th Edition, June 15, 2005 2.89 ©Silberschatz, Korth and Sudarshan
90. 90. Figure 2.28atabase System Concepts - 5 th Edition, June 15, 2005 2.90 ©Silberschatz, Korth and Sudarshan
91. 91. Figure 2.29atabase System Concepts - 5 th Edition, June 15, 2005 2.91 ©Silberschatz, Korth and Sudarshan
92. 92. Figure 2.30 The employee and ft_works relationsatabase System Concepts - 5 th Edition, June 15, 2005 2.92 ©Silberschatz, Korth and Sudarshan
93. 93. Figure 2.31atabase System Concepts - 5 th Edition, June 15, 2005 2.93 ©Silberschatz, Korth and Sudarshan
94. 94. Figure 2.32atabase System Concepts - 5 th Edition, June 15, 2005 2.94 ©Silberschatz, Korth and Sudarshan
95. 95. Figure 2.33atabase System Concepts - 5 th Edition, June 15, 2005 2.95 ©Silberschatz, Korth and Sudarshan
96. 96. Figure 2.34atabase System Concepts - 5 th Edition, June 15, 2005 2.96 ©Silberschatz, Korth and Sudarshan