CS125 Project, Part 1

Due Friday, September 8, 2006

Some Mechanics for Project Assignments

Assignments are due at the start of class on Fridays.  Late assignments will not be accepted.  Assignments should be turned in at the beginning of class or, prior to that, at the instructor's office: New Math/CS modular building.  For all assignments, include your name and contact information.

This first part will be hardcopy-only. Later assignments may have parts to be submitted electronically.  (Ryan W. may email me his proposal.)

Part 1 of Your Database Project

As the course progresses you will be building a substantial database application for a real-world scenario of your choosing. You will design a relational schema for the database, and you will create an actual database using a relational database management system. You will populate the database with sample data, write interactive queries and modifications on the database, and develop user-friendly tools for manipulating the database.

Before you start, you must identify the domain you would like to manage with your database. I suggest that you pick an application that you will enjoy working with, since you'll be stuck with it for the rest of the semester.  I predict that if you pick something about which you are excited -- a hobby, material from another course, a research project, etc. -- you will maximize what you learn from this class (not to mention have more fun).  But you should also consider what purpose your proposed database will have.  Think about the types of queries you would ask for which the database would be useful.

Try to pick an application that is relatively substantial, but not too enormous. For example, after expressing it in the entity-relationship model (project 2), you might want your design to have in the range of five or so entity sets, and a similar number of relationships. A reasonable design might have a total number of entity sets plus relationships in the 8-14 range; I will question other proposals having more or fewer. Be aware, however, that entity sets or relationships that should be represented by attributes instead (a matter we'll discuss in class) do not "count."  If in doubt, pick a more complex domain and then only model a sufficiently rich subset of the domain.

You should certainly include different kinds of relationships (e.g., many-one, many-many) and different kinds of data (strings, integers, etc.), but your application is not required to use advanced features, such as subclassing, multiway relationships, or weak entity sets, if they are not appropriate for your application.

Project 1 Deliverable

Describe the database application you propose to work with throughout the course. Your description should be brief and relatively informal but should include sufficient motivation to explain why this is an interesting database proposal and sufficient description to discern that your scope is not too large or too small. If there are any unique or particularly difficult aspects of your proposed application, please point them out. Your description will be graded only on suitability, completeness and conciseness.

Review of Projects Proposals

In order to catch problems at an early stage, students turning in a proposal that is deemed unreasonable for one reason or another will be asked to meet with the instructor to review and revise their proposal.  Reviews will be scheduled Monday and Tuesday Sept 13 and 14.

Reminders

I shall try to catch major problems in your proposed designs within three days of your submitting it, so your Project 2 assignment will not be adversely affected. To make sure I can alert you to a problem with your design, please include your email address on this part of the assignment.

If you are having trouble thinking of an application, or if you are unsure whether your proposed application is appropriate, please feel free to consult with me (and, as always, for any other problem or concern you may have).

Acknowledgements:  Most of the material for the project descriptions and assignments has been taken from Professor Ullman's website.