• 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.
Database Modeling
Ideas E/R design Relational schema Relational DBMS
Mechanical processAbstract design Concrete design
Elements of the E/R Model
Movies
Title
Stars-in
• Entities are like 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. – However, they are atomic, i.e. only numbers
and strings are allowed.
• Relationships are connections among two or more entity sets.
Visualizing E/R Relationships • It’s often helpful (for us) to represent E/R relationships by a table,
each row representing a list (it can be pair) of entities participating in the relationship.
For instance the Stars-in relationship could be thought of as a table:
Movies | Stars
Basic Instinct | Sharon Stone.
Total Recall | Arnold Schwarzeneger.
Total Recall | 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 E to F
if any member of E can be associated to at most one member of F.
• Equivalently, we say that R is one-many from F to E.
• Arrows indicate the multiplicity of a relationship. Arrow means “at most one.” It does not guarantee the existence of an entity of the set pointed to.
Movies StudiosOwns
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
Arrows pointing to both E and F.
• If a relationship R is neither many-one from E to F or from F to E, then we say R is many-many.
Studios PresidentsRuns
Movies StarsStars-In
Sometimes binary relationships aren’t enough!
Example
What could go wrong with this design?
Movies Stars-In Stars
Owns
Studios
No arrow now!
Relating studios, movies and stars• Suppose that we want to know: Which stars a studio is paying
for a specific movie?
• As long as a movie is produced by a single studio (having the arrow) 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 (no arrow).
• Now if we try to create the above triples they can be invalid.
Why the triples can be invalid? • Suppose studio s1 is paying a star st1 for the movie m
and
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 aren’t 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 relationshipStars MoviesContracts
Studios
1. Relationship Contracts involves a studio, a star, and a movie.
2. It says that a studio has contracted a particular star in a particular movie.
3. Arrow pointing to Studios means:
If we select one entity from Stars and one entity from Movies, these entities (together) are related to at
most one entity in Studios.
Roles in a relationship• An entity set can appear two or more times in a relationship. • Each line to the entity set represents a different role.
• A movie may have many sequels, but for each sequel there is only one original movie.
MoviesSequel-of
Original
Sequel
Attributes on Relationshipssalary
Movies
title year
length filmType
Contracts
Stars
name addr
Studios
name addr
We wish to record the salary associated with a contract.
Can’t associate it with the star; A star might get different salaries for different movies.
Doesn’t make sense to associate it with a studio or with a movie.
However, it’s appropriate to associate a salary with the (star, movie, studio) triple in the relationship set for the Contracts relationship.
“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
Drinkers addrname
Beers
manfname
Bars
name
license
addr
Note:license =beer, full,none
Sells Bars sell somebeers.
Likes
Drinkers likesome beers.Frequents
Drinkers frequentsome bars.
Why we need it?
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.
A Typical Relationship Set
Bar Drinker BeerJoe’s Bar Ann MillerSue’s Bar Ann BudSue’s Bar Ann Pete’s AleJoe’s Bar Bob BudJoe’s Bar Bob MillerJoe’s Bar Cal MillerSue’s Bar Cal Bud Lite