COMP 3421 PDA #1

(40 Points)

Due 10AM, January 12, 2016

Step 1 of Your PDA (Personal Database Application)

Note: this assignment is a slight modification of material developed by the Stanford Database Group

As the course progresses you will be building a non-trivial database application for a real-world scenario of your choosing. You will design schemas for the database, then using mysql: create your database, create synthetic data, load the data, query the system, and write complete interactive packages that use the database.

Your first step is to identify the domain you would like to manage with your database, and to construct an entity-relationship design 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 quarter! For example, pick something you are interested in--a hobby, material from another course, a research project, etc. Get the most out of this part of COMP 3421.

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 four or more entity sets, and a similar number of relationships. 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 or roles in E/R.

(a)
(10 pts.) 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 only on suitability and conciseness.

(b)
(20 pts.) Specify an entity-relationship diagram for your proposed database. Don't forget to underline key attributes and specify the arity of relationships using numeric (1:1, N:1, 1:N, N:M) designations.

(c)
(10 pts.) Describe two high level interactions (involving 2 or more relations) your database should support. For each describe which relations are touched and how. For example, in the University database example in class I may want to have a withdraw student function. The withdraw student function will delete all currently enrolled classes for that student from the Enrolled relation. Another example might be a add class function which given a student id and a course number would add a tuple to the Enrolled relation.

Don't forget to save a copy of your PDA for reference as you do Step 2 of the PDA.

What to "hand in". You can type and using a drawing program to make a super-neat assignment or type the prose and hand-draw the ER diagram on a sheet of paper and then scan or take a photo of the paper. Upload a .pdf file in Canvas.

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 the TA or the Professor.