Presentation is loading. Please wait.

Presentation is loading. Please wait.

©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Extended.

Similar presentations


Presentation on theme: "©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Extended."— Presentation transcript:

1 ©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Extended Relational-Algebra-Operations Modification of the Database Views

2 ©Silberschatz, Korth and Sudarshan3.2Database System Concepts Introduction Relation  A table of values  Each column in the table has a column header called an attribute  Each row is called a tuple Loosely speaking, represents the databases as a collection of relations and constraints Relational database consists of a collection of tables

3 ©Silberschatz, Korth and Sudarshan3.3Database System Concepts Example of a Relation

4 ©Silberschatz, Korth and Sudarshan3.4Database System Concepts Basic Structure Formally, given sets D 1, D 2, …. D n, a relation r is a subset of D 1 x D 2 x … x D n Thus a relation is a set of n-tuples (a 1, a 2, …, a n ) where a i  D i Example: ifcustomer-name = {Jones, Smith, Curry, Lindsay} customer-street = {Main, North, Park} customer-city = {Harrison, Rye, Pittsfield} 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

5 ©Silberschatz, Korth and Sudarshan3.5Database System Concepts Attribute Types Each attribute of a relation has a name Domain of the attribute : The set of allowed values for each attribute Attribute values are (normally) required to be atomic (i.e. indivisible)  Multivalued attribute values, Composite attribute values  not atomic The special value null is a member of every domain The null value causes complications in the definition of many operations (  we shall ignore the effect of null values in our main presentation and consider their effect later)

6 ©Silberschatz, Korth and Sudarshan3.6Database System Concepts Relation Schema A 1, A 2, …, A n are attributes R = (A 1, A 2, …, A n ) is a relation schema E.g. Customer-schema = (customer-name, customer-street, customer-city) r(R) is a relation on the relation schema R E.g. customer (Customer-schema)

7 ©Silberschatz, Korth and Sudarshan3.7Database System Concepts Relation Instance The current values (relation instance) of a relation are specified by a table Order of tuples is irrelevant Jones Smith Curry Lindsay customer-name Main North Park customer-street Harrison Rye Pittsfield customer-city customer attributes tuples

8 ©Silberschatz, Korth and Sudarshan3.8Database System Concepts Database A database consists of multiple relations Information about an enterprise is broken up into parts, with each relation storing one part of the information E.g.: ‘bank’ database account : stores information about accounts depositor : stores information about which customer owns which account customer : stores information about customers Storing all information as a single relation   repetition of information (e.g. two customers own an account)  the need for null values (e.g. represent a customer without an account) Normalization theory deals with how to design relational schemas  Chapter 7

9 ©Silberschatz, Korth and Sudarshan3.9Database System Concepts Customer Relation

10 ©Silberschatz, Korth and Sudarshan3.10Database System Concepts Keys Let K  R K is a superkey of R if values for K are sufficient to identify a unique tuple of each possible relation r(R) by “possible r” Example: {customer-name, customer-street} and {customer-name} are both superkeys of Customer, if no two customers can possibly have the same name. K is a candidate key if K is minimal Example: {customer-name}  candidate key

11 ©Silberschatz, Korth and Sudarshan3.11Database System Concepts Determining Keys from E-R Sets Strong entity set: The primary key of the entity set becomes the primary key of the relation. Weak entity set: The primary key of the strong entity set + the discriminator of the weak entity set. Relationship set: The union of the primary keys of the related entity sets becomes a superkey of the relation.  Binary many-to-one relationship sets  the primary key of the ‘many’ entity set becomes the relation’s primary key.  One-to-one relationship sets  primary key of either entity set.  Many-to-many relationship sets  union of the primary keys

12 ©Silberschatz, Korth and Sudarshan3.12Database System Concepts E-R Diagram for the Banking Enterprise

13 ©Silberschatz, Korth and Sudarshan3.13Database System Concepts Schema Diagram for the Banking Enterprise Foreign key

14 ©Silberschatz, Korth and Sudarshan3.14Database System Concepts Query Languages Language in which user requests information from the database. Categories of languages  Procedural  Nonprocedural “Pure” languages  Relational Algebra  Tuple Relational Calculus  Domain Relational Calculus Pure languages form underlying basis of query languages that people use.

15 ©Silberschatz, Korth and Sudarshan3.15Database System Concepts Relational Algebra Procedural language Six basic operators  select  project  union  set difference  Cartesian product  rename The operators take two or more relations as inputs and give a new relation as a result.

16 ©Silberschatz, Korth and Sudarshan3.16Database System Concepts Select Operation 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),  (or),  (not) Each term is one of: op or where op is one of: =, , >, , <,  Example of selection:  branch-name=“Perryridge ” (account)

17 ©Silberschatz, Korth and Sudarshan3.17Database System Concepts Example Relation r ABCD   1 5 12 23 7 3 10  A=B ^ D > 5 (r) ABCD   1 23 7 10

18 ©Silberschatz, Korth and Sudarshan3.18Database System Concepts Project Operation Notation:  A1, A2, …, Ak (r) where A 1, A 2 are attribute names and r is a relation name. The result is defined as the relation of k columns obtained by erasing the columns that are not listed Duplicate rows removed from result, since relations are sets E.g. To eliminate the branch-name attribute of account  account-number, balance (account)

19 ©Silberschatz, Korth and Sudarshan3.19Database System Concepts Example Relation r: ABC  10 20 30 40 11121112 AC  11121112  AC  112112  A,C (r)

20 ©Silberschatz, Korth and Sudarshan3.20Database System Concepts Union Operation Notation: r  s Defined as: r  s = {t | t  r or t  s} For r  s to be valid. 1. r, s must have the same arity (i.e. same number of attributes) 2. The attribute domains must be compatible (i.e. the domains of the ith attribute of r and the ith attribute of s must be the same) E.g. to find all customers with either an account or a loan  customer-name (depositor)   customer-name (borrower)

21 ©Silberschatz, Korth and Sudarshan3.21Database System Concepts Example Relations r, s: r  s: AB  121121 AB  2323 r s AB  12131213

22 ©Silberschatz, Korth and Sudarshan3.22Database System Concepts Set Difference Operation Notation r – s Defined as: r – s = {t | t  r and t  s} Set differences must be taken between compatible relations.  r and s must have the same arity  Attribute domains of r and s must be compatible

23 ©Silberschatz, Korth and Sudarshan3.23Database System Concepts Example Relations r, s: r – s : AB  121121 AB  2323 r s AB  1111

24 ©Silberschatz, Korth and Sudarshan3.24Database System Concepts Cartesian-Product Operation Notation r x s Defined as: r x s = {t q | t  r and q  s} Assume that attributes of r(R) and s(S) are disjoint. (That is, R  S =  ). If attributes of r(R) and s(S) are not disjoint, then renaming must be used.

25 ©Silberschatz, Korth and Sudarshan3.25Database System Concepts Example Relations r, s: r x s: AB  1212 AB  1111222211112222 CD  10 19 20 10 20 10 E aabbaabbaabbaabb CD  20 10 E aabbaabb r s

26 ©Silberschatz, Korth and Sudarshan3.26Database System Concepts Composition of Operations Can build expressions using multiple operations Example:  A=C (r x s) r x s  A=C (r x s) AB  1111222211112222 CD  10 19 20 10 20 10 E aabbaabbaabbaabb ABCDE  122122  20 aabaab

27 ©Silberschatz, Korth and Sudarshan3.27Database System Concepts Rename Operation Allows us to name, and therefore to refer to, the results of relational-algebra expressions. Allows us to refer to a relation by more than one name. Example:  x (E) returns the expression E under the name X If a relational-algebra expression E has arity n, then  x (A1, A2, …, An) (E) returns the result of expression E under the name X, and with the attributes renamed to A 1, A2, …., An.

28 ©Silberschatz, Korth and Sudarshan3.28Database System Concepts Formal Definition A basic expression in the relational algebra consists of either one of the following:  A relation in the database  A constant relation Let E 1 and E 2 be relational-algebra expressions; the following are all relational-algebra expressions:  E 1  E 2  E 1 - E 2  E 1 x E 2   p (E 1 ), P is a predicate on attributes in E 1   s (E 1 ), S is a list consisting of some of the attributes in E 1   x (E 1 ), x is the new name for the result of E 1

29 ©Silberschatz, Korth and Sudarshan3.29Database System Concepts Additional Operations Set intersection Natural join Division Assignment

30 ©Silberschatz, Korth and Sudarshan3.30Database System Concepts Set-Intersection Operation Notation: r  s Defined as: r  s ={ t | t  r and t  s } Assume:  r, s have the same arity  attributes of r and s are compatible Note: r  s = r - (r - s)

31 ©Silberschatz, Korth and Sudarshan3.31Database System Concepts Example Relation r, s: r  s A B  121121  2323 r s  2

32 ©Silberschatz, Korth and Sudarshan3.32Database System Concepts Natural-Join Operation Notation: r s The result is a relation on schema R  S which is obtained by considering each pair of tuples t r from r and t s from s.  If t r and t s have the same value on each of the attributes in R  S, a tuple t is added to the result, where  t has the same value as t r on r  t has the same value as t s on s Example: R = (A, B, C, D) S = (E, B, D) Result schema = (A, B, C, D, E) 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))

33 ©Silberschatz, Korth and Sudarshan3.33Database System Concepts Example Relations r, s: AB  1241212412 CD  aababaabab B 1312313123 D aaabbaaabb E  r AB  1111211112 CD  aaaabaaaab E  s r s

34 ©Silberschatz, Korth and Sudarshan3.34Database System Concepts Division Operation Suited to queries that include the phrase “for all”. Let r and s be relations on schemas R and S respectively where  R = (A 1, …, A m, B 1, …, B n )  S = (B 1, …, B n ) The result of r  s is a relation on schema R – S = (A 1, …, A m ) 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))

35 ©Silberschatz, Korth and Sudarshan3.35Database System Concepts Example 1 Relations r, s: r  s:r  s: A B  1212 AB  1231113461212311134612 r s

36 ©Silberschatz, Korth and Sudarshan3.36Database System Concepts Example 2 AB  aaaaaaaaaaaaaaaa CD  aabababbaabababb E 1111311111113111 Relations r, s: r  s:r  s: D abab E 1111 AB  aaaa C  r s

37 ©Silberschatz, Korth and Sudarshan3.37Database System Concepts Assignment Operation The assignment operation (  ) provides a convenient way to express complex queries. Assignment must always be made to a temporary relation variable. Example: Write r  s as 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 .  The relation variable may be used in subsequent expressions.

38 ©Silberschatz, Korth and Sudarshan3.38Database System Concepts Example branch (branch-name, branch-city, assets) customer (customer-name, customer-street, customer-only) account (account-number, branch-name, balance) loan (loan-number, branch-name, amount) depositor (customer-name, account-number) borrower (customer-name, loan-number)

39 ©Silberschatz, Korth and Sudarshan3.39Database System Concepts Example Queries Find all loans of over $1200  amount > 1200 (loan) Find the loan number for each loan of an amount greater than $1200  loan-number (  amount > 1200 (loan)) Find the names of all customers who have a loan and an account at bank.  customer-name (borrower)   customer-name (depositor)

40 ©Silberschatz, Korth and Sudarshan3.40Database System Concepts Example Queries 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))) 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 )

41 ©Silberschatz, Korth and Sudarshan3.41Database System Concepts Example Queries Find the largest account balance Rename account relation as d The query is:  balance (account) -  account.balance (  account.balance < d.balance (account x  d (account)))

42 ©Silberschatz, Korth and Sudarshan3.42Database System Concepts Example Queries Find all customers who have an account from at least the “Downtown” and the Uptown” branches.  Query 1  CN (  BN=“Downtown ” (depositor account))   CN (  BN=“Uptown ” (depositor account)) where CN denotes customer-name and BN denotes branch-name.  Query 2  customer-name, branch-name (depositor account)   temp(branch-name ) ({(“Downtown”), (“Uptown”)})

43 ©Silberschatz, Korth and Sudarshan3.43Database System Concepts 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)) Example Queries


Download ppt "©Silberschatz, Korth and Sudarshan3.1Database System Concepts Chapter 3: Relational Model Structure of Relational Databases Relational Algebra Extended."

Similar presentations


Ads by Google