CS 4250: Project Part 2
Hardcopy due at 3:30 pm on Friday, February 13, 2015. (Words
must be typed, not handwritten. ER diagram may be hand-written, clearly and tidily.)
- (0 points) Before starting, make sure that you have addressed any
suggestions and corrections in the feedback to your solution to
Part 1 of the project. Do not proceed till you have made these
changes! I will not grade assignments turned in that do not
make the necessary modifications.
- Starting from the two-page writeup that you turned in for Part 1
of the project, design an ER diagram for your application. Your
model should provide:
- 5 to 8 entity sets, and
- a similar number of relationships, and
- one or more examples of a constraint your ER diagram cannot capture, and
- one example of a multi-way relationship, and
- one example of inheritance, and
- (preferably) one example of weak entity sets.
Your design must satisfy the first three criteria.
last three criteria is optional. However, for each of the last four criteria
that your design does not satisfy, you must include in your writeup a clear,
convincing and compelling explanation of why you
think it is "unnatural" for your application (i.e., explain why multi-way
relationships, inheritance, and weak entity sets do not make sense for your application).
Your relationships should also have a variety of multiplicities (one-to-one, one-to-many,
In short, your design
MUST be "rich" in all these goodies
we discussed in class!
Don't forget to underline key attributes, to specify referential
integrity constraints, specify any domain-specific constraints,
and to thick-border any weak sets and their connections.
It is possible that you may make your
design more complicated than necessary! If you have more than eight
entity sets, you should probably prune them.
In a section titled "Explanations", write one or two plain English sentences for
each entity set and relationship, explaining what it represents or models.
- If you use the word 'entity' to describe an entity set, it is not plain English.
If you read your description to a History major and they look confused, it is
not plain English. Plain English descriptions are written for your hypothetical customers
and marketing staff, not for your professor.
Discuss and identify any constraints and restrictions that your domain poses.
For constraints that ER diagrams cannot model,
write in plain English what these constraints are.
What to turn in: Neatly drawn hard-copy of ER design, plus accompanying
explanations and discussions of constraints. Identify your
group by your project title and the team members.
Required but not graded: Include one sentence per group member summarizing
each group member's contribution to Project Part 2. These sentences will be
required in all project parts. They are not for part of any student
grades. They will be used to monitor group dynamics, and to try to intercede in
troubled groups (if any) before troubles get out of hand.
Strongly Recommended: Send one or more members of your group
to my office hours a few days before the deadline, to show me your current
ER diagram draft and get fast feedback.
Common Mistakes in Design:
- Unfaithfulness to the domain being modeled. I expect that you will
use some real-world assumptions when doing your project. Some possible
mistakes might be assuming that one person can be in two
places at the same time, one team can play both basketball and football,
not recognizing the multiplicity of relationships (whether it is one-one,
many-one etc.), etc.
- Missing arrows in a many-one and/or a one-one relationship.
- Missing arrows from a weak set to the set(s) that provide its key
- Giving your relationships vague names. The names "is," "has," "is-a"
and "has-a" are absolutely forbidden.
- Using inheritance when there is no "ISA" connection between two sets.
- Forgetting that when entity set B inherits from entity set A, B
inherits everything that A has. In addition, B can define
attributes of its own. Therefore, there is no need to repeat all the
attributes/relationships that A has again for B.
- "Cooking up" examples of weak sets.
- "Cooking up" examples of inheritance.
- Reasoning in the following way:
"Set B inherits from Set A. Set A participates in a many-many
relationship with Set C. But Set B does not have a many-many
relationship to Set C, it has no relationship to C."
This kind of reasoning is flawed. If Set B inherits from Set A, it gets
everything from A, so you do not have the right to make exceptions to
this rule. This probably means that this is not a real example of
inheritance; it may have been cooked up.
- Forgetting to underline key attributes in the ER model.
- Repeating (reusing) names for different entity sets or for different
relationships within the same entity set, i.e., using the same name to
denote two different things. Come on, is it so hard to think of
Hint for the future: After you have completed this assignment, start thinking
about how you would translate your ER diagram into relations.