Home‎ > ‎CIS 54‎ > ‎

Lab 10: Project Specification

For this lab you will create a formalized specification for your project idea. You will draw the entities and relationships that your schema represents. You will also review the schema of another student. You will be graded on your specification and the quality of your review. 


Specifications are important tools for getting things right. Although your schema design will change over time, a good initial design lessens the likelihood of having to make a difficult or disruptive change. Most programs written for businesses, governments and non-profits start by gathering requirements from the customer. The customer may convey their requirements in written form or you may interview people to gather them or both. It's often difficult to get a full picture from end-users and they don't always know their own requirements. You can worry about that when you're working. For the project you are both the customer and the designer. As the designer you will put forward a specification for a schema that's consistent and correct. 

Peer Review

You will be required to review another student's design. A reviewee will be chosen at random by Canvas. You will be able to see who they are and they will see who you are. As a reviewer you will be asked to answer specific questions I have about the design and to spot mistakes. The score you give will be advisory only. I will give the final score and your score will partly depend on the correctness of your review. So read diagrams closely and give a fair score.  

Design Your Schema

Your schema design starts with a sentence or two describing what you wish to store. You don't need to be specific about things like functional dependencies. You just need to help me (and your reviewer) know what we're looking at. After your description you should:
  1. List every entity in your database. You must have at least four entities. Remember, you will have more tables than entities. 
    1. List all the attributes of each entity.
    2. Note any attributes that are identifying (whether or not you make them a key later)
  2. List every relationship between entities formally by describing the order and cardinality of the relationship. 

Include a Picture

Draw your schema in MySQL Workbench or any other tool you like. The drawing must match the entities, attributes and relationships you described in the previous part. Points will be deducted for errors. 


I've created an example project that's minimal but complete. Your project specification must have at least the level of detail in the example. 

Turn In

  1. A document with your design. It should describe your schema and contain a drawing.
Submit your homework on canvas.


  • 10 points for correctly representing each entity
  • 10 points for correctly representing each relationship
  • 5 points for your peer review.