Professional Documents
Culture Documents
Abstract
Tutorial 1, cs304– ER diagrams
This tutorial consists of 4 questions of ER diagrams. Q1 is a small
one so that students feel it easy to follow the specs. listed one by one. Q2
is a question used in previous course about a ”Motor Vehicle Branch”’s
management system. It’s a small ER containing only 5 entities and 3
relationships. Students are able to do the ER diagram once in a whole.
Q3 is a bigger design task, for this one, students need step by step create
their ER diagrams so that no constraints in spec. will be missed. Q4 is
a totally ”FreeStyle” design of a ”Movies4all” webservice in which basic
elements are given and students need to come to their own idea of how
these elements are organized together. They need to come to their own
assumptions and comments for the ER diagram.
Students should work in groups before answers are demonstrated.
1 Question1
Draw an ER diagram for the following application from the manufacturing in-
dustry:
1
Figure 1: ER-diagram for supplier-part
2 A1
E-R diagram for Supplier-Part scenario.
3 Question2
The Motor Vehicle Branch administers driving tests and issues driver’s licenses.
Any person who wants a driver’s license must first take a learner’s exam at any
Motor Vehicle Branch in the province. If he/she fails the exam, he can take
the exam again any time after a week of the failed exam date, at any branch.
If he passes the exam, he is issued a license (type = learner’s) with a unique
license number. The person may take his driver’s exam at any branch any time
before the learner’s license expiry date (which is usually set at six months after
the license issue date). If he passes the exam, the branch issues him a driver’s
license.
Create a E-R diagram following these steps.
1. Find out the entities in the spec.
2. Find out the relationships among the entities.
3. Figure out attributes of the entities and (if any) of the relationships.
4. Figure out constraints between entities and relationships.
5. Check to see if you miss anything in spec.
2
Figure 2: Q2-ER diagram for motor-branch
4 A2
Step 1Entities:
Driver: driver sin, driver name, driver birthdata, driver addr, driver city,
driver postalcode, driver phone
Branch: branch id, branch name, branch addr, branch phone, branch city,
branch postalcode
License: license no, license class, license expiry
Learner license:
Driver license:
Step 2 Relationships:
owns(license, driver) takes exam(driver,branch):exam date, exam score, exam type
issues(license, branch): issue data
The ”is a” relationshhip : Learner license, Driver license ”is a” license.
Step 3 constraints:
1. a [driver] must <own> (at least one) [license].
2. a [driver] must <take> at least one exam.
3. a [license] must be <owned> by one and only one [driver].
4. a [license] must be <issued> by one and only one [branch].
Step 4 Compose ER-diagram:
Step 5 Check spec. again ........
5 Question3
We look at a larger design.
3
The Prescriptions-R-X chain of pharmacies has offered to give you a free
life-time supply of medicines if you design its database. Given the rising cost of
health care, you agree. Here is the information that you gather.
1. Patients are identified by SIN, and their names, addresses, and also ages.
2. Doctors are identified by an SIN, for each doctor, the name, specialty and
years of experience must be recorded.
3. Each pharmaceutical company is identified by name and has a phone num-
ber.
4. For each drug, the trade name and formula must be recordered. Each
drug is sold by a given pharmaceutical company, and the trade name
identifies a drug uniquely from among the products of that company. If a
pharmaceutical company is deleted, you need not keep track of its products
any longer.
5. Each pharmacy has a name, address, and phone number.
6. Every patient has a primary physician. Every doctor has at least one
patient.
7. Each pharmacy sells several drugs and has a price for each. A drug could
be sold at several pharmacies, and the price could vary from one pharmacy
to another.
8. Doctors prescribe drugs for patients. A doctor could prescribe one or more
drugs for several patients, and a patient could obtain perscriptions from
several doctors. Each prescription has a date and a quantity associated
with it. You can assume that if a doctor prescribes the same drug for the
same patient more than once, only the last such prescription needs to be
stored.
9. Pharmaceutical companies have long-term contracts with pharmacies. A
pharmaceutical company can contract with several pharmaceutical com-
panies. For each contract, you have to store a start date, and end date,
and the text of the contract.
10. Pharmacies appoint a supervisor for each contract. There must always a
supervisor for each contract.
4
Patient Primary_Physician Doctor
date
Prescribe
qty
Price
name
start_date Contract
end_date Pharmacy
text supervisor
6 A3
Step 1 Identify entities.
Patient: SIN,name,address,age
Doctor: phy sin, name, specialty, exp years
Pharm Company: name, phone
Drug: tradename, formula
Pharmacy: name, address, phone
Step 2 Identify relationships
Primary Physican(Patient, Doctor)
Prescribe(Patient, Doctor, Drug): date, qty
Sell(Pharmacy, Drug): Price
Contract(Pharmacy, Pharm Co):start date, end date, text, supervisor
Make(Drug, Pharm Co)
Step 3 Constraints
1. a [patient] must and can only have one <Primary Physician >
2. a [doctor] must be at least one [patient]’s <Primary Physician >
3. a [drug] must be <made> by a [pharm co], and only have one maker.
Step 4 ER-Diagram
Step 5 Check spec ............
Discuss Answers 2. put the attribute ”price” to ”make”.
3. add a prescribe ID to relationship prescribe
5
7 Question4
Imagine that you are a consultant called into the office of a new Australian start-
up called Movies4All. This company admires the success of the Internet Movie
Database (IMDb) in collecting and publishing movie-related information via the
web and thinks that it can set up its own database to rival the IMDb. The pay-
back to Movies4All, they hope, will be advertising revenue once thousands of
people-per-day start to visit their site looking for movie information/trivia/etc.
Putting aside your scepticism of this kind of business model, you ask them
precisely what content and functionality they want in their on-line database.
They suggest that looking at the IMDb (http://www.imdb.com/) would be a
good start.
If you press them further, they’ll tell you that Movies4All should maintain
the following kinds of information:
1. Movies4All staff and registered users have a username and password for
login authentication
2. Movies4All staff can add, update and (infrequently) delete any information
in the database
3. registered users can rate movies, post reviews, and post suggested changes
to Movies4All staff
4. anyone can search for movies, actors, crew, ... via keyword
5. an advanced search facility allows search by individual aspects of movies/actors/crew/studios
6. every reference to a person/movie/studio is a hyperlink to a page giving
the details
Tasks: You need to analyse the challenge in this design and come up to an
ER-diagram.
6
8 A4
For big ER-diagram task. It’s good to do it in a ”divide-and-conquer” way.
We come with entity to entity, relationship to relationship.
Movies
Title
MovieID YearMade
Country RunTime
WebSite
Figure 3: Movies
7
Movie Releases
Country Rating
Starting Finishing
Comments:
1. a Movie Release is a version of a movie that is issued for showing in some
region of the world
2. it may be changed in various ways from the original in the release (e.g. it
may have sub-titles added, or have scenes cut to fit in with a particular
culture)
3. movies are rated to indicate which kind of audience thy are suitable for,
and to indicate restrictions on who is allowed to view the movie
4. movie ratings are determined by an organisation (e.g. Censorship Board)
within each country
5. no Box Office aspects of Movie Releases were included in this model (but
if they had been, they would have been associated with Movie Relseases)
8
Movie People
PersonID
Birthday
StageName City
Country
Gender
Biography Real Name
Comments:
1. this Entity contains core personal information about people who are in-
volved in the making of movies
2. we use a numeric ID for people, since they are heavily referenced through
the rest of the database
3. the public is interested in biographical details of Movie People, and so
that is the primary information here
4. every person must at least have a know StageName
5. details about their involvement in particular movies and awards won is
handled via relationships with Movies and Awards entities
9
Photographs
PhotoID
Caption
Data
Photo
PictureOf StillFrom
Figure 6: Photographs
Comments:
1. each photograph may be associated with either a single individual or a
specific movie (but must be associated to at least one)
2. a photo of an actor in a given movie could be involved in both relationships
10
Movie People and Movies
Movie Person
IS_A
Role_ID Name_In_Movie
Comments:
1. the subclasses here are not used to indicate subclass-specific data; they
are used to ensure participation in the correct relationships
2. Movie People are assicated with particular movies in particular roles
3. Crew perform one or more jobs on a given movie; Actors play one or more
roles
11
Awards
Organization Title
Award
Category
AwardID
IS_A
year
year
Figure 8: awards
1. when an individual wins e.g. Best Actor Oscar, they win it for a perfor-
mance in a particular movie
12
Movie Companies
CompanyID
Country
Name
Closed
Movie Company
Started
Type
Movie Made By
Comments:
1. this entity contains core data about companies involved in making movies
2. it is used for all different kinds of companies, from large Hollywood stu-
dios (e.g. Paramount) down to smaller movie production companies (e.g.
DreamWorks)
3. we use a numeric ID for similar reasons as above
13
Cinemas
CinemaID
Name City
Street
Phone Cinema
Province
Website
Country
#screens
Comments:
1. in order to indicate screening times, we need to model cinemas
14
Screenings
ShowTime
Comments:
1. a Screening involves showing a release of a particular movie on a screen
at a specified time or a specified date
2. obviously maintenance of such information on a world-wide scale would
be extremely tedious, but, fortunately, all we need to do is model it
15
Users(staff and Members)
User_ID
username
ShowName
User
Password
Name
Staff Member
address Phone
Visit_times score
Comments:
1. there are two kinds of users who can login to the Movies4All web site:
Movies4All staff and members (registered users) of the site
2. we need to maintain basic contact data plus authentication data for all of
these users
3. every user must have a unique username, and must have a password and
an email address
4. for staff, we need additional contact information; we assume that other
employment-related data for staff is held on a separate HR system
5. for members, we record various preferences, which will allow us to cus-
tomise their viewing of the web site
6. preferences could be generalised via a (Property,Value) table, but we stick
to a collection of predefined preference classes here
16
News and User Feedback
NewsID
Movie MovieRef
Title URL
Posted Comments
Comments Comments
Posted1
Comments:
1. staff members can post news items that refer to new stories posted on
mainstream news web sites
2. these news items contain some brief local commentary (from a Movies4All
staff member), a link to the original news story, and references to the
people and movies being referred to in the news story
3. we also need to record when the staff member posted a news item
4. members can send information to the Movies4All staff; we need to record
when they sent it, and what it’s about (similar to a piece of internal email)
5. members can also provide feedback on movies in the form of either a one-
to-five-star rating, or some text commentary (max 200 chars)
6. members can also assess the credibility (on a scale of 1-5) of other mem-
bers, so that the site can implement expert reviewiers
7. titles may not be empty, and should be relatively brief (less than 50 chars)
8. the commentary in news items should be less than 200 characters (to
prevent staff from getting carried away)
9. there is no limit on the length of a piece of user feedback, but it must
contain some text
9 Acknowledgement
Credits are given to instructors of the equi. lectures at Uni. of New South Wales
where credits due.
17