+ All Categories
Home > Documents > The Relational Data Model

The Relational Data Model

Date post: 20-Jan-2016
Category:
Upload: long
View: 28 times
Download: 0 times
Share this document with a friend
Description:
The Relational Data Model. Tables Schemas Conversion from E/R to Relations Functional Dependencies. Attributes (column headers). Tuples (rows). A Relation is a Table. namemanf WinterbrewPete’s Bud LiteAnheuser-Busch Beers. Schemas. - PowerPoint PPT Presentation
Popular Tags:
44
1 The Relational Data Model Tables Schemas Conversion from E/R to Relations Functional Dependencies
Transcript
Page 1: The Relational Data Model

1

The Relational Data Model

TablesSchemas

Conversion from E/R to RelationsFunctional Dependencies

Page 2: The Relational Data Model

2

A Relation is a Table

name manfWinterbrew Pete’sBud Lite Anheuser-

BuschBeers

Attributes(columnheaders)

Tuples(rows)

Page 3: The Relational Data Model

3

Schemas

Relation schema = relation name and attribute list. Optionally: types of attributes. Example: Beers(name, manf) or

Beers(name: string, manf: string) Database = collection of relations. Database schema = set of all

relation schemas in the database.

Page 4: The Relational Data Model

4

Why Relations?

Very simple model. Often matches how we think about

data. Abstract model that underlies SQL,

the most important database language today.

Page 5: The Relational Data Model

5

From E/R Diagrams to Relations

Simplest approach (not always best): convert each E.S. to a relation and each relationship to a relation.

Entity Set RelationE.S. attributes become relational attributes.

Becomes:Beers(name, manf)

Beers

name manf

Page 6: The Relational Data Model

6

Keys in Relations

An attribute or set of attributes K is a key for a relation R if we expect that in no instance of R will two different tuples agree on all the attributes of K.

Indicate a key by underlining the key attributes.

Example: If name is a key for Beers:Beers(name, manf)

Page 7: The Relational Data Model

7

E/R Relationships Relations

Relation has attribute for key attributes of each E.S. that participates in the relationship.

Add any attributes that belong to the relationship itself.

Renaming attributes OK. Essential if multiple roles for an E.S.

Page 8: The Relational Data Model

8

Relationship -> Relation

Drinkers BeersLikes

Likes(drinker, beer)Favorite

Favorite(drinker, beer)

Married

husband

wife

Married(husband, wife)

name addr name manf

Buddies

1 2

Buddies(name1, name2)

For one-one relation Married, we can choose either husband or wife as key.

Page 9: The Relational Data Model

9

Combining Relations

OK to combine into one relation:1. The relation for an entity-set E 2. The relations for many-one

relationships of which E is the “many.” Example: Drinkers(name, addr) and

Favorite(drinker, beer) combine to make Drinker1(name, addr, favBeer).

Page 10: The Relational Data Model

10

Risk with Many-Many Relationships

Combining Drinkers with Likes would be a mistake. It leads to redundancy, as:

name addr beerSally 123 Maple BudSally 123 Maple Miller

Redundancy

Page 11: The Relational Data Model

11

Handling Weak Entity Sets

Relation for a weak E.S. must include its full key (i.e., attributes of related entity sets) as well as its own attributes.

A supporting (double-diamond) relationship yields a relation that is actually redundant and should be deleted from the database schema.

Page 12: The Relational Data Model

12

Example

Logins HostsAt

name name

Hosts(hostName, location)Logins(loginName, hostName, billTo)At(loginName, hostName, hostName2)

Must be the same

billTo

At becomes part ofLogins

location

Page 13: The Relational Data Model

13

Subclasses: Three Approaches

1. Object-oriented : One relation per subset of subclasses, with all relevant attributes.

2. Use nulls : One relation; entities have NULL in attributes that don’t belong to them.

3. E/R style : One relation for each subclass: Key attribute(s). Attributes of that subclass.

Page 14: The Relational Data Model

14

Example

Beers

Ales

isa

name manf

color

Page 15: The Relational Data Model

15

Object-Oriented

name manfBud Anheuser-Busch

Beers

name manf colorSummerbrew Pete’s dark

Ales

Good for queries like “find thecolor of ales made by Pete’s.”

Page 16: The Relational Data Model

16

E/R Stylename manfBud Anheuser-BuschSummerbrew Pete’s

Beers

name colorSummerbrew dark

Ales

Good for queries like“find all beers (includingales) made by Pete’s.”

Page 17: The Relational Data Model

17

Using Nulls

name manf colorBud Anheuser-Busch NULLSummerbrew Pete’s dark

Beers

Saves space unless there are lotsof attributes that are usually NULL.

Page 18: The Relational Data Model

18

Functional Dependencies

Meaning of FD’sKeys and Superkeys

Inferring FD’s

Page 19: The Relational Data Model

19

Functional Dependencies

X -> A is an assertion about a relation R that whenever two tuples of R agree on all the attributes of X, then they must also agree on the attribute A. Say “X -> A holds in R.” Convention: …, X, Y, Z represent sets of

attributes; A, B, C,… represent single attributes.

Convention: no set formers in sets of attributes, just ABC, rather than {A,B,C }.

Page 20: The Relational Data Model

20

Example

Drinkers(name, addr, beersLiked, manf, favBeer)

Reasonable FD’s to assert:1. name -> addr2. name -> favBeer3. beersLiked -> manf

Page 21: The Relational Data Model

21

Example Data

name addr beersLiked manf favBeerJaneway Voyager Bud A.B. WickedAleJaneway Voyager WickedAle Pete’s WickedAleSpock Enterprise Bud A.B. Bud

Because name -> addr Because name -> favBeer

Because beersLiked -> manf

Page 22: The Relational Data Model

22

FD’s With Multiple Attributes

No need for FD’s with > 1 attribute on right. But sometimes convenient to combine

FD’s as a shorthand. Example: name -> addr and

name -> favBeer become name -> addr favBeer

> 1 attribute on left may be essential. Example: bar beer -> price

Page 23: The Relational Data Model

23

Keys of Relations

K is a superkey for relation R if K functionally determines all of R.

K is a key for R if K is a superkey, but no proper subset of K is a superkey (Minimality)

Page 24: The Relational Data Model

24

Example

Drinkers(name, addr, beersLiked, manf, favBeer)

{name, beersLiked} is a superkey because together these attributes determine all the other attributes. name -> addr favBeer beersLiked -> manf

Page 25: The Relational Data Model

25

Example, Cont.

{name, beersLiked} is a key because neither {name} nor {beersLiked} is a superkey. name doesn’t -> manf; beersLiked

doesn’t -> addr. There are no other keys, but lots of

superkeys. Any superset of {name, beersLiked}.

Page 26: The Relational Data Model

26

E/R and Relational Keys

Keys in E/R concern entities. Keys in relations concern tuples. Usually, one tuple corresponds to

one entity, so the ideas are the same.

But --- in poor relational designs, one entity can become several tuples, so E/R keys and Relational keys are different.

Page 27: The Relational Data Model

27

Example Data

name addr beersLiked manf favBeerJaneway Voyager Bud A.B. WickedAleJaneway Voyager WickedAle Pete’s WickedAleSpock Enterprise Bud A.B. Bud

Relational key = {name beersLiked}But in E/R, name is a key for Drinkers, and beersLiked is a key

for Beers.Note: 2 tuples for Janeway entity and 2 tuples for Bud entity.

Page 28: The Relational Data Model

28

Where Do Keys Come From?

1. Just assert a key K. The only FD’s are K -> A for all

attributes A.

2. Assert FD’s and deduce the keys by systematic exploration.

E/R model gives us FD’s from entity-set keys and from many-one relationships.

Page 29: The Relational Data Model

29

More FD’s From “Physics” or Organization Policy

Example: “no two courses can meet in the same room at the same time” tells us: hour room -> course.

Page 30: The Relational Data Model

30

Inferring FD’s

We are given FD’s X1 -> A1, X2 -> A2,…, Xn -> An , and we want to know whether an FD Y -> B must hold in any relation that satisfies the given FD’s. Example: If A -> B and B -> C hold, surely

A -> C holds, even if we don’t say so. Important for design of good relation

schemas.

Page 31: The Relational Data Model

31

Inference Testthis is important because … When we talk about improving relational

designs, we often need to ask “does this FD hold in this relation?”

Given FD’s X1 A1, X2 A2,…, Xn An, does FD

Y B necessarily hold in the same relation?

Start by assuming two tuples agree in Y. Use given FD’s to infer other attributes on which they

must agree. If B is among them, then yes, else no.

Page 32: The Relational Data Model

32

Closure Test

An easier way to test is to compute the closure of Y, denoted Y +.

Basis: Y + = Y. Induction: Look for an FD’s left side

X that is a subset of the current Y +. If the FD is X -> A, add A to Y +.

Page 33: The Relational Data Model

33

Y+new Y+

X A

Page 34: The Relational Data Model

34

Closure Test -- Example

A B, BC D. A+ = AB. C+=C. (AC)+ = ABCD.

AC

B

D

Page 35: The Relational Data Model

35

Given Versus Implied FD’s

Typically, we state a few FD’s that are known to hold for a relation R.

Other FD’s may follow logically from the given FD’s; these are implied FD’s.

We are free to choose any basis for the FD’s of R – a set of FD’s that imply all the FD’s that hold for R.

Page 36: The Relational Data Model

36

Finding All Implied FD’s Motivation: “normalization,” the process

where we break a relation schema into two or more schemas.

Suppose we have a relation ABCD with some FD’s F. If we decide to decompose ABCD into ABC and AD, what are the FD’s for ABC, AD?

Example: F = AB C, C D, D A. It looks like just AB C holds in ABC, but in fact

C A follows from F and applies to relation ABC.

Page 37: The Relational Data Model

38

Basic Idea

1. Start with given FD’s and find all nontrivial FD’s that follow from the given FD’s.

trivial = right side member of left side.• A -> A or AB ->A

2. Restrict to those FD’s that involve only attributes of the projected schema.

Page 38: The Relational Data Model

39

Simple, Exponential Algorithm

1. For each set of attributes X, compute X +.

2. Add X ->A for all A in X + - X.3. However, drop XY ->A if X ->A holds.

Because XY ->A follows from X ->A .

4. Finally, use only FD’s involving projected attributes.

Page 39: The Relational Data Model

40

A Few Tricks

No need to compute the closure of the empty set or of the set of all attributes.

If we find X + = all attributes, so is the closure of any superset of X.

Page 40: The Relational Data Model

41

Example

ABC with FD’s A ->B and B ->C. Project onto AC. A +=ABC ; yields A ->B, A ->C.

• We do not need to compute AB + or AC +.

B +=BC ; yields B ->C. C +=C ; yields nothing. BC +=BC ; yields nothing.

Page 41: The Relational Data Model

42

Example --- Continued

Resulting FD’s: A ->B, A ->C, and B ->C.

Projection onto AC : A ->C. Only FD that involves a subset of {A,C

}.

Page 42: The Relational Data Model

43

ExampleRelation ABCD FDs: F = AB C, C D, D A. What

FD’s follow? A+ = A; B+=B (nothing). C+=ACD (add C A). D+=AD (nothing new). (AB)+=ABCD (add AB D; skip all supersets of AB). (BC)+=ABCD (nothing new; skip all supersets of BC). (BD)+=ABCD (add BD C; skip all supersets of BD). (AC)+=ACD; (AD)+=AD; (CD)+=ACD (nothing new). (ACD)+=ACD (nothing new). All other sets contain AB, BC, or BD, so skip. Thus, the only interesting FD’s that follow from F are:

C A, AB D, BD C.

Page 43: The Relational Data Model

44

Example 2

Set of FD’s in ABCGHI:

A BA CCG HCG IB H

Compute (CG)+, (BG)+, (AG)+

Page 44: The Relational Data Model

45

Example 3In ABC with FD’s A B, B C, project onto AC.1. A+ = ABC; yields A B, A C.2. B+ = BC; yields B C.3. AB+ = ABC; yields AB C; drop in favor of A

C.4. AC+ = ABC yields AC B; drop in favor of A

B.5. C+ = C and BC+ = BC; adds nothing. Resulting FD’s: A B, A C, B C. Projection onto AC: A C.


Recommended