CS 4250: Project Part 2

Hardcopy (originally) due at 12:30 pm on Tuesday, February 13, 2018. (Words must be typed, not handwritten. ER diagram may be hand-written, clearly and tidily.)

Hardcopy (now) due at 12:30 pm on Thursday, February 15, 2018.

  1. (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.

  2. 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:
    1. 5 to 8 entity sets, and
    2. a similar number of relationships, and
    3. one example of a non-binary relationship (unary, ternary, etc), and
    4. one example of specialization / generalization, and
    5. one example of weak entity sets, and
    6. (optionally) one example of a union.

    Your design must satisfy the first two criteria.

    Satisfying the last four 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, specialization / generalization, and weak entity sets do not make sense for your application).

    Your relationships must also have a variety of multiplicities (one-to-one, one-to-many, many-to-many).

    To summarize, your design MUST be "rich" in all these goodies we discussed in class! It is expected that the ER diagrams will satisfy at least four out of the six criteria.

    Don't forget to underline key attributes, to specify integrity constraints (cardinality and participation), 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.

  3. In a section titled "Explanations", write one or two plain English sentences for each entity set and each relationship, explaining what it represents or models.
  4. Discuss and identify any constraints and restrictions that your domain poses. Identify (in plain English) at least one constraint that could not be captured in your ER diagram. (A constraint will a rule that specifies limits on the valid values of an attribute, to keep that attribute's values correct for your data domain.)

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.

VERY VERY 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. (I have office hours most days of the week. Or make an appointment. Showing me the ER diagram before the deadline is important. You will be required to have a complete and correct ER diagram to work with for Part 3. If there are any flaws in your ER diagram, you will have to both revise and correct Part 2 and complete Part 3 based on your revisions before the Part 3 deadline. So you want the flaws to be very small and easy to fix!)

Common Mistakes in Design:

  1. Most common mistake: Undercounting entity and relationship sets. For example, the one weak entity set does not count as one of the standard 5 - 8 entity sets. The subset / child entity sets in a specialization heirarchy do not (usually) count as some of the 5 - 8 entity sets. (In cases involving especially complicated subset entity sets, that counting might be relaxed.)

    In general, an aspect of your ER diagram created to satisfy criteria 2.4 or 2.5 will not also count towards 2.1 or 2.2. Do not double-count when deciding if your ER diagram satisfies the assignment requirements. (Bring a draft of your ER diagram to the instructor and let the instructor help you figure out if it satisfies requirements!)

  2. 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.
  3. Giving your relationships vague names. The names "is," "has," "is-a" and "has-a" are absolutely forbidden.
  4. Missing labels on edges identifying cardinality of relationship.
  5. Using specialization when there is no subset-superset connection between two sets.
  6. Forgetting that when entity set B inherits from (specializes) 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.
  7. "Cooking up" examples of weak sets, or of specialization.
  8. 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 (specializes) 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.

  9. 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. Is it so hard to think of 10 - 16 different names?
  10. Too few attributes. The attributes ARE the data the database stores. To satisfy your user group, your database must store plenty of data your user group would be interested in.
  11. Forgetting to underline key attributes in the ER model.
  12. Forgetting to identify overlapping / disjoint constraints in specialization heirarchies. Or forgetting to label predicates or defining attributes in predicate-defined or attribute-defined specializations.
  13. Unfaithfulness to the user group you selected. If your user group is customers looking to purchase refridgerators, your database should definitely store prices, because customers definitely want to know prices. On the other hand, the database should not store the grade point average the refridgerator design engineer had in college -- why would a customer care, and when would sharing that private information with customers ever be reasonable?

Hint for the future: After you have completed this assignment, start thinking about how you would translate your ER diagram into relations.