CS 320 - Project
Database Application


As the course progresses you will be building a substantial database application. You will design an entity-relationship model and 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 data, write interactive queries and modifications on the database, and develop web-based user interface for manipulating the database.

Your first step is to identify the domain you would like to manage with your database, and to construct an entity-relationship diagram for the data. We suggest that you pick an application that you will enjoy working with, since you'll be stuck with it for the whole semester! Usually, students who built a database about something they were interested in--a hobby, material from another course, a research project, etc.--got the most out of this part of the course.

Try to pick an application that is relatively substantial, but not too enormous. For example, when expressed in the entity-relationship model, you might want your design to have in the range of 4-7 entity sets, and a similar number of relationships. 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."

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 relationsships, or weak entity sets, if they are not appropriate for your application.

This will be a team project. Each team should have 2-3 students. A database will be created for each team (each student will also have a personal database for individual exercises and assignments). Team members are responsible for the coordination between them. You should use proper tools for the project. For example, SVN for version control. For instructions on how to do this, refer to this handout by Prof. Pfaffmann. Please note that the effectiveness of the team work is part of the grade.

To get you started, here is a handout on Introduction to PostgreSQL.

As the course progresses, we will go through the following steps: