Transcript Slides

Entity-Relationship Model
Database Modeling
•
The process of designing a database begins with:
• an analysis of what information the database must hold, and
• the relationships among components of that information.
•
The structure of the database, called the database schema is specified in
a suitable notation for expressing designs.
•
We will use the Entity-Relationship (E/R) model, which is graphical in
the nature.
Ideas
E/R design
Abstract design
Relational schema
A mechanical process
Relational DBMS
Concrete design
Elements of the E/R Model
•
Entities are like the objects in OO
programming. Entity sets are like the classes.
•
•
•
However, E/R is a static model, so there are no
methods associated with the entities.
Attributes are similar to the attributes in OO
programming.
•
Movies
Title
However, they are atomic, i.e. only numbers and
strings are allowed.
Relationships are connections among two or
more entity sets.
Stars-in
Example
year
title
Movies
name
Stars-In
address
Stars
name
length
filmType
Owns
Studios
address
Visualizing E/R Relationships
•
It is often helpful (for us) to represent E/R relationships by a table or relation,
each row representing a list (it can be pair) of entities participating in the
relationship.
For instance the Stars-in relationship could be visualized as a table:
Movies
Basic Instinct
Total Recall
Total Recall
|
|
|
|
Stars
Sharon Stone.
Arnold Schwarzeneger.
Sharon Stone.
•
This table is called the relationship set for the relationship.
•
The members of the relationship set are the rows of the table.
Multiplicity of Relationships
•
A relationship R is many-one from one entity set E to another
entity set F, if any member of E can be associated to at most one
member of F.
•
We also equivalently say that R is one-many from F to E. Any
member of F can be associated with many members of E.
Movies
•
Owns
Studios
Arrows can be used to indicate the multiplicity of a relationship
in an E/R diagram.
•
•
An arrow means “at most one.” It does not guarantee the
existence of an entity of the set pointed to.
So, if a relationship is many-one from entity set E to F, we place
an arrow entering F.
Multiplicity (Cont.)
•
If a relationship R is both many-one from E to F and many-one from F to E,
then we say that R is one-one
•
represented by arrows pointing to both E and F.
Studios
•
Runs
Presidents
If a relationship R is neither many-one from E to F or from F to E, then we
say R is many-many.
Movies
Stars-In
Stars
Multiway Relationships
•
The E/R model makes it convenient to define relationships involving more
than two entity sets.
•
A multiway relationship in an E/R diagram is represented by lines from the
relationship diamond to each of the involved entity sets.
•
Motivating Example. Take the previous organization:
Movies
Stars-In
Owns
Studios
What’s the problem with this design?
Stars
Relating studios, movies and stars
•
Suppose that we want to know how studios are related to the stars. I.e.
Which stars a studio is (or was) paying for a specific movie.
•
As long as a movie is produced by a single studio the previous
organization works very well.
•
Why? Because we can relate a studio s through a specific movie m with
the stars sti forming valid triples:
(s, m, st1), (s, m, st2),…, (s, m, stk)
•
Suppose now that movies can be produced (and owned) by not just a
single studio but, by some studios.
(The line connecting studios is without arrow in such a case)
•
Now if we try to create the above triples they can be not valid.
Why the triples can be not valid?
•
Suppose a studio s1 is paying a star st1 for the movie m
and
a studio s2 is paying st2 for the same movie m.
•
Then we will have the following triples:
(s1, m, st1) (s1, m, st2) (s2, m, st1) (s2, m, st2)
•
The second and the third triples are not valid.
•
If we consider the collection of all the valid triples, it is nothing else
but a three way relationship between Studios, Movies and Stars
Solution: Three-way relationship
Stars
Contracts
Movies
Studios
Formally:
• The relationship Contracts involves a studio, a star, and a movie.
• This relationship says that a studio has contracted a particular
star in a particular movie.
• In multiway relationships, an arrow pointing to an entity set E
means:
If we select one entity from each of the other entity sets in the
relationship, these entities are related to at most one entity in E.
Roles in a relationship
• An entity set can appear two or more times in a relationship.
• If so, we draw as many lines from the relationship to the entity set as
the entity set appears in the relationship.
• Each line to the entity set represents a different role.
Original
Movies
Sequel-of
Sequel
• We assume that a movie may have many sequels, but for each sequel there is
only one original movie.
Another Example
Relationship Set
Husband
Bob
Joe
…
Married
husband
wife
Drinkers
Wife
Ann
Sue
…
Another Example
Relationship Set
Buddies
1
2
Drinkers
Buddy1
Bob
Joe
Ann
Joe
…
Buddy2
Ann
Sue
Bob
Moe
…
Attributes on Relationships
• Sometimes, it is convenient to associate attributes with a relationship,
rather than with any one of the entity sets that the relationship
connects.
• Consider the 3-way Contracts relationships between a star and a
studio for a movie.
• We might wish to record the salary associated with this contract.
• We cannot associate it with the star; a star might get different salaries for
different movies.
• It does not make sense to associate the salary with a studio or with a
movie.
• However, it is appropriate to associate a salary with the (star, movie,
studio) triple in the relationship set for the Contracts relationship.
A relationship with an attribute
title
year
name
address
salary
Movies
Stars
Contracts
length
filmType
Studios
name
address
“Bars-Beer-Drinkers” (BBD) Example
• Bars sell some beers.
• Drinkers like some beers.
• Drinkers frequent some bars.
• What would be the E/R diagram?
“Bars-Beer-Drinkers” (BBD) Example
name
addr
name
Bars
Beers
Sells
license
Note:
license =
beer, full,
none
Frequents
name
Why we need it?
Drinkers
manf
Likes
Bars sell some
beers.
Drinkers like
some beers.
Drinkers frequent
some bars.
addr
BBD relation sets
• For the relationship Sells, we might have a
relationship set like:
Bar
Joe’s Bar
Joe’s Bar
Sue’s Bar
Sue’s Bar
Sue’s Bar
Beer
Bud
Miller
Bud
Pete’s Ale
Bud Lite
BBD Multiway Relationship
• Suppose that drinkers will only drink
certain beers at certain bars.
– Our three binary relationships Likes, Sells, and
Frequents do not allow us to make this
distinction.
– But a 3-way relationship would.
name
license
addr
name
Bars
Beers
Preferences
Drinkers
name
addr
manf
A Typical Relationship Set
Bar
Joe’s Bar
Sue’s Bar
Sue’s Bar
Joe’s Bar
Joe’s Bar
Joe’s Bar
Sue’s Bar
Drinker
Ann
Ann
Ann
Bob
Bob
Cal
Cal
Beer
Miller
Bud
Pete’s Ale
Bud
Miller
Miller
Bud Lite
Multiple Relationships Between
Two Entity Sets
Drinkers
Likes
Favorite
Beers
“Exactly one” Multiplicity
Manfs
Bestseller
Beers
Some beers are not the best-seller of
any manufacturer, so a rounded arrow to
Manfs would be inappropriate.
But a manufacturer has to have a bestseller (we assume they are beer
manufacturers).