CSC 5-415 - Database Management Systems
Assignment courtesy of Prof. Arthur Keller UCSC

Project Part #1

LOGISTICS

THE PROJECT

Personal Database Application, Part 1

Your Database 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 PostgreSQL. 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 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 Database. It's especially nice if you pick an application where you can populate your database using real, as opposed to fabricated, data. As the project progresses, you'll end up creating two actual databases, a small one (10's of entities/relationships) and a large one (1000's or 10,000's of entities/relationships). Many students find that it only makes sense for their small database to contain realistic data, while the large one is made up of synthetic (computer-generated fake) data. If you have an application where you can get a large amount of real data, all the better, but it's not necessary.

Try to pick an application with a schema 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. This is a ballpark figure only - shooting for somewhere between 3 and 10 is fine - you'll sense if your design is too simple or too complex. 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:

(a) 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.

(b) 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, take a look at any Web shopping site. They all have a similar theme: products, customers, orders, shopping baskets, etc., and typically make for an interesting and appropriately sized application. If you're still having trouble, or if you're unsure whether your proposed application is appropriate, please feel free to consult with me