Cơ sở dữ liệu - Chapter 2: Relational model

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 ■ Aggregate operation in relational algebra E is any relational­algebra expression ● G 1, G2 , Gn is a list of attributes on which to group (can be empty) ● Each F i is an aggregate function ● Each A i is an attribute name

pdf96 trang | Chia sẻ: huyhoang44 | Lượt xem: 790 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Cơ sở dữ liệu - Chapter 2: Relational model, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See www.db­book.com for conditions on re­use  Chapter 2: Relational Model ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Chapter 2:  Relational Model n Structure of Relational Databases n Fundamental Relational­Algebra­Operations n Additional Relational­Algebra­Operations n Extended Relational­Algebra­Operations n Null Values n Modification of the Database ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Example of a Relation ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Basic Structure n Formally, given sets D1, D2, . Dn a relation r is a subset of          D1 x  D2  x  x Dn Thus, a relation is a set of n­tuples (a1, a2, , an) where each ai  ∈ Di n Example:  If l customer_name =  {Jones, Smith, Curry, Lindsay, }   /* Set of all customer names */ l customer_street =  {Main, North, Park, } /* set of all street names*/ l customer_city     =  {Harrison, Rye, Pittsfield, } /* set of all city names */ Then r = {        (Jones,   Main,  Harrison),                     (Smith,    North, Rye),                    (Curry,    North, Rye),                    (Lindsay, Park,  Pittsfield) }  is a relation over  customer_name  x  customer_street  x  customer_city ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Attribute Types n Each attribute of a relation has a name n The set of allowed values for each attribute is called the domain of the  attribute n Attribute values are (normally) required to be atomic; that is, indivisible l E.g. the value of an attribute can be an account number,  but cannot be a set of account numbers n Domain is said to be atomic if all its members are atomic n The special value null  is a member of every domain n The null value causes complications in the definition of many operations l We shall ignore the effect of null values in our main presentation and  consider their effect later ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Relation Schema n A1, A2, , An are attributes n R = (A1, A2, , An ) is a relation schema Example: Customer_schema = (customer_name, customer_street, customer_city) n r(R) denotes a relation r on the relation schema R Example: customer (Customer_schema) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Relation Instance n The current values (relation instance) of a relation are specified by a  table n An element t of r is a tuple, represented by a row in a table Jones Smith Curry Lindsay customer_name Main North North Park customer_street Harrison Rye Rye Pittsfield customer_city customer attributes (or columns) tuples (or rows) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Relations are Unordered n Order of tuples is irrelevant (tuples may be stored in an arbitrary order) n Example: account relation with unordered tuples ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Database n A database consists of multiple relations n Information about an enterprise is broken up into parts, 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 n Storing all information as a single relation such as     bank(account_number, balance, customer_name, ..) results in l repetition of information   e.g.,if two customers own an account (What gets repeated?) l the need for null values    e.g., to represent a customer without an account n Normalization theory (Chapter 7) deals with how to design relational schemas ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 The customer Relation ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 The depositor Relation ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Keys n Let K ⊆ R n K is a superkey of R if values for K are sufficient to identify a unique tuple of  each possible relation r(R)  l by “possible r ” we mean a relation r that could exist in the enterprise we  are modeling. l 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. ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Keys (Cont.) n 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. n Primary key: a candidate key chosen as the principal means of  identifying tuples within a relation l Should choose an attribute whose value never, or very rarely,  changes. l E.g. email address is unique, but may change ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Foreign Keys n A relation schema may have an attribute that corresponds to the primary  key of another relation.  The attribute is called a foreign key. l E.g. customer_name and account_number attributes of depositor are  foreign keys to customer and account respectively. l Only values occurring in the primary key attribute of the referenced  relation may occur in the foreign key attribute of the referencing  relation. n Schema diagram ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Query Languages n Language in which user requests information from the database. n Categories of languages l Procedural l Non­procedural, or declarative n “Pure” languages: l Relational algebra l Tuple relational calculus l Domain relational calculus n Pure languages form underlying basis of query languages that people  use. ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Relational Algebra n Procedural language n Six basic operators l select: σ l project: ∏ l union: ∪ l set difference: –  l Cartesian product: x l rename: ρ n The operators take one or  two relations as inputs and produce a new  relation as a result. ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Select Operation – Example n Relation r A B C D α α β β α β β β 1 5 12 23 7 7 3 10 σA=B ^ D > 5 (r) A B C D α β α β 1 23 7 10 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Select Operation n Notation:  σ p(r) n p is called the selection predicate n 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: op   or       where op is one of:  =, ≠, >, ≥. <. ≤ n Example of selection:    σ branch_name=“Perryridge”(account) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Project Operation – Example n Relation r: A B C α α β β 10 20 30 40 1 1 1 2 A C α α β β 1 1 1 2 = A C α β β 1 1 2 ∏A,C (r) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Project Operation n Notation: where A1, A2 are attribute names and r is a relation name. n The result is defined as the relation of k columns obtained by erasing  the columns that are not listed n Duplicate rows removed from result, since relations are sets n Example: To eliminate the branch_name attribute of account            ∏account_number, balance (account)  )(  ,,, 21 rkAAA ∏ ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Union Operation – Example n Relations r, s: n r ∪ s: A B α α β 1 2 1 A B α β 2 3 r s A B α α β β 1 2 1 3 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Union Operation n Notation:  r ∪ s n Defined as:  r  ∪ s = {t | t ∈ r or t ∈ s} n 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) n Example: to find all customers with either an account or a loan     ∏customer_name (depositor)   ∪  ∏customer_name (borrower) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Set Difference Operation – Example n Relations r, s: n r  – s: A B α α β 1 2 1 A B α β 2 3 r s A B α β 1 1 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Set Difference Operation n Notation r – s n Defined as:  r – s  = {t | t ∈ r and t ∉ s} n Set differences must be taken between compatible  relations. l r and s must have the same arity l attribute domains of r and s must be compatible ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Cartesian­Product Operation –  Example n Relations r, s: n r x s: A B α β 1 2 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 C D α β β γ 10 10 20 10 E a a b br s ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Cartesian­Product Operation n Notation r x s n Defined as: r x s = {t q | t ∈ r and q ∈ s} n Assume that attributes of r(R) and s(S) are disjoint. (That is, R ∩ S = ∅). n If attributes of r(R) and s(S) are not disjoint, then renaming must be  used. ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Composition of Operations n Can build expressions using multiple operations n Example:  σA=C(r x s) n r x s n σA=C(r x 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 A B C D E α β β 1 2 2 α β β 10 10 20 a a b ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Rename Operation n Allows us to name, and therefore to refer to, the results of relational­ algebra expressions. n Allows us to refer to a relation by more than one name. n Example:   ρ x (E) returns the expression E under the name X n If a relational­algebra expression E has arity n, then  returns the result of expression E under the name X, and with the attributes renamed to A1 , A2 , ., An . )(),...,,( 21 EnAAAxρ ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 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) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Example Queries n Find all loans of over $1200 n Find the loan number for each loan of an amount greater than                              $1200 σamount > 1200 (loan) ∏loan_number (σamount > 1200 (loan)) n Find the names of all customers who have a loan, an account, or both,  from the bank ∏customer_name (borrower) ∪ ∏customer_name (depositor) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Example Queries n Find the names of all customers who have a loan at the Perryridge  branch. n  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) ∏customer_name (σbranch_name=“Perryridge”     (σborrower.loan_number = loan.loan_number(borrower x loan))) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Example Queries n Find the names of all customers who have a loan at the Perryridge branch. l  Query 2  ∏customer_name(σloan.loan_number = borrower.loan_number (              (σbranch_name = “Perryridge” (loan)) x  borrower)) l Query 1   ∏customer_name (σbranch_name = “Perryridge” (   σborrower.loan_number = loan.loan_number (borrower x loan))) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Example Queries n Find the largest account balance l 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.   l The query is: ∏balance(account) ­ ∏account.balance     (σaccount.balance < d.balance (account x ρd (account))) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Formal Definition n A basic expression in the relational algebra consists of either one of the  following: l A relation in the database l A constant relation n Let E1 and E2  be relational­algebra expressions; the following are all  relational­algebra expressions: l E1 ∪ E2 l E1 – E2 l E1 x E2 l σp (E1), P is a predicate on attributes in E1 l ∏s(E1), S is a list consisting of some of the attributes in E1 l ρ x (E1), x is the new name for the result of E1 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Additional Operations We define additional operations that do not add any power to the relational algebra, but that simplify common queries. n Set intersection n Natural join n Division n Assignment ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Set­Intersection Operation n Notation: r ∩ s n Defined as: n r ∩ s = { t | t ∈ r and t ∈ s } n Assume:  l r, s have the same arity  l attributes of r and s are compatible n Note: r ∩ s = r – (r – s) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Set­Intersection Operation – Example n Relation r, s: n r ∩ s A       B α α β 1 2 1 A       B α β 2 3 r s A       B α      2 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 n    Notation:  r     s Natural­Join Operation n 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: l Consider each pair of tuples tr from r and ts from s.   l 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 n Example: R = (A, B, C, D) S = (E, B, D) l Result schema = (A, B, C, D, E) l r     s is defined as:       ∏r.A, r.B, r.C, r.D, s.E (σr.B = s.B ∧ r.D = s.D (r  x  s)) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Natural Join Operation – Example n Relations r, 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 E α β γ δ ∈ r A B α α α α δ 1 1 1 1 2 C D α α γ γ β a a a a b E α γ α γ δ s n r     s ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Division Operation n Notation:  n Suited to queries that include the phrase “for all”. n Let r and s be relations on schemas R and S respectively  where l R = (A1, , Am , B1, , Bn ) l 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 r ÷ s  ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Division Operation – Example n Relations r, s: n r ÷ s: A B α β 1 2 A B α α α β γ δ δ δ ∈ ∈ β 1 2 3 1 1 1 3 4 6 1 2 r s ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Another Division Example 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 n Relations r, s: n r ÷ s: D a b E 1 1 A B α γ a a C γ γ r s ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Division Operation (Cont.) n Property  l Let q = r  ÷ s l Then q is the largest relation satisfying q x s  ⊆ r n 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 l ∏R­S,S (r) simply reorders attributes of r l ∏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. ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Assignment Operation n The assignment operation (←) provides a convenient way to express  complex queries.  l  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. l Assignment must always be made to a temporary relation variable. n Example:  Write r ÷ s as  temp1 ← ∏R­S (r )  temp2 ← ∏R­S ((temp1 x s ) – ∏R­S,S (r )) result = temp1 – temp2 l The result to the right of the ← is assigned to the relation variable on  the left of the ←. l May use variable in subsequent expressions. ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Bank Example Queries n Find the names of all customers who have a loan and an account at  bank. ∏customer_name (borrower) ∩ ∏customer_name (depositor) n Find the name of all customers who have a loan at the bank and the  loan amount ∏customer_name, loan_number, amount (borrower     loan) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 l Query 1 ∏customer_name (σbranch_name = “Downtown” (depositor      account )) ∩         ∏customer_name (σbranch_name = “Uptown” (depositor     account)) l Query 2  ∏customer_name, branch_name (depositor      account)         ÷ ρtemp(branch_name) ({(“Downtown” ), (“Uptown” )}) Note that Query 2 uses a constant relation. Bank Example Queries n Find all customers who have an account from at least the “Downtown”  and the Uptown” branches. ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 n Find all customers who have an account at all branches located in  Brooklyn city. Bank Example Queries ∏customer_name, branch_name (depositor     account) ÷ ∏branch_name (σbranch_city = “Brooklyn” (branch)) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Extended Relational­Algebra­Operations n Generalized Projection n Aggregate Functions n Outer Join ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Generalized Projection n Extends the projection operation by allowing arithmetic functions to be  used in the projection list. n E is any relational­algebra expression n Each of F1, F2, , Fn  are are arithmetic expressions involving constants  and attributes in the schema of E. n Given relation credit_info(customer_name, limit, credit_balance), find  how much more each person can spend:  ∏customer_name, limit – credit_balance (credit_info) )( ,...,, 21 E nFFF ∏ ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Aggregate Functions and Operations n 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 n Aggregate operation in relational algebra  E is any relational­algebra expression l G1, G2 , Gn is a list of attributes on which to group (can be empty) l Each Fi is an aggregate function l Each Ai is an attribute name )()(,,(),(,,, 221121 Ennn AFAFAFGGG  ϑ ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Aggregate Operation – Example n Relation r: A B α α β β α β β β C 7 7 3 10 n g sum(c) (r) sum(c ) 27 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Aggregate Operation – Example n Relation account grouped by branch­name: branch_name g sum(balance) (account) branch_name account_number balance Perryridge Perryridge Brighton Brighton Redwood A­102 A­201 A­217 A­215 A­222 400 900 750 750 700 branch_name sum(balance) Perryridge Brighton Redwood 1300 1500 700 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Aggregate Functions (Cont.) n Result of aggregation does not have a name l Can use rename operation to give it a name l For convenience, we permit renaming as part of aggregate  operation branch_name g sum(balance) as sum_balance (account) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Outer Join n An extension of the join operation that avoids loss of information. n 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.  n Uses null values: l null signifies that the value is unknown or does not exist  l All comparisons involving null are (roughly speaking) false by  definition.  We shall study precise meaning of comparisons with nulls later ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Outer Join – Example n Relation loan n Relation borrower customer_name loan_number Jones Smith Hayes L­170 L­230 L­155 3000 4000 1700 loan_number amount L­170 L­230 L­260 branch_name Downtown Redwood Perryridge ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Outer Join – Example n Join  loan      borrower loan_number amount L­170 L­230 3000 4000 customer_name Jones Smith branch_name Downtown Redwood Jones Smith null loan_number amount L­170 L­230 L­260 3000 4000 1700 customer_namebranch_name Downtown Redwood Perryridge n Left Outer Join     loan          borrower ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Outer Join – Example loan_number amount L­170 L­230 L­155 3000 4000 null customer_name Jones Smith Hayes branch_name Downtown Redwood null loan_number amount L­170 L­230 L­260 L­155 3000 4000 1700 null customer_name Jones Smith null Hayes branch_name Downtown Redwood Perryridge null n Full Outer Join     loan        borrower n Right Outer Join     loan        borrower ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Null Values n It is possible for tuples to have a null value, denoted by null, for some  of their attributes n null signifies an unknown value or that a value does not exist. n The result of any arithmetic expression involving null is null. n Aggregate functions simply ignore null values (as in SQL) n For duplicate elimination and grouping, null is treated like any other  value, and two nulls are assumed to be  the same (as in SQL) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Null Values n Comparisons with null values return the special truth value: unknown l If false was used instead of unknown, then    not (A < 5)                 would not be equivalent to               A >= 5 n Three­valued logic using the truth value unknown: l OR: (unknown or true)         = true,         (unknown or false)        = unknown        (unknown or unknown) = unknown l AND:   (true and unknown)         = unknown,               (false and unknown)        = false,            (unknown and unknown) = unknown l NOT:  (not unknown) = unknown l In SQL “P is unknown” evaluates to true if predicate P evaluates to  unknown n Result of select  predicate is treated as false if it evaluates to unknown ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Modification of the Database n The content of the database may be modified using the following  operations: l Deletion l Insertion l Updating n All these operations are expressed using the assignment  operator. ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Deletion n 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. n Can delete only whole tuples; cannot delete values on only  particular attributes n A deletion is expressed in relational algebra by: r ← r – E where r is a relation and E is a relational algebra query. ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Deletion Examples n Delete all account records in the Perryridge branch. n   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 n   Delete all loan records with amount in the range of 0 to 50 loan ← loan – σ amount ≥ 0 and amount ≤ 50 (loan) account ← account – σ branch_name = “Perryridge” (account ) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Insertion n To insert data into a relation, we either: l specify a tuple to be inserted l write a query whose result is a set of tuples to be inserted n in relational algebra, an insertion is expressed by: r ←  r  ∪  E where r is a relation and E is a relational algebra expression. n The insertion of a single tuple is expressed by letting E  be a constant  relation containing one tuple.  ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Insertion Examples n Insert information in the database specifying that Smith has $1200 in  account A­973 at the Perryridge branch. n  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. account ←  account  ∪  {(“A­973”, “Perryridge”, 1200)} depositor ←  depositor  ∪  {(“Smith”, “A­973”)} r1 ← (σbranch_name = “Perryridge” (borrower    loan)) account ← account ∪ ∏loan_number, branch_name, 200 (r1) depositor ← depositor ∪ ∏customer_name, loan_number (r1) ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Updating n A mechanism to change a value in a tuple without charging all values in  the tuple n Use the generalized projection operator to do this task n Each Fi is either  l the I th attribute of r, if the I th attribute is not updated, or, l 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 )(,,,, 21 rr lFFF ∏← ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Update Examples n Make interest payments by increasing all balances by 5 percent. n  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)) account ← ∏ account_number, branch_name, balance * 1.05 (account) Database System Concepts, 5th Ed. ©Silberschatz, Korth and Sudarshan See www.db­book.com for conditions on re­use  End of Chapter 2 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.3. The branch relation ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.6: The loan relation ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.7: The borrower relation ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.9 Result of σbranch_name = “Perryridge” (loan)  ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.10:  Loan number and the amount of the loan ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.11: Names of all customers who  have either an account or an loan ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.12:  Customers with an account but no loan ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.13: Result of borrower |X| loan ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.14 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.15 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.16 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.17 Largest account balance in the bank ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.18: Customers who live on the  same street and in the same city as  Smith ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.19: Customers with both an  account and a loan at the bank ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.20 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.21 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.22 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.23 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.24: The credit_info relation ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.25 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.26: The pt_works relation ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.27 The pt_works relation after regrouping ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.28 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.29 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.30 The employee and ft_works relations ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.31 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.32 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.33 ©Silberschatz, Korth and Sudarshan2.Database System Concepts ­ 5th Edition, June 15,  2005 Figure 2.34

Các file đính kèm theo tài liệu này:

  • pdfch2_4282_0525.pdf