CS145 - Introduction to Databases
Spring 2000, Prof. Widom

Personal Database Application: Part 1
Due Monday April 10

Turn-in procedure and late policy reminder

The assignment

Your CS145 programming project will be to build a substantial database application for a real-world domain of your choosing. You will design a schema on paper, then you will create an actual database using Oracle. You will populate the database, write interactive queries and modifications on the database, explore other aspects such as constraints and triggers, create programs that manipulate the database, and finally develop a simple Web front-end to your database application.

Your first step is to identify the domain you would like to manage with your database, and to construct an entity-relationship (E/R) diagram for the database. We suggest that you pick an application that you will enjoy working with, since you'll be stuck with it for the whole quarter! In previous years, students who built a database about something they were interested in - a hobby, a favorite Web site, material from another course, a research project, etc. - got the most out of this part of CS145. It is especially nice if you pick an application where you can populate your database using real (as opposed to fabricated) data.

Try to pick an application that is relatively substantial, but not too enormous. For example, your E/R design should have in the range of five or so entity sets, and a similar number of relationship sets. Note that this is a ballpark figure only! 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 need not necessarily require advanced features such as weak entity sets, ""is-a"" relationships, or roles.

To get started on your Personal Database Application (PDA for short), your assignment this week consists of two parts:

  1. Write a short (approximately one paragraph) description of the database application you propose to work with throughout the course. Your description should be brief and relatively informal. If there are any unique or particularly difficult aspects of your proposed application, please point them out. Your description will be graded on suitability and conciseness.

  2. Specify an E/R diagram for your proposed database. Don't forget to underline key attributes for entity sets and include arrowheads indicating the multiplicity of relationship sets. If there are weak entity sets or "is-a" relationships, make sure to notate them appropriately.

If you're having trouble thinking of an application, or if you're unsure whether your proposed application is appropriate, please feel free to consult with one of the course staff. In fact, we encourage all students to visit office hours to consult with a staff member on your chosen application and E/R design. Coming up with a good design now will pay off greatly as the project progresses.