This first part will be hardcopy-only. Later assignments may have parts to be submitted electronically.
Before you start, you must identify the domain you would like to
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
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.
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
for any other problem or concern you may have).
of the material for the project descriptions and assignments has been
taken from Professor Ullman's website.