Download presentation
Presentation is loading. Please wait.
Published byDelilah Johnson Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.